diff --git a/examples/examples_test.go b/examples/examples_test.go index f6e68b4334e6..58fe22861db4 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -8,12 +8,14 @@ import ( "testing" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/yaml" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" kvalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/capabilities" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/yaml" "github.com/openshift/origin/pkg/api/validation" buildapi "github.com/openshift/origin/pkg/build/api" @@ -32,7 +34,7 @@ import ( type mockService struct{} -func (mockService) ListServices(kapi.Context) (*kapi.ServiceList, error) { +func (mockService) ListServices(apirequest.Context) (*kapi.ServiceList, error) { return &kapi.ServiceList{}, nil } @@ -177,13 +179,13 @@ func validateObject(path string, obj runtime.Object, t *testing.T) { } if namespaceRequired { - objectMeta, objectMetaErr := kapi.ObjectMetaFor(obj) + objectMeta, objectMetaErr := metav1.ObjectMetaFor(obj) if objectMetaErr != nil { t.Errorf("Expected no error, Got %v", objectMetaErr) return } - objectMeta.Namespace = kapi.NamespaceDefault + objectMeta.Namespace = metav1.NamespaceDefault } } diff --git a/examples/statefulsets/peer-finder/peer-finder.go b/examples/statefulsets/peer-finder/peer-finder.go index 93ec34143411..9cbf0d0bd482 100644 --- a/examples/statefulsets/peer-finder/peer-finder.go +++ b/examples/statefulsets/peer-finder/peer-finder.go @@ -28,7 +28,7 @@ import ( "strings" "time" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) const ( diff --git a/pkg/api/compatibility_test.go b/pkg/api/compatibility_test.go index 85449237589f..9c43f8d23738 100644 --- a/pkg/api/compatibility_test.go +++ b/pkg/api/compatibility_test.go @@ -9,11 +9,11 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" ) func TestCompatibility_v1_Pod(t *testing.T) { @@ -136,7 +136,7 @@ func testCompatibility( } // Encode - output := runtime.EncodeOrDie(api.Codecs.LegacyCodec(unversioned.GroupVersion{Group: "", Version: version}), obj) + output := runtime.EncodeOrDie(api.Codecs.LegacyCodec(schema.GroupVersion{Group: "", Version: version}), obj) // Validate old and new fields are encoded generic := map[string]interface{}{} @@ -154,14 +154,14 @@ func testCompatibility( } func TestAllowedGrouplessVersion(t *testing.T) { - versions := map[string]unversioned.GroupVersion{ + versions := map[string]schema.GroupVersion{ "v1": {Group: "", Version: "v1"}, "v1beta3": {Group: "", Version: "v1beta3"}, "1.0": {Group: "", Version: "1.0"}, "pre012": {Group: "", Version: "pre012"}, } for apiVersion, expectedGroupVersion := range versions { - groupVersion, err := unversioned.ParseGroupVersion(apiVersion) + groupVersion, err := schema.ParseGroupVersion(apiVersion) if err != nil { t.Errorf("%s: unexpected error parsing: %v", apiVersion, err) continue diff --git a/pkg/api/conversion.go b/pkg/api/conversion.go index 018c32660bbb..abc42b2106ee 100644 --- a/pkg/api/conversion.go +++ b/pkg/api/conversion.go @@ -1,9 +1,9 @@ package api import ( + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/api/extension" ) diff --git a/pkg/api/extension/extension.go b/pkg/api/extension/extension.go index d111287fb5cd..21742fd6c75b 100644 --- a/pkg/api/extension/extension.go +++ b/pkg/api/extension/extension.go @@ -3,8 +3,9 @@ package extension import ( "fmt" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" ) // Convert_runtime_Object_To_runtime_RawExtension attempts to convert runtime.Objects to the appropriate target, returning an error @@ -16,7 +17,7 @@ func Convert_runtime_Object_To_runtime_RawExtension(c runtime.ObjectConvertor, i obj := *in switch obj.(type) { - case *runtime.Unknown, *runtime.Unstructured: + case *runtime.Unknown, *unstructured.Unstructured: out.Raw = nil out.Object = obj return nil @@ -44,7 +45,7 @@ func Convert_runtime_RawExtension_To_runtime_Object(c runtime.ObjectConvertor, i } switch in.Object.(type) { - case *runtime.Unknown, *runtime.Unstructured: + case *runtime.Unknown, *unstructured.Unstructured: *out = in.Object return nil } diff --git a/pkg/api/graph/graph.go b/pkg/api/graph/graph.go index 58a08d32ac46..60b1b1a6237e 100644 --- a/pkg/api/graph/graph.go +++ b/pkg/api/graph/graph.go @@ -10,8 +10,8 @@ import ( "github.com/gonum/graph/concrete" "github.com/gonum/graph/encoding/dot" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/util/sets" ) type Node struct { diff --git a/pkg/api/graph/graphview/intset.go b/pkg/api/graph/graphview/intset.go index b5f76d5c8fa3..c87ef3637516 100644 --- a/pkg/api/graph/graphview/intset.go +++ b/pkg/api/graph/graphview/intset.go @@ -3,7 +3,7 @@ package graphview import ( "sort" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) type IntSet map[int]sets.Empty diff --git a/pkg/api/graph/graphview/rc.go b/pkg/api/graph/graphview/rc.go index 59d57dec2af9..580844dfdc67 100644 --- a/pkg/api/graph/graphview/rc.go +++ b/pkg/api/graph/graphview/rc.go @@ -1,7 +1,7 @@ package graphview import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" osgraph "github.com/openshift/origin/pkg/api/graph" kubeedges "github.com/openshift/origin/pkg/api/kubegraph" @@ -43,7 +43,7 @@ func (rc *ReplicationController) MaxRecentContainerRestarts() int32 { var maxRestarts int32 for _, pod := range rc.OwnedPods { for _, status := range pod.Status.ContainerStatuses { - if status.RestartCount > maxRestarts && analysis.ContainerRestartedRecently(status, unversioned.Now()) { + if status.RestartCount > maxRestarts && analysis.ContainerRestartedRecently(status, metav1.Now()) { maxRestarts = status.RestartCount } } diff --git a/pkg/api/graph/graphview/service_group.go b/pkg/api/graph/graphview/service_group.go index 9e63b7ac6185..73eb01a4a6da 100644 --- a/pkg/api/graph/graphview/service_group.go +++ b/pkg/api/graph/graphview/service_group.go @@ -4,8 +4,8 @@ import ( "fmt" "sort" - kapi "k8s.io/kubernetes/pkg/api" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" kubeedges "github.com/openshift/origin/pkg/api/kubegraph" @@ -126,7 +126,7 @@ func (m ServiceGroupByObjectMeta) Less(i, j int) bool { return CompareObjectMeta(&a.Service.Service.ObjectMeta, &b.Service.Service.ObjectMeta) } -func CompareObjectMeta(a, b *kapi.ObjectMeta) bool { +func CompareObjectMeta(a, b *metav1.ObjectMeta) bool { if a.Namespace == b.Namespace { return a.Name < b.Name } diff --git a/pkg/api/graph/graphview/veneering_test.go b/pkg/api/graph/graphview/veneering_test.go index c052b79f106f..4d86231c8b08 100644 --- a/pkg/api/graph/graphview/veneering_test.go +++ b/pkg/api/graph/graphview/veneering_test.go @@ -7,8 +7,8 @@ import ( "github.com/gonum/graph" "github.com/gonum/graph/concrete" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" osgraph "github.com/openshift/origin/pkg/api/graph" osgraphtest "github.com/openshift/origin/pkg/api/graph/test" @@ -189,30 +189,30 @@ func TestGraph(t *testing.T) { now := time.Now() builds := []buildapi.Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-1-abc", Labels: map[string]string{buildapi.BuildConfigLabelDeprecated: "build1"}, - CreationTimestamp: unversioned.NewTime(now.Add(-10 * time.Second)), + CreationTimestamp: metav1.NewTime(now.Add(-10 * time.Second)), }, Status: buildapi.BuildStatus{ Phase: buildapi.BuildPhaseFailed, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-2-abc", Labels: map[string]string{buildapi.BuildConfigLabelDeprecated: "build1"}, - CreationTimestamp: unversioned.NewTime(now.Add(-5 * time.Second)), + CreationTimestamp: metav1.NewTime(now.Add(-5 * time.Second)), }, Status: buildapi.BuildStatus{ Phase: buildapi.BuildPhaseComplete, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-3-abc", Labels: map[string]string{buildapi.BuildConfigLabelDeprecated: "build1"}, - CreationTimestamp: unversioned.NewTime(now.Add(-15 * time.Second)), + CreationTimestamp: metav1.NewTime(now.Add(-15 * time.Second)), }, Status: buildapi.BuildStatus{ Phase: buildapi.BuildPhasePending, @@ -224,7 +224,7 @@ func TestGraph(t *testing.T) { } buildgraph.EnsureBuildConfigNode(g, &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "build1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "build1"}, Spec: buildapi.BuildConfigSpec{ Triggers: []buildapi.BuildTriggerPolicy{ { @@ -244,7 +244,7 @@ func TestGraph(t *testing.T) { }, }) bcTestNode := buildgraph.EnsureBuildConfigNode(g, &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "test"}, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ Output: buildapi.BuildOutput{ @@ -254,7 +254,7 @@ func TestGraph(t *testing.T) { }, }) buildgraph.EnsureBuildConfigNode(g, &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "build2"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "build2"}, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ Output: buildapi.BuildOutput{ @@ -264,13 +264,13 @@ func TestGraph(t *testing.T) { }, }) kubegraph.EnsureServiceNode(g, &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "svc-is-ignored"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "svc-is-ignored"}, Spec: kapi.ServiceSpec{ Selector: nil, }, }) kubegraph.EnsureServiceNode(g, &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "svc1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "svc1"}, Spec: kapi.ServiceSpec{ Selector: map[string]string{ "deploymentconfig": "deploy1", @@ -278,7 +278,7 @@ func TestGraph(t *testing.T) { }, }) kubegraph.EnsureServiceNode(g, &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "svc2"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "svc2"}, Spec: kapi.ServiceSpec{ Selector: map[string]string{ "deploymentconfig": "deploy1", @@ -287,7 +287,7 @@ func TestGraph(t *testing.T) { }, }) deploygraph.EnsureDeploymentConfigNode(g, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: "other", Name: "deploy1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "other", Name: "deploy1"}, Spec: deployapi.DeploymentConfigSpec{ Triggers: []deployapi.DeploymentTriggerPolicy{ { @@ -298,7 +298,7 @@ func TestGraph(t *testing.T) { }, }, Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ "deploymentconfig": "deploy1", "env": "prod", @@ -324,10 +324,10 @@ func TestGraph(t *testing.T) { }, }) deploygraph.EnsureDeploymentConfigNode(g, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "deploy2"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "deploy2"}, Spec: deployapi.DeploymentConfigSpec{ Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ "deploymentconfig": "deploy2", "env": "dev", diff --git a/pkg/api/graph/test/runtimeobject_nodebuilder.go b/pkg/api/graph/test/runtimeobject_nodebuilder.go index 9ec685128b6f..7f0c66ccb0d4 100644 --- a/pkg/api/graph/test/runtimeobject_nodebuilder.go +++ b/pkg/api/graph/test/runtimeobject_nodebuilder.go @@ -5,12 +5,11 @@ import ( "path/filepath" "reflect" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" _ "github.com/openshift/origin/pkg/api/install" @@ -130,7 +129,7 @@ func BuildGraph(path string) (osgraph.Graph, []runtime.Object, error) { return g, objs, err } - mapper := registered.RESTMapper() + mapper := kapi.Registry.RESTMapper() typer := kapi.Scheme clientMapper := resource.ClientMapperFunc(func(mapping *meta.RESTMapping) (resource.RESTClient, error) { return nil, nil diff --git a/pkg/api/graph/types.go b/pkg/api/graph/types.go index 1bb6622b1b7a..736d328e54b3 100644 --- a/pkg/api/graph/types.go +++ b/pkg/api/graph/types.go @@ -5,8 +5,8 @@ import ( "github.com/gonum/graph" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" ) const ( @@ -24,7 +24,7 @@ const ( ) func GetUniqueRuntimeObjectNodeName(nodeKind string, obj runtime.Object) UniqueName { - meta, err := kapi.ObjectMetaFor(obj) + meta, err := metav1.ObjectMetaFor(obj) if err != nil { panic(err) } diff --git a/pkg/api/helpers.go b/pkg/api/helpers.go index 390abc48efd1..267e96115b34 100644 --- a/pkg/api/helpers.go +++ b/pkg/api/helpers.go @@ -3,9 +3,9 @@ package api import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" + "k8s.io/apimachinery/pkg/api/validation/path" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" ) // GetNameValidationFunc returns a name validation function that includes the standard restrictions we want for all types @@ -38,6 +38,6 @@ func GetFieldLabelConversionFunc(supportedLabels map[string]string, overrideLabe // GetResourceKey returns a string of the form [namespace]/[name] for // the given resource. This is a common way of ensuring a key for a // resource that is unique across the cluster. -func GetResourceKey(obj kapi.ObjectMeta) string { +func GetResourceKey(obj metav1.ObjectMeta) string { return fmt.Sprintf("%s/%s", obj.Namespace, obj.Name) } diff --git a/pkg/api/install/install.go b/pkg/api/install/install.go index 43fe4421e530..13b610922ca1 100644 --- a/pkg/api/install/install.go +++ b/pkg/api/install/install.go @@ -1,8 +1,9 @@ package install import ( + "k8s.io/apimachinery/pkg/conversion" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/conversion" + kv1 "k8s.io/kubernetes/pkg/api/v1" // we have a strong dependency on kube objects for deployments and scale _ "k8s.io/kubernetes/pkg/api/install" @@ -25,10 +26,9 @@ import ( _ "github.com/openshift/origin/pkg/template/api/install" _ "github.com/openshift/origin/pkg/user/api/install" - kv1 "k8s.io/kubernetes/pkg/api/v1" - - watchapi "k8s.io/kubernetes/pkg/watch" - watchv1 "k8s.io/kubernetes/pkg/watch/versioned" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watchapi "k8s.io/apimachinery/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -57,34 +57,33 @@ func init() { // TODO: generate one of these for every external API group - this is to prove the impact kapi.Scheme.AddGenericConversionFunc(func(objA, objB interface{}, s conversion.Scope) (bool, error) { switch a := objA.(type) { - - case *watchv1.Event: + case *metav1.WatchEvent: switch b := objB.(type) { - case *watchv1.InternalEvent: - return true, watchv1.Convert_versioned_Event_to_versioned_InternalEvent(a, b, s) + case *metav1.InternalEvent: + return true, metav1.Convert_versioned_Event_to_versioned_InternalEvent(a, b, s) case *watchapi.Event: - return true, watchv1.Convert_versioned_Event_to_watch_Event(a, b, s) + return true, metav1.Convert_versioned_Event_to_watch_Event(a, b, s) } - case *watchv1.InternalEvent: + case *metav1.InternalEvent: switch b := objB.(type) { - case *watchv1.Event: - return true, watchv1.Convert_versioned_InternalEvent_to_versioned_Event(a, b, s) + case *metav1.WatchEvent: + return true, metav1.Convert_versioned_InternalEvent_to_versioned_Event(a, b, s) } case *watchapi.Event: switch b := objB.(type) { - case *watchv1.Event: - return true, watchv1.Convert_watch_Event_to_versioned_Event(a, b, s) + case *metav1.WatchEvent: + return true, metav1.Convert_watch_Event_to_versioned_Event(a, b, s) } - case *kapi.ListOptions: + case *metainternal.ListOptions: switch b := objB.(type) { - case *kv1.ListOptions: - return true, kv1.Convert_api_ListOptions_To_v1_ListOptions(a, b, s) + case *metav1.ListOptions: + return true, metainternal.Convert_internalversion_ListOptions_To_v1_ListOptions(a, b, s) } - case *kv1.ListOptions: + case *metav1.ListOptions: switch b := objB.(type) { - case *kapi.ListOptions: - return true, kv1.Convert_v1_ListOptions_To_api_ListOptions(a, b, s) + case *metainternal.ListOptions: + return true, metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(a, b, s) } case *kv1.ServiceAccount: diff --git a/pkg/api/install/tags_test.go b/pkg/api/install/tags_test.go index 6f144ae6b3b9..5ef465b9015b 100644 --- a/pkg/api/install/tags_test.go +++ b/pkg/api/install/tags_test.go @@ -6,18 +6,18 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapiv1 "github.com/openshift/origin/pkg/cmd/server/api/v1" ) func TestDescriptions(t *testing.T) { - for _, version := range registered.RegisteredGroupVersions() { + for _, version := range kapi.Registry.RegisteredGroupVersions() { seen := map[reflect.Type]bool{} for _, apiType := range kapi.Scheme.KnownTypes(version) { @@ -42,7 +42,7 @@ func checkDescriptions(objType reflect.Type, seen *map[reflect.Type]bool, t *tes if structField.Name == "TypeMeta" || structField.Name == "ObjectMeta" || structField.Name == "ListMeta" { continue } - if structField.Type == reflect.TypeOf(unversioned.Time{}) || structField.Type == reflect.TypeOf(time.Time{}) || structField.Type == reflect.TypeOf(runtime.RawExtension{}) { + if structField.Type == reflect.TypeOf(metav1.Time{}) || structField.Type == reflect.TypeOf(time.Time{}) || structField.Type == reflect.TypeOf(runtime.RawExtension{}) { continue } @@ -63,13 +63,13 @@ func TestInternalJsonTags(t *testing.T) { seen := map[reflect.Type]bool{} seenGroups := sets.String{} - for _, version := range registered.RegisteredGroupVersions() { + for _, version := range kapi.Registry.RegisteredGroupVersions() { if seenGroups.Has(version.Group) { continue } seenGroups.Insert(version.Group) - internalVersion := unversioned.GroupVersion{Group: version.Group, Version: runtime.APIVersionInternal} + internalVersion := schema.GroupVersion{Group: version.Group, Version: runtime.APIVersionInternal} for _, apiType := range kapi.Scheme.KnownTypes(internalVersion) { checkInternalJsonTags(apiType, &seen, t) } @@ -122,7 +122,7 @@ func checkInternalJsonTags(objType reflect.Type, seen *map[reflect.Type]bool, t func TestExternalJsonTags(t *testing.T) { seen := map[reflect.Type]bool{} - for _, version := range registered.RegisteredGroupVersions() { + for _, version := range kapi.Registry.RegisteredGroupVersions() { for _, apiType := range kapi.Scheme.KnownTypes(version) { checkExternalJsonTags(apiType, &seen, t) } diff --git a/pkg/api/kubegraph/analysis/hpa.go b/pkg/api/kubegraph/analysis/hpa.go index 73f3294a5b6d..f3b3b79a39ef 100644 --- a/pkg/api/kubegraph/analysis/hpa.go +++ b/pkg/api/kubegraph/analysis/hpa.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" graphapi "github.com/gonum/graph" "github.com/gonum/graph/path" diff --git a/pkg/api/kubegraph/analysis/pod.go b/pkg/api/kubegraph/analysis/pod.go index 679112044810..ad57c0b6d59a 100644 --- a/pkg/api/kubegraph/analysis/pod.go +++ b/pkg/api/kubegraph/analysis/pod.go @@ -6,8 +6,8 @@ import ( "github.com/MakeNowJust/heredoc" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" osgraph "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -23,7 +23,7 @@ const ( ) // exposed for testing -var nowFn = unversioned.Now +var nowFn = metav1.Now // FindRestartingPods inspects all Pods to see if they've restarted more than the threshold. logsCommandName is the name of // the command that should be invoked to see pod logs. securityPolicyCommandPattern is a format string accepting two replacement @@ -120,7 +120,7 @@ func containerCrashLoopBackOff(status kapi.ContainerStatus) bool { return status.State.Waiting != nil && status.State.Waiting.Reason == "CrashLoopBackOff" } -func ContainerRestartedRecently(status kapi.ContainerStatus, now unversioned.Time) bool { +func ContainerRestartedRecently(status kapi.ContainerStatus, now metav1.Time) bool { if status.RestartCount == 0 { return false } diff --git a/pkg/api/kubegraph/analysis/pod_test.go b/pkg/api/kubegraph/analysis/pod_test.go index 8de5d99ade9c..bb9b5fcd3d9c 100644 --- a/pkg/api/kubegraph/analysis/pod_test.go +++ b/pkg/api/kubegraph/analysis/pod_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" osgraph "github.com/openshift/origin/pkg/api/graph" osgraphtest "github.com/openshift/origin/pkg/api/graph/test" @@ -17,10 +17,10 @@ func TestRestartingPodWarning(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - defer func() { nowFn = unversioned.Now }() + defer func() { nowFn = metav1.Now }() recent, _ := time.Parse(time.RFC3339, "2015-07-13T19:36:06Z") - nowFn = func() unversioned.Time { return unversioned.NewTime(recent.UTC()) } + nowFn = func() metav1.Time { return metav1.NewTime(recent.UTC()) } markers := FindRestartingPods(g, osgraph.DefaultNamer, "oc logs", "oadm policy") sort.Sort(osgraph.BySeverity(markers)) if e, a := 4, len(markers); e != a { @@ -54,7 +54,7 @@ func TestRestartingPodWarning(t *testing.T) { } future, _ := time.Parse(time.RFC3339, "2015-07-13T19:46:06Z") - nowFn = func() unversioned.Time { return unversioned.NewTime(future.UTC()) } + nowFn = func() metav1.Time { return metav1.NewTime(future.UTC()) } markers = FindRestartingPods(g, osgraph.DefaultNamer, "oc logs", "oadm policy") sort.Sort(osgraph.BySeverity(markers)) if e, a := 3, len(markers); e != a { diff --git a/pkg/api/kubegraph/edge_test.go b/pkg/api/kubegraph/edge_test.go index f967e6b07d8b..2b2023f488f5 100644 --- a/pkg/api/kubegraph/edge_test.go +++ b/pkg/api/kubegraph/edge_test.go @@ -6,12 +6,12 @@ import ( "github.com/gonum/graph" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" _ "k8s.io/kubernetes/pkg/api/install" - "k8s.io/kubernetes/pkg/api/unversioned" kapps "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" - "k8s.io/kubernetes/pkg/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -43,7 +43,7 @@ func TestNamespaceEdgeMatching(t *testing.T) { p := &kapps.StatefulSet{} p.Namespace = namespace p.Name = "the-statefulset" - p.Spec.Selector = &unversioned.LabelSelector{ + p.Spec.Selector = &metav1.LabelSelector{ MatchLabels: map[string]string{"a": "1"}, } kubegraph.EnsureStatefulSetNode(g, p) @@ -80,7 +80,7 @@ func namespaceFor(node graph.Node) (string, error) { obj := node.(objectifier).Object() switch t := obj.(type) { case runtime.Object: - meta, err := kapi.ObjectMetaFor(t) + meta, err := metav1.ObjectMetaFor(t) if err != nil { return "", err } diff --git a/pkg/api/kubegraph/edges.go b/pkg/api/kubegraph/edges.go index d7bc67a77cbd..af0f61105ad0 100644 --- a/pkg/api/kubegraph/edges.go +++ b/pkg/api/kubegraph/edges.go @@ -5,11 +5,11 @@ import ( "github.com/gonum/graph" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -130,7 +130,7 @@ func AddMountedSecretEdges(g osgraph.Graph, podSpec *kubegraph.PodSpecNode) { containerNode := osgraph.GetTopLevelContainerNode(g, podSpec) containerObj := g.GraphDescriber.Object(containerNode) - meta, err := kapi.ObjectMetaFor(containerObj.(runtime.Object)) + meta, err := metav1.ObjectMetaFor(containerObj.(runtime.Object)) if err != nil { // this should never happen. it means that a podSpec is owned by a top level container that is not a runtime.Object panic(err) @@ -184,7 +184,7 @@ func AddRequestedServiceAccountEdges(g osgraph.Graph, podSpecNode *kubegraph.Pod containerNode := osgraph.GetTopLevelContainerNode(g, podSpecNode) containerObj := g.GraphDescriber.Object(containerNode) - meta, err := kapi.ObjectMetaFor(containerObj.(runtime.Object)) + meta, err := metav1.ObjectMetaFor(containerObj.(runtime.Object)) if err != nil { panic(err) } @@ -215,20 +215,20 @@ func AddHPAScaleRefEdges(g osgraph.Graph) { for _, node := range g.NodesByKind(kubegraph.HorizontalPodAutoscalerNodeKind) { hpaNode := node.(*kubegraph.HorizontalPodAutoscalerNode) - syntheticMeta := kapi.ObjectMeta{ + syntheticMeta := metav1.ObjectMeta{ Name: hpaNode.HorizontalPodAutoscaler.Spec.ScaleTargetRef.Name, Namespace: hpaNode.HorizontalPodAutoscaler.Namespace, } - var groupVersionResource unversioned.GroupVersionResource + var groupVersionResource schema.GroupVersionResource resource := strings.ToLower(hpaNode.HorizontalPodAutoscaler.Spec.ScaleTargetRef.Kind) - if groupVersion, err := unversioned.ParseGroupVersion(hpaNode.HorizontalPodAutoscaler.Spec.ScaleTargetRef.APIVersion); err == nil { + if groupVersion, err := schema.ParseGroupVersion(hpaNode.HorizontalPodAutoscaler.Spec.ScaleTargetRef.APIVersion); err == nil { groupVersionResource = groupVersion.WithResource(resource) } else { - groupVersionResource = unversioned.GroupVersionResource{Resource: resource} + groupVersionResource = schema.GroupVersionResource{Resource: resource} } - groupVersionResource, err := registered.RESTMapper().ResourceFor(groupVersionResource) + groupVersionResource, err := kapi.Registry.RESTMapper().ResourceFor(groupVersionResource) if err != nil { continue } diff --git a/pkg/api/latest/latest.go b/pkg/api/latest/latest.go index 9edbe7b91205..d7d4c29031d3 100644 --- a/pkg/api/latest/latest.go +++ b/pkg/api/latest/latest.go @@ -4,24 +4,24 @@ import ( "strings" "sync" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // HACK TO ELIMINATE CYCLES UNTIL WE KILL THIS PACKAGE // Version is the string that represents the current external default version. -var Version = unversioned.GroupVersion{Group: "", Version: "v1"} +var Version = schema.GroupVersion{Group: "", Version: "v1"} // OldestVersion is the string that represents the oldest server version supported, // for client code that wants to hardcode the lowest common denominator. -var OldestVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var OldestVersion = schema.GroupVersion{Group: "", Version: "v1"} // Versions is the list of versions that are recognized in code. The order provided // may be assumed to be most preferred to least preferred, and clients may // choose to prefer the earlier items in the list over the latter items when presented // with a set of versions to choose. -var Versions = []unversioned.GroupVersion{ +var Versions = []schema.GroupVersion{ {Group: "authorization.openshift.io", Version: "v1"}, {Group: "build.openshift.io", Version: "v1"}, {Group: "apps.openshift.io", Version: "v1"}, @@ -38,7 +38,7 @@ var Versions = []unversioned.GroupVersion{ } // originTypes are the hardcoded types defined by the OpenShift API. -var originTypes map[unversioned.GroupVersionKind]bool +var originTypes map[schema.GroupVersionKind]bool // originTypesLock allows lazying initialization of originTypes to allow initializers to run before // loading the map. It means that initializers have to know ahead of time where their type is from, @@ -46,12 +46,12 @@ var originTypes map[unversioned.GroupVersionKind]bool var originTypesLock sync.Once // OriginKind returns true if OpenShift owns the GroupVersionKind. -func OriginKind(gvk unversioned.GroupVersionKind) bool { +func OriginKind(gvk schema.GroupVersionKind) bool { return getOrCreateOriginKinds()[gvk] } // OriginLegacyKind returns true for OriginKinds which are not in their own api group. -func OriginLegacyKind(gvk unversioned.GroupVersionKind) bool { +func OriginLegacyKind(gvk schema.GroupVersionKind) bool { return OriginKind(gvk) && gvk.Group == "" } @@ -77,10 +77,10 @@ func IsKindInAnyOriginGroup(kind string) bool { return false } -func getOrCreateOriginKinds() map[unversioned.GroupVersionKind]bool { +func getOrCreateOriginKinds() map[schema.GroupVersionKind]bool { if originTypes == nil { originTypesLock.Do(func() { - newOriginTypes := map[unversioned.GroupVersionKind]bool{} + newOriginTypes := map[schema.GroupVersionKind]bool{} // enumerate all supported versions, get the kinds, and register with the mapper how to address our resources for _, version := range Versions { diff --git a/pkg/api/latest/latest_test.go b/pkg/api/latest/latest_test.go index 0afd8075445e..00c718c802ed 100644 --- a/pkg/api/latest/latest_test.go +++ b/pkg/api/latest/latest_test.go @@ -3,10 +3,9 @@ package latest import ( "testing" + "k8s.io/apimachinery/pkg/api/meta" kapi "k8s.io/kubernetes/pkg/api" _ "k8s.io/kubernetes/pkg/api/install" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" userapi "github.com/openshift/origin/pkg/user/api" _ "github.com/openshift/origin/pkg/user/api/install" @@ -15,7 +14,7 @@ import ( func TestRESTRootScope(t *testing.T) { for _, v := range [][]string{{"v1"}} { - mapping, err := registered.RESTMapper().RESTMapping(kapi.Kind("Node"), v...) + mapping, err := kapi.Registry.RESTMapper().RESTMapping(kapi.Kind("Node"), v...) if err != nil { t.Fatal(err) } @@ -28,7 +27,7 @@ func TestRESTRootScope(t *testing.T) { func TestLegacyResourceToKind(t *testing.T) { // Ensure we resolve to latest.Version expectedGVK := Version.WithKind("User") - gvk, err := registered.RESTMapper().KindFor(userapi.LegacySchemeGroupVersion.WithResource("User")) + gvk, err := kapi.Registry.RESTMapper().KindFor(userapi.LegacySchemeGroupVersion.WithResource("User")) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -40,7 +39,7 @@ func TestLegacyResourceToKind(t *testing.T) { func TestResourceToKind(t *testing.T) { // Ensure we resolve to latest.Version expectedGVK := userapiv1.SchemeGroupVersion.WithKind("User") - gvk, err := registered.RESTMapper().KindFor(userapi.SchemeGroupVersion.WithResource("User")) + gvk, err := kapi.Registry.RESTMapper().KindFor(userapi.SchemeGroupVersion.WithResource("User")) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -51,9 +50,9 @@ func TestResourceToKind(t *testing.T) { func TestUpstreamResourceToKind(t *testing.T) { // Ensure we resolve to klatest.ExternalVersions[0] - meta, _ := registered.Group("") + meta, _ := kapi.Registry.Group("") expectedGVK := meta.GroupVersion.WithKind("Pod") - gvk, err := registered.RESTMapper().KindFor(kapi.SchemeGroupVersion.WithResource("Pod")) + gvk, err := kapi.Registry.RESTMapper().KindFor(kapi.SchemeGroupVersion.WithResource("Pod")) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/pkg/api/matcher.go b/pkg/api/matcher.go index 2762c58bb634..d05147e6c413 100644 --- a/pkg/api/matcher.go +++ b/pkg/api/matcher.go @@ -1,12 +1,33 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" ) -func ListOptionsToSelectors(options *kapi.ListOptions) (labels.Selector, fields.Selector) { +func ListOptionsToSelectors(options *metav1.ListOptions) (labels.Selector, fields.Selector, error) { + label := "" + if options != nil && options.LabelSelector != "" { + label = options.LabelSelector + } + field := "" + if options != nil && options.FieldSelector != "" { + field = options.FieldSelector + } + labelSel, err := labels.Parse(label) + if err != nil { + return labels.Everything(), fields.Everything(), err + } + fieldSel, err := fields.ParseSelector(field) + if err != nil { + return labels.Everything(), fields.Everything(), err + } + return labelSel, fieldSel, nil +} + +func InternalListOptionsToSelectors(options *metainternal.ListOptions) (labels.Selector, fields.Selector) { label := labels.Everything() if options != nil && options.LabelSelector != nil { label = options.LabelSelector diff --git a/pkg/api/meta/builds.go b/pkg/api/meta/builds.go index 5f0d6d8d9959..78a3b16d81fe 100644 --- a/pkg/api/meta/builds.go +++ b/pkg/api/meta/builds.go @@ -1,7 +1,7 @@ package meta import ( - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/api/meta/meta.go b/pkg/api/meta/meta.go index 5686001955a6..b7880337c9f0 100644 --- a/pkg/api/meta/meta.go +++ b/pkg/api/meta/meta.go @@ -3,9 +3,9 @@ package meta import ( "fmt" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/api/meta/pods.go b/pkg/api/meta/pods.go index 5c6079fbec3b..205782b5c81e 100644 --- a/pkg/api/meta/pods.go +++ b/pkg/api/meta/pods.go @@ -3,13 +3,13 @@ package meta import ( "fmt" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" deployapi "github.com/openshift/origin/pkg/deploy/api" securityapi "github.com/openshift/origin/pkg/security/api" @@ -17,7 +17,7 @@ import ( // resourcesToCheck is a map of resources and corresponding kinds of things that // we want handled in this plugin -var resourcesToCheck = map[unversioned.GroupResource]unversioned.GroupKind{ +var resourcesToCheck = map[schema.GroupResource]schema.GroupKind{ kapi.Resource("pods"): kapi.Kind("Pod"), kapi.Resource("podtemplates"): kapi.Kind("PodTemplate"), kapi.Resource("replicationcontrollers"): kapi.Kind("ReplicationController"), @@ -44,7 +44,7 @@ var resourcesToCheck = map[unversioned.GroupResource]unversioned.GroupKind{ } // HasPodSpec returns true if the resource is known to have a pod spec. -func HasPodSpec(gr unversioned.GroupResource) (unversioned.GroupKind, bool) { +func HasPodSpec(gr schema.GroupResource) (schema.GroupKind, bool) { gk, ok := resourcesToCheck[gr] return gk, ok } diff --git a/pkg/api/meta/pods_test.go b/pkg/api/meta/pods_test.go index bbf28fd2d9c2..16edee3fed20 100644 --- a/pkg/api/meta/pods_test.go +++ b/pkg/api/meta/pods_test.go @@ -4,10 +4,9 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" _ "github.com/openshift/origin/pkg/api/install" ) @@ -51,15 +50,15 @@ func hasPodSpec(visited map[reflect.Type]bool, t reflect.Type) bool { return false } -func internalGroupVersions() []unversioned.GroupVersion { - groupVersions := registered.EnabledVersions() +func internalGroupVersions() []schema.GroupVersion { + groupVersions := kapi.Registry.EnabledVersions() groups := map[string]struct{}{} for _, gv := range groupVersions { groups[gv.Group] = struct{}{} } - result := []unversioned.GroupVersion{} + result := []schema.GroupVersion{} for group := range groups { - result = append(result, unversioned.GroupVersion{Group: group, Version: runtime.APIVersionInternal}) + result = append(result, schema.GroupVersion{Group: group, Version: runtime.APIVersionInternal}) } return result } @@ -73,13 +72,13 @@ func isList(t reflect.Type) bool { return hasListMeta } -func kindsWithPodSpecs() []unversioned.GroupKind { - result := []unversioned.GroupKind{} +func kindsWithPodSpecs() []schema.GroupKind { + result := []schema.GroupKind{} for _, gv := range internalGroupVersions() { knownTypes := kapi.Scheme.KnownTypes(gv) for kind, knownType := range knownTypes { if !isList(knownType) && hasPodSpec(map[reflect.Type]bool{}, knownType) { - result = append(result, unversioned.GroupKind{Group: gv.Group, Kind: kind}) + result = append(result, schema.GroupKind{Group: gv.Group, Kind: kind}) } } } @@ -87,8 +86,8 @@ func kindsWithPodSpecs() []unversioned.GroupKind { return result } -func knownResourceKinds() map[unversioned.GroupKind]struct{} { - result := map[unversioned.GroupKind]struct{}{} +func knownResourceKinds() map[schema.GroupKind]struct{} { + result := map[schema.GroupKind]struct{}{} for _, ka := range resourcesToCheck { result[ka] = struct{}{} } diff --git a/pkg/api/register.go b/pkg/api/register.go index f2d75de4fb9f..b6864afb8cf0 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -1,8 +1,8 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" _ "github.com/openshift/origin/pkg/authorization/api" _ "github.com/openshift/origin/pkg/build/api" @@ -25,14 +25,14 @@ const ( ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } diff --git a/pkg/api/restmapper/discovery.go b/pkg/api/restmapper/discovery.go index 3e99ea24543c..af242cedc318 100644 --- a/pkg/api/restmapper/discovery.go +++ b/pkg/api/restmapper/discovery.go @@ -3,11 +3,10 @@ package restmapper import ( "sync" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/client/typed/discovery" ) type discoveryRESTMapper struct { @@ -40,10 +39,10 @@ func (d *discoveryRESTMapper) getDelegate() (meta.RESTMapper, error) { // always prefer our default group for now. The version should be discovered from discovery, but this will hold us // for quite some time. - resourcePriority := []unversioned.GroupVersionResource{ + resourcePriority := []schema.GroupVersionResource{ {Group: kapi.GroupName, Version: meta.AnyVersion, Resource: meta.AnyResource}, } - kindPriority := []unversioned.GroupVersionKind{ + kindPriority := []schema.GroupVersionKind{ {Group: kapi.GroupName, Version: meta.AnyVersion, Kind: meta.AnyKind}, } groupPriority := []string{} @@ -57,19 +56,19 @@ func (d *discoveryRESTMapper) getDelegate() (meta.RESTMapper, error) { groupPriority = append(groupPriority, group.Name) if len(group.PreferredVersion.Version) != 0 { - preferredVersion := unversioned.GroupVersion{Group: group.Name, Version: group.PreferredVersion.Version} - if registered.IsEnabledVersion(preferredVersion) { + preferredVersion := schema.GroupVersion{Group: group.Name, Version: group.PreferredVersion.Version} + if kapi.Registry.IsEnabledVersion(preferredVersion) { resourcePriority = append(resourcePriority, preferredVersion.WithResource(meta.AnyResource)) kindPriority = append(kindPriority, preferredVersion.WithKind(meta.AnyKind)) } } for _, discoveryVersion := range group.Versions { - version := unversioned.GroupVersion{Group: group.Name, Version: discoveryVersion.Version} - if !registered.IsEnabledVersion(version) { + version := schema.GroupVersion{Group: group.Name, Version: discoveryVersion.Version} + if !kapi.Registry.IsEnabledVersion(version) { continue } - groupMeta, err := registered.Group(group.Name) + groupMeta, err := kapi.Registry.Group(group.Name) if err != nil { return nil, err } @@ -78,7 +77,7 @@ func (d *discoveryRESTMapper) getDelegate() (meta.RESTMapper, error) { return nil, err } - versionMapper := meta.NewDefaultRESTMapper([]unversioned.GroupVersion{version}, groupMeta.InterfacesFor) + versionMapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{version}, groupMeta.InterfacesFor) for _, resource := range resources.APIResources { // TODO properly handle resource versus kind gvk := version.WithKind(resource.Kind) @@ -103,23 +102,23 @@ func (d *discoveryRESTMapper) getDelegate() (meta.RESTMapper, error) { } for _, group := range groupPriority { - resourcePriority = append(resourcePriority, unversioned.GroupVersionResource{Group: group, Version: meta.AnyVersion, Resource: meta.AnyResource}) - kindPriority = append(kindPriority, unversioned.GroupVersionKind{Group: group, Version: meta.AnyVersion, Kind: meta.AnyKind}) + resourcePriority = append(resourcePriority, schema.GroupVersionResource{Group: group, Version: meta.AnyVersion, Resource: meta.AnyResource}) + kindPriority = append(kindPriority, schema.GroupVersionKind{Group: group, Version: meta.AnyVersion, Kind: meta.AnyKind}) } d.delegate = meta.PriorityRESTMapper{Delegate: unionMapper, ResourcePriority: resourcePriority, KindPriority: kindPriority} return d.delegate, nil } -func (d *discoveryRESTMapper) KindFor(resource unversioned.GroupVersionResource) (unversioned.GroupVersionKind, error) { +func (d *discoveryRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { delegate, err := d.getDelegate() if err != nil { - return unversioned.GroupVersionKind{}, err + return schema.GroupVersionKind{}, err } return delegate.KindFor(resource) } -func (d *discoveryRESTMapper) KindsFor(resource unversioned.GroupVersionResource) ([]unversioned.GroupVersionKind, error) { +func (d *discoveryRESTMapper) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) { delegate, err := d.getDelegate() if err != nil { return nil, err @@ -127,15 +126,15 @@ func (d *discoveryRESTMapper) KindsFor(resource unversioned.GroupVersionResource return delegate.KindsFor(resource) } -func (d *discoveryRESTMapper) ResourceFor(input unversioned.GroupVersionResource) (unversioned.GroupVersionResource, error) { +func (d *discoveryRESTMapper) ResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error) { delegate, err := d.getDelegate() if err != nil { - return unversioned.GroupVersionResource{}, err + return schema.GroupVersionResource{}, err } return delegate.ResourceFor(input) } -func (d *discoveryRESTMapper) ResourcesFor(input unversioned.GroupVersionResource) ([]unversioned.GroupVersionResource, error) { +func (d *discoveryRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) { delegate, err := d.getDelegate() if err != nil { return nil, err @@ -143,7 +142,7 @@ func (d *discoveryRESTMapper) ResourcesFor(input unversioned.GroupVersionResourc return delegate.ResourcesFor(input) } -func (d *discoveryRESTMapper) RESTMapping(gk unversioned.GroupKind, versions ...string) (*meta.RESTMapping, error) { +func (d *discoveryRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error) { delegate, err := d.getDelegate() if err != nil { return nil, err @@ -151,12 +150,12 @@ func (d *discoveryRESTMapper) RESTMapping(gk unversioned.GroupKind, versions ... return delegate.RESTMapping(gk, versions...) } -func (d *discoveryRESTMapper) RESTMappings(gk unversioned.GroupKind) ([]*meta.RESTMapping, error) { +func (d *discoveryRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*meta.RESTMapping, error) { delegate, err := d.getDelegate() if err != nil { return nil, err } - return delegate.RESTMappings(gk) + return delegate.RESTMappings(gk, versions...) } func (d *discoveryRESTMapper) AliasesForResource(resource string) ([]string, bool) { diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 63393069d900..f5722ea04739 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -11,18 +11,18 @@ import ( "time" "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/meta" + apitesting "k8s.io/apimachinery/pkg/api/testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer/protobuf" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer/protobuf" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/kubernetes/pkg/util/sets" osapi "github.com/openshift/origin/pkg/api" _ "github.com/openshift/origin/pkg/api/latest" @@ -47,18 +47,18 @@ import ( _ "k8s.io/kubernetes/pkg/api/install" ) -var codecsToTest = []func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error){ - func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error) { +var codecsToTest = []func(version schema.GroupVersion, item runtime.Object) (runtime.Codec, error){ + func(version schema.GroupVersion, item runtime.Object) (runtime.Codec, error) { return kapi.Codecs.LegacyCodec(version), nil }, - func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error) { + func(version schema.GroupVersion, item runtime.Object) (runtime.Codec, error) { s := protobuf.NewSerializer(kapi.Scheme, kapi.Scheme, "application/arbitrary.content.type") return kapi.Codecs.CodecForVersions(s, s, testapi.ExternalGroupVersions(), nil), nil }, } -func fuzzInternalObject(t *testing.T, forVersion unversioned.GroupVersion, item runtime.Object, seed int64) runtime.Object { - f := apitesting.FuzzerFor(t, forVersion, rand.NewSource(seed)) +func fuzzInternalObject(t *testing.T, forVersion schema.GroupVersion, item runtime.Object, seed int64) runtime.Object { + f := apitesting.FuzzerFor(nil, rand.NewSource(seed)) f.Funcs( // Roles and RoleBindings maps are never nil func(j *authorizationapi.Policy, c fuzz.Continue) { @@ -502,7 +502,7 @@ func defaultHookContainerName(hook *deploy.LifecycleHook, containerName string) } } -func roundTripWithAllCodecs(t *testing.T, version unversioned.GroupVersion, item runtime.Object) { +func roundTripWithAllCodecs(t *testing.T, version schema.GroupVersion, item runtime.Object) { var codecs []runtime.Codec for _, fn := range codecsToTest { codec, err := fn(version, item) @@ -576,7 +576,7 @@ func dataToString(s []byte) string { } // skipStandardVersions is a map of Kind to a list of API versions to test with. -var skipStandardVersions = map[string][]unversioned.GroupVersion{ +var skipStandardVersions = map[string][]schema.GroupVersion{ // The API versions here are to test our object that serializes from/into // docker's registry API. "DockerImage": {dockerpre012.SchemeGroupVersion, docker10.SchemeGroupVersion}, @@ -614,7 +614,7 @@ var nonInternalRoundTrippableTypes = sets.NewString("WatchEvent", "DeleteOptions // TestTypes will try to roundtrip all OpenShift and Kubernetes stable api types func TestTypes(t *testing.T) { - internalVersionToExternalVersions := map[unversioned.GroupVersion][]unversioned.GroupVersion{ + internalVersionToExternalVersions := map[schema.GroupVersion][]schema.GroupVersion{ osapi.SchemeGroupVersion: {v1.SchemeGroupVersion}, // Test the API groups quotaapi.LegacySchemeGroupVersion: {quotaapiv1.LegacySchemeGroupVersion}, diff --git a/pkg/api/v1/register.go b/pkg/api/v1/register.go index 50f359db5c2a..c79d2e1d4eaf 100644 --- a/pkg/api/v1/register.go +++ b/pkg/api/v1/register.go @@ -1,8 +1,6 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - _ "github.com/openshift/origin/pkg/authorization/api/v1" _ "github.com/openshift/origin/pkg/build/api/v1" _ "github.com/openshift/origin/pkg/deploy/api/v1" @@ -14,7 +12,8 @@ import ( _ "github.com/openshift/origin/pkg/security/api/v1" _ "github.com/openshift/origin/pkg/template/api/v1" _ "github.com/openshift/origin/pkg/user/api/v1" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 958934592cd0..d6ab233385d4 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -4,12 +4,11 @@ import ( "fmt" "reflect" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" ) type RuntimeObjectValidator interface { @@ -129,7 +128,7 @@ func GetRequiresNamespace(obj runtime.Object) (bool, error) { } for _, gvk := range groupVersionKinds { - restMapping, err := registered.RESTMapper().RESTMapping(gvk.GroupKind()) + restMapping, err := kapi.Registry.RESTMapper().RESTMapping(gvk.GroupKind()) if err != nil { return false, err } diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index db046283c38e..3334737a50e2 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -6,12 +6,13 @@ import ( "strings" "testing" - "k8s.io/client-go/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/api/validation/path" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + ktypes "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/runtime" - ktypes "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -52,7 +53,7 @@ func TestNameFunc(t *testing.T) { // check for illegal names for _, illegalName := range []string{".", ".."} { - apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: illegalName})) + apiObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: illegalName})) errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object)) reasons := path.ValidatePathSegmentName(illegalName, false) @@ -89,7 +90,7 @@ func TestNameFunc(t *testing.T) { for _, illegalContent := range []string{"/", "%"} { illegalName := "a" + illegalContent + "b" - apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: illegalName})) + apiObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: illegalName})) errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object)) reasons := path.ValidatePathSegmentName(illegalName, false) @@ -135,13 +136,13 @@ func TestObjectMeta(t *testing.T) { apiObjectMeta := apiValue.Elem().FieldByName("ObjectMeta") if validationInfo.IsNamespaced { - apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: getValidName(apiType)})) + apiObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: getValidName(apiType)})) } else { - apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: getValidName(apiType), Namespace: kapi.NamespaceDefault})) + apiObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: getValidName(apiType), Namespace: metav1.NamespaceDefault})) } errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object)) - requiredErrors := validation.ValidateObjectMeta(apiObjectMeta.Addr().Interface().(*kapi.ObjectMeta), validationInfo.IsNamespaced, path.ValidatePathSegmentName, field.NewPath("metadata")) + requiredErrors := validation.ValidateObjectMeta(apiObjectMeta.Addr().Interface().(*metav1.ObjectMeta), validationInfo.IsNamespaced, path.ValidatePathSegmentName, field.NewPath("metadata")) if len(errList) == 0 { t.Errorf("expected errors %v in %v not found amongst %v. You probably need to call kube/validation.ValidateObjectMeta in your validator.", requiredErrors, apiType.Elem(), errList) @@ -197,15 +198,15 @@ func TestObjectMetaUpdate(t *testing.T) { oldAPIValue := reflect.New(apiType.Elem()) oldAPIObjectMeta := oldAPIValue.Elem().FieldByName("ObjectMeta") - oldAPIObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: "first-name", Namespace: "first-namespace", UID: ktypes.UID("first-uid")})) + oldAPIObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: "first-name", Namespace: "first-namespace", UID: ktypes.UID("first-uid")})) oldObj := oldAPIValue.Interface().(runtime.Object) - oldObjMeta := oldAPIObjectMeta.Addr().Interface().(*kapi.ObjectMeta) + oldObjMeta := oldAPIObjectMeta.Addr().Interface().(*metav1.ObjectMeta) newAPIValue := reflect.New(apiType.Elem()) newAPIObjectMeta := newAPIValue.Elem().FieldByName("ObjectMeta") - newAPIObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: "second-name", Namespace: "second-namespace", UID: ktypes.UID("second-uid")})) + newAPIObjectMeta.Set(reflect.ValueOf(metav1.ObjectMeta{Name: "second-name", Namespace: "second-namespace", UID: ktypes.UID("second-uid")})) newObj := newAPIValue.Interface().(runtime.Object) - newObjMeta := newAPIObjectMeta.Addr().Interface().(*kapi.ObjectMeta) + newObjMeta := newAPIObjectMeta.Addr().Interface().(*metav1.ObjectMeta) errList := validationInfo.Validator.ValidateUpdate(newObj, oldObj) requiredErrors := validation.ValidateObjectMetaUpdate(newObjMeta, oldObjMeta, field.NewPath("metadata")) @@ -235,7 +236,7 @@ func TestObjectMetaUpdate(t *testing.T) { func TestPodSpecNodeSelectorUpdateDisallowed(t *testing.T) { oldPod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ ResourceVersion: "1", }, Spec: kapi.PodSpec{ diff --git a/pkg/api/validation/wrapper.go b/pkg/api/validation/wrapper.go index 488882a9051a..10b1d75cd7ab 100644 --- a/pkg/api/validation/wrapper.go +++ b/pkg/api/validation/wrapper.go @@ -4,8 +4,8 @@ import ( "fmt" "reflect" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" ) type WrappingValidator struct { diff --git a/pkg/assets/extensions.go b/pkg/assets/extensions.go index b764a560071f..372bd27f41be 100644 --- a/pkg/assets/extensions.go +++ b/pkg/assets/extensions.go @@ -11,7 +11,7 @@ import ( "path/filepath" "strings" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) // ExtensionScriptsHandler concatenates and serves extension JavaScript files as one HTTP response. diff --git a/pkg/assets/handlers.go b/pkg/assets/handlers.go index 510945f1a330..07911a78ce07 100644 --- a/pkg/assets/handlers.go +++ b/pkg/assets/handlers.go @@ -14,7 +14,7 @@ import ( "text/template" "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) var varyHeaderRegexp = regexp.MustCompile("\\s*,\\s*") diff --git a/pkg/auth/api/types.go b/pkg/auth/api/types.go index 5c8e6ab4d964..754a9f2b6a75 100644 --- a/pkg/auth/api/types.go +++ b/pkg/auth/api/types.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) const ( diff --git a/pkg/auth/authenticator/anonymous/anonymous.go b/pkg/auth/authenticator/anonymous/anonymous.go index e19d5666a1c8..e617aec50538 100644 --- a/pkg/auth/authenticator/anonymous/anonymous.go +++ b/pkg/auth/authenticator/anonymous/anonymous.go @@ -3,8 +3,8 @@ package anonymous import ( "net/http" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" ) diff --git a/pkg/auth/authenticator/anonymous/anonymous_test.go b/pkg/auth/authenticator/anonymous/anonymous_test.go index 19636fc48df8..6182b3b01e70 100644 --- a/pkg/auth/authenticator/anonymous/anonymous_test.go +++ b/pkg/auth/authenticator/anonymous/anonymous_test.go @@ -5,8 +5,8 @@ import ( "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/authenticator" ) func TestAnonymous(t *testing.T) { diff --git a/pkg/auth/authenticator/interfaces.go b/pkg/auth/authenticator/interfaces.go index acafde794bae..2d133ecef0fc 100644 --- a/pkg/auth/authenticator/interfaces.go +++ b/pkg/auth/authenticator/interfaces.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type Token interface { diff --git a/pkg/auth/authenticator/password/allowanypassword/anyauthpassword.go b/pkg/auth/authenticator/password/allowanypassword/anyauthpassword.go index 69132ce91942..93c4fe74a344 100644 --- a/pkg/auth/authenticator/password/allowanypassword/anyauthpassword.go +++ b/pkg/auth/authenticator/password/allowanypassword/anyauthpassword.go @@ -7,7 +7,7 @@ import ( authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // alwaysAcceptPasswordAuthenticator approves any login attempt with non-blank username and password diff --git a/pkg/auth/authenticator/password/allowanypassword/anyauthpassword_test.go b/pkg/auth/authenticator/password/allowanypassword/anyauthpassword_test.go index 01918cba097f..272ea830e196 100644 --- a/pkg/auth/authenticator/password/allowanypassword/anyauthpassword_test.go +++ b/pkg/auth/authenticator/password/allowanypassword/anyauthpassword_test.go @@ -4,7 +4,7 @@ import ( "testing" "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type testUserIdentityMapper struct{} diff --git a/pkg/auth/authenticator/password/basicauthpassword/basicauthpassword.go b/pkg/auth/authenticator/password/basicauthpassword/basicauthpassword.go index b9b556047afa..57b019ba4710 100644 --- a/pkg/auth/authenticator/password/basicauthpassword/basicauthpassword.go +++ b/pkg/auth/authenticator/password/basicauthpassword/basicauthpassword.go @@ -12,7 +12,7 @@ import ( authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // Authenticator uses basic auth to make a request to a JSON-returning URL. diff --git a/pkg/auth/authenticator/password/denypassword/denypassword.go b/pkg/auth/authenticator/password/denypassword/denypassword.go index 0131b1bdc9cd..5c8ce50c4081 100644 --- a/pkg/auth/authenticator/password/denypassword/denypassword.go +++ b/pkg/auth/authenticator/password/denypassword/denypassword.go @@ -2,7 +2,7 @@ package denypassword import ( "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // denyPasswordAuthenticator denies all password requests diff --git a/pkg/auth/authenticator/password/htpasswd/htpasswd.go b/pkg/auth/authenticator/password/htpasswd/htpasswd.go index fd1c4884fe1a..db32d5b88263 100644 --- a/pkg/auth/authenticator/password/htpasswd/htpasswd.go +++ b/pkg/auth/authenticator/password/htpasswd/htpasswd.go @@ -12,7 +12,7 @@ import ( authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" "golang.org/x/crypto/bcrypt" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // Authenticator watches a file generated by htpasswd to validate usernames and passwords diff --git a/pkg/auth/authenticator/password/keystonepassword/keystonepassword.go b/pkg/auth/authenticator/password/keystonepassword/keystonepassword.go index 0031f23efc32..ee6f6e7534af 100644 --- a/pkg/auth/authenticator/password/keystonepassword/keystonepassword.go +++ b/pkg/auth/authenticator/password/keystonepassword/keystonepassword.go @@ -11,8 +11,8 @@ import ( authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/authentication/user" ) // keystonePasswordAuthenticator uses OpenStack keystone to authenticate a user by password diff --git a/pkg/auth/authenticator/password/keystonepassword/keystonepassword_test.go b/pkg/auth/authenticator/password/keystonepassword/keystonepassword_test.go index 14f3996546a1..30781118a83d 100644 --- a/pkg/auth/authenticator/password/keystonepassword/keystonepassword_test.go +++ b/pkg/auth/authenticator/password/keystonepassword/keystonepassword_test.go @@ -9,7 +9,7 @@ import ( "github.com/openshift/origin/pkg/auth/api" th "github.com/rackspace/gophercloud/testhelper" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type TestUserIdentityMapper struct{} diff --git a/pkg/auth/authenticator/password/ldappassword/ldap.go b/pkg/auth/authenticator/password/ldappassword/ldap.go index dc6383e8e8b8..3f59d52cbe87 100644 --- a/pkg/auth/authenticator/password/ldappassword/ldap.go +++ b/pkg/auth/authenticator/password/ldappassword/ldap.go @@ -4,9 +4,9 @@ import ( "fmt" "runtime/debug" - "k8s.io/kubernetes/pkg/auth/user" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" "github.com/golang/glog" "gopkg.in/ldap.v2" diff --git a/pkg/auth/authenticator/password/oauthpassword/oauthpassword.go b/pkg/auth/authenticator/password/oauthpassword/oauthpassword.go index c2e27d3609bc..f1935879708d 100644 --- a/pkg/auth/authenticator/password/oauthpassword/oauthpassword.go +++ b/pkg/auth/authenticator/password/oauthpassword/oauthpassword.go @@ -5,7 +5,7 @@ import ( "github.com/golang/glog" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type Authenticator struct { diff --git a/pkg/auth/authenticator/password/oauthpassword/registry/registry.go b/pkg/auth/authenticator/password/oauthpassword/registry/registry.go index e5045850f0e7..876a17718a4a 100644 --- a/pkg/auth/authenticator/password/oauthpassword/registry/registry.go +++ b/pkg/auth/authenticator/password/oauthpassword/registry/registry.go @@ -5,8 +5,9 @@ import ( "github.com/openshift/origin/pkg/client" oclient "github.com/openshift/origin/pkg/oauth/client" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + restclient "k8s.io/client-go/rest" ) type OAuthAccessTokenSource interface { @@ -38,7 +39,7 @@ func (a *Authenticator) AuthenticatePassword(username, password string) (user.In if err != nil { return nil, false, err } - u, err := client.Users().Get("~") + u, err := client.Users().Get("~", metav1.GetOptions{}) if err != nil { return nil, false, err } diff --git a/pkg/auth/authenticator/request/basicauthrequest/basicauth.go b/pkg/auth/authenticator/request/basicauthrequest/basicauth.go index 0297ed67697c..dc33e7b6a766 100644 --- a/pkg/auth/authenticator/request/basicauthrequest/basicauth.go +++ b/pkg/auth/authenticator/request/basicauthrequest/basicauth.go @@ -6,7 +6,7 @@ import ( "net/http" "strings" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" "github.com/golang/glog" "github.com/openshift/origin/pkg/auth/authenticator" diff --git a/pkg/auth/authenticator/request/basicauthrequest/basicauth_test.go b/pkg/auth/authenticator/request/basicauthrequest/basicauth_test.go index 83f67d6ebcc7..4d7ad09c1c41 100644 --- a/pkg/auth/authenticator/request/basicauthrequest/basicauth_test.go +++ b/pkg/auth/authenticator/request/basicauthrequest/basicauth_test.go @@ -4,7 +4,7 @@ import ( "net/http" "testing" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) const ( diff --git a/pkg/auth/authenticator/request/bearertoken/bearertoken.go b/pkg/auth/authenticator/request/bearertoken/bearertoken.go index 890b3f451410..8462dd944660 100644 --- a/pkg/auth/authenticator/request/bearertoken/bearertoken.go +++ b/pkg/auth/authenticator/request/bearertoken/bearertoken.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type Authenticator struct { diff --git a/pkg/auth/authenticator/request/bearertoken/bearertoken_test.go b/pkg/auth/authenticator/request/bearertoken/bearertoken_test.go index 6d7dded0f88d..d9436dfd4ca1 100644 --- a/pkg/auth/authenticator/request/bearertoken/bearertoken_test.go +++ b/pkg/auth/authenticator/request/bearertoken/bearertoken_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" ) func TestBearerToken(t *testing.T) { diff --git a/pkg/auth/authenticator/request/contextrequest/requestcontext.go b/pkg/auth/authenticator/request/contextrequest/requestcontext.go index 894077cba2eb..741e51976542 100644 --- a/pkg/auth/authenticator/request/contextrequest/requestcontext.go +++ b/pkg/auth/authenticator/request/contextrequest/requestcontext.go @@ -4,7 +4,7 @@ import ( "errors" "net/http" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type Context interface { diff --git a/pkg/auth/authenticator/request/headerrequest/requestheader.go b/pkg/auth/authenticator/request/headerrequest/requestheader.go index 4799558e18b8..6be6873f9841 100644 --- a/pkg/auth/authenticator/request/headerrequest/requestheader.go +++ b/pkg/auth/authenticator/request/headerrequest/requestheader.go @@ -7,7 +7,7 @@ import ( "github.com/golang/glog" authapi "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type Config struct { diff --git a/pkg/auth/authenticator/request/headerrequest/requestheader_test.go b/pkg/auth/authenticator/request/headerrequest/requestheader_test.go index 728be6c69629..1d1a60d0dcf0 100644 --- a/pkg/auth/authenticator/request/headerrequest/requestheader_test.go +++ b/pkg/auth/authenticator/request/headerrequest/requestheader_test.go @@ -6,7 +6,7 @@ import ( "testing" "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type TestUserIdentityMapper struct { diff --git a/pkg/auth/authenticator/request/paramtoken/paramtoken.go b/pkg/auth/authenticator/request/paramtoken/paramtoken.go index 53cf1595685d..7a99d4b728fa 100644 --- a/pkg/auth/authenticator/request/paramtoken/paramtoken.go +++ b/pkg/auth/authenticator/request/paramtoken/paramtoken.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // Authenticator provides a way to authenticate tokens provided as a parameter diff --git a/pkg/auth/authenticator/request/x509request/x509.go b/pkg/auth/authenticator/request/x509request/x509.go index 033356160c5b..2369c721354e 100644 --- a/pkg/auth/authenticator/request/x509request/x509.go +++ b/pkg/auth/authenticator/request/x509request/x509.go @@ -8,9 +8,9 @@ import ( "github.com/golang/glog" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" ) // UserConversion defines an interface for extracting user info from a client certificate chain diff --git a/pkg/auth/authenticator/request/x509request/x509_test.go b/pkg/auth/authenticator/request/x509request/x509_test.go index 57e9156ddd92..01fd285913cf 100644 --- a/pkg/auth/authenticator/request/x509request/x509_test.go +++ b/pkg/auth/authenticator/request/x509request/x509_test.go @@ -11,8 +11,8 @@ import ( "time" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" ) const ( diff --git a/pkg/auth/authenticator/token/cache/cache.go b/pkg/auth/authenticator/token/cache/cache.go index 61e549859020..43502d122dee 100644 --- a/pkg/auth/authenticator/token/cache/cache.go +++ b/pkg/auth/authenticator/token/cache/cache.go @@ -7,9 +7,9 @@ import ( "github.com/golang/glog" "github.com/hashicorp/golang-lru" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + kerrs "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/authenticator" ) diff --git a/pkg/auth/authenticator/token/cache/cache_test.go b/pkg/auth/authenticator/token/cache/cache_test.go index 00007f31f8da..b78f49d58e24 100644 --- a/pkg/auth/authenticator/token/cache/cache_test.go +++ b/pkg/auth/authenticator/token/cache/cache_test.go @@ -7,9 +7,9 @@ import ( "testing" "time" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + kerrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" ) type testRequest struct { diff --git a/pkg/auth/authenticator/token/filetoken/token.go b/pkg/auth/authenticator/token/filetoken/token.go index 86e1b95b750f..f71b636c6360 100644 --- a/pkg/auth/authenticator/token/filetoken/token.go +++ b/pkg/auth/authenticator/token/filetoken/token.go @@ -6,7 +6,7 @@ import ( "io" "os" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type TokenAuthenticator struct { diff --git a/pkg/auth/authenticator/token/remotemaster/remotemaster.go b/pkg/auth/authenticator/token/remotemaster/remotemaster.go index efef4199d8c7..6db519713faf 100644 --- a/pkg/auth/authenticator/token/remotemaster/remotemaster.go +++ b/pkg/auth/authenticator/token/remotemaster/remotemaster.go @@ -1,8 +1,9 @@ package remotemaster import ( - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -35,7 +36,7 @@ func (a *Authenticator) AuthenticateToken(value string) (user.Info, bool, error) return nil, false, err } - u, err := c.Users().Get("~") + u, err := c.Users().Get("~", metav1.GetOptions{}) if err != nil { return nil, false, err } diff --git a/pkg/auth/authenticator/token/remotetokenreview/removetokenreview.go b/pkg/auth/authenticator/token/remotetokenreview/removetokenreview.go index 25e74e752179..793749fbe8d2 100644 --- a/pkg/auth/authenticator/token/remotetokenreview/removetokenreview.go +++ b/pkg/auth/authenticator/token/remotetokenreview/removetokenreview.go @@ -3,8 +3,8 @@ package remotetokenreview import ( "errors" + "k8s.io/apiserver/pkg/authentication/user" "k8s.io/kubernetes/pkg/apis/authentication" - "k8s.io/kubernetes/pkg/auth/user" internalauthentication "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion" ) diff --git a/pkg/auth/client/impersonate.go b/pkg/auth/client/impersonate.go index d4397c7fa02e..808cd59601bb 100644 --- a/pkg/auth/client/impersonate.go +++ b/pkg/auth/client/impersonate.go @@ -3,9 +3,9 @@ package client import ( "net/http" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" + restclient "k8s.io/client-go/rest" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" authenticationapi "github.com/openshift/origin/pkg/auth/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" diff --git a/pkg/auth/ldaputil/client.go b/pkg/auth/ldaputil/client.go index f8027237fc46..fdc9c658639a 100644 --- a/pkg/auth/ldaputil/client.go +++ b/pkg/auth/ldaputil/client.go @@ -5,7 +5,7 @@ import ( "fmt" "net" - "k8s.io/kubernetes/pkg/util/cert" + "k8s.io/client-go/util/cert" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" "gopkg.in/ldap.v2" diff --git a/pkg/auth/ldaputil/identityfactory.go b/pkg/auth/ldaputil/identityfactory.go index 7c398d398824..a6c20b9e505b 100644 --- a/pkg/auth/ldaputil/identityfactory.go +++ b/pkg/auth/ldaputil/identityfactory.go @@ -6,7 +6,7 @@ import ( "gopkg.in/ldap.v2" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" authapi "github.com/openshift/origin/pkg/auth/api" serverapi "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/pkg/auth/oauth/external/github/github.go b/pkg/auth/oauth/external/github/github.go index 935b924caa84..eba9b6190ef8 100644 --- a/pkg/auth/oauth/external/github/github.go +++ b/pkg/auth/oauth/external/github/github.go @@ -7,7 +7,7 @@ import ( "net/http" "strings" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/RangelReale/osincli" "github.com/golang/glog" diff --git a/pkg/auth/oauth/external/handler.go b/pkg/auth/oauth/external/handler.go index babd4e8f8cb4..3aaaeed4739a 100644 --- a/pkg/auth/oauth/external/handler.go +++ b/pkg/auth/oauth/external/handler.go @@ -9,8 +9,8 @@ import ( "github.com/RangelReale/osincli" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/oauth/handlers" diff --git a/pkg/auth/oauth/external/handler_test.go b/pkg/auth/oauth/external/handler_test.go index 759e2dac33ac..7eb60e5dc95f 100644 --- a/pkg/auth/oauth/external/handler_test.go +++ b/pkg/auth/oauth/external/handler_test.go @@ -9,7 +9,7 @@ import ( "github.com/RangelReale/osincli" "github.com/openshift/origin/pkg/auth/oauth/handlers" "github.com/openshift/origin/pkg/auth/server/csrf" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) func TestHandler(t *testing.T) { diff --git a/pkg/auth/oauth/external/openid/openid.go b/pkg/auth/oauth/external/openid/openid.go index 0ec140553a1f..589dad5191df 100644 --- a/pkg/auth/oauth/external/openid/openid.go +++ b/pkg/auth/oauth/external/openid/openid.go @@ -12,7 +12,7 @@ import ( "github.com/RangelReale/osincli" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/oauth/external" diff --git a/pkg/auth/oauth/handlers/authenticator.go b/pkg/auth/oauth/handlers/authenticator.go index 0f726baa30a2..913314f7d550 100644 --- a/pkg/auth/oauth/handlers/authenticator.go +++ b/pkg/auth/oauth/handlers/authenticator.go @@ -8,7 +8,7 @@ import ( "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // AuthorizeAuthenticator implements osinserver.AuthorizeHandler to ensure requests are authenticated diff --git a/pkg/auth/oauth/handlers/default_auth_handler.go b/pkg/auth/oauth/handlers/default_auth_handler.go index 1c21be3df547..b1b181cdec82 100644 --- a/pkg/auth/oauth/handlers/default_auth_handler.go +++ b/pkg/auth/oauth/handlers/default_auth_handler.go @@ -6,7 +6,7 @@ import ( "regexp" "strings" - kerrors "k8s.io/kubernetes/pkg/util/errors" + kerrors "k8s.io/apimachinery/pkg/util/errors" authapi "github.com/openshift/origin/pkg/auth/api" oauthapi "github.com/openshift/origin/pkg/oauth/api" diff --git a/pkg/auth/oauth/handlers/empties.go b/pkg/auth/oauth/handlers/empties.go index 74476dec6847..9df9fc102739 100644 --- a/pkg/auth/oauth/handlers/empties.go +++ b/pkg/auth/oauth/handlers/empties.go @@ -6,7 +6,7 @@ import ( "github.com/golang/glog" authapi "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type EmptyAuth struct{} diff --git a/pkg/auth/oauth/handlers/grant.go b/pkg/auth/oauth/handlers/grant.go index 51f8175246fc..56859f176be5 100644 --- a/pkg/auth/oauth/handlers/grant.go +++ b/pkg/auth/oauth/handlers/grant.go @@ -10,9 +10,9 @@ import ( "github.com/RangelReale/osin" - "k8s.io/kubernetes/pkg/auth/user" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/api" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" diff --git a/pkg/auth/oauth/handlers/interfaces.go b/pkg/auth/oauth/handlers/interfaces.go index dbf7b41ae39e..a1e3b4ad3a08 100644 --- a/pkg/auth/oauth/handlers/interfaces.go +++ b/pkg/auth/oauth/handlers/interfaces.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/openshift/origin/pkg/auth/api" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) // AuthenticationHandler reacts to unauthenticated requests diff --git a/pkg/auth/oauth/registry/grantchecker.go b/pkg/auth/oauth/registry/grantchecker.go index 40cb50e51cbe..dff63214f727 100644 --- a/pkg/auth/oauth/registry/grantchecker.go +++ b/pkg/auth/oauth/registry/grantchecker.go @@ -3,13 +3,14 @@ package registry import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthclientauthorization" "github.com/openshift/origin/pkg/oauth/scope" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type ClientAuthorizationGrantChecker struct { @@ -22,7 +23,7 @@ func NewClientAuthorizationGrantChecker(registry oauthclientauthorization.Regist func (c *ClientAuthorizationGrantChecker) HasAuthorizedClient(user user.Info, grant *api.Grant) (approved bool, err error) { id := c.registry.ClientAuthorizationName(user.GetName(), grant.Client.GetId()) - authorization, err := c.registry.GetClientAuthorization(kapi.NewContext(), id) + authorization, err := c.registry.GetClientAuthorization(apirequest.NewContext(), id, &metav1.GetOptions{}) if errors.IsNotFound(err) { return false, nil } diff --git a/pkg/auth/oauth/registry/registry_test.go b/pkg/auth/oauth/registry/registry_test.go index 32b2d68df281..1ba2723731b6 100644 --- a/pkg/auth/oauth/registry/registry_test.go +++ b/pkg/auth/oauth/registry/registry_test.go @@ -9,9 +9,8 @@ import ( "github.com/RangelReale/osin" "github.com/RangelReale/osincli" - kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/oauth/handlers" @@ -22,7 +21,7 @@ import ( "github.com/openshift/origin/pkg/oauth/server/osinserver/registrystorage" userapi "github.com/openshift/origin/pkg/user/api" usertest "github.com/openshift/origin/pkg/user/registry/test" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) type testHandlers struct { @@ -93,13 +92,13 @@ func TestRegistryAndServer(t *testing.T) { })) validClient := &oapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Secret: "secret", RedirectURIs: []string{assertServer.URL + "/assert"}, } restrictedClient := &oapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Secret: "secret", RedirectURIs: []string{assertServer.URL + "/assert"}, ScopeRestrictions: []oapi.ScopeRestriction{ @@ -341,7 +340,7 @@ func TestAuthenticateTokenExpired(t *testing.T) { tokenRegistry := &test.AccessTokenRegistry{ Err: nil, AccessToken: &oapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: unversioned.Time{Time: time.Now().Add(-1 * time.Hour)}}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: metav1.Time{Time: time.Now().Add(-1 * time.Hour)}}, ExpiresIn: 600, // 10 minutes }, } @@ -363,14 +362,14 @@ func TestAuthenticateTokenValidated(t *testing.T) { tokenRegistry := &test.AccessTokenRegistry{ Err: nil, AccessToken: &oapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: unversioned.Time{Time: time.Now()}}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: metav1.Time{Time: time.Now()}}, ExpiresIn: 600, // 10 minutes UserName: "foo", UserUID: string("bar"), }, } userRegistry := usertest.NewUserRegistry() - userRegistry.Get["foo"] = &userapi.User{ObjectMeta: kapi.ObjectMeta{UID: "bar"}} + userRegistry.Get["foo"] = &userapi.User{ObjectMeta: metav1.ObjectMeta{UID: "bar"}} tokenAuthenticator := NewTokenAuthenticator(tokenRegistry, userRegistry, identitymapper.NoopGroupMapper{}) diff --git a/pkg/auth/oauth/registry/tokenauthenticator.go b/pkg/auth/oauth/registry/tokenauthenticator.go index 480671efd957..414ed4bad3ad 100644 --- a/pkg/auth/oauth/registry/tokenauthenticator.go +++ b/pkg/auth/oauth/registry/tokenauthenticator.go @@ -9,8 +9,9 @@ import ( authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/oauth/registry/oauthaccesstoken" "github.com/openshift/origin/pkg/user/registry/user" - "k8s.io/kubernetes/pkg/api" - kuser "k8s.io/kubernetes/pkg/auth/user" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kuser "k8s.io/apiserver/pkg/authentication/user" + kapirequest "k8s.io/apiserver/pkg/endpoints/request" ) type TokenAuthenticator struct { @@ -30,9 +31,9 @@ func NewTokenAuthenticator(tokens oauthaccesstoken.Registry, users user.Registry } func (a *TokenAuthenticator) AuthenticateToken(value string) (kuser.Info, bool, error) { - ctx := api.NewContext() + ctx := kapirequest.NewContext() - token, err := a.tokens.GetAccessToken(ctx, value) + token, err := a.tokens.GetAccessToken(ctx, value, &metav1.GetOptions{}) if err != nil { return nil, false, err } @@ -40,7 +41,7 @@ func (a *TokenAuthenticator) AuthenticateToken(value string) (kuser.Info, bool, return nil, false, ErrExpired } - u, err := a.users.GetUser(ctx, token.UserName) + u, err := a.users.GetUser(ctx, token.UserName, &metav1.GetOptions{}) if err != nil { return nil, false, err } diff --git a/pkg/auth/oauth/registry/userconversion.go b/pkg/auth/oauth/registry/userconversion.go index 9a7b162cc3ed..73dc770bdf2d 100644 --- a/pkg/auth/oauth/registry/userconversion.go +++ b/pkg/auth/oauth/registry/userconversion.go @@ -3,7 +3,7 @@ package registry import ( "errors" - kuser "k8s.io/kubernetes/pkg/auth/user" + kuser "k8s.io/apiserver/pkg/authentication/user" oapi "github.com/openshift/origin/pkg/oauth/api" ) diff --git a/pkg/auth/server/errorpage/errorpage.go b/pkg/auth/server/errorpage/errorpage.go index a3e7189fcc0e..7cb47318c2cf 100644 --- a/pkg/auth/server/errorpage/errorpage.go +++ b/pkg/auth/server/errorpage/errorpage.go @@ -6,7 +6,7 @@ import ( "html/template" "net/http" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "github.com/golang/glog" "github.com/openshift/origin/pkg/auth/oauth/handlers" diff --git a/pkg/auth/server/grant/grant.go b/pkg/auth/server/grant/grant.go index ca3688cbae73..fea6ecfaea5c 100644 --- a/pkg/auth/server/grant/grant.go +++ b/pkg/auth/server/grant/grant.go @@ -7,10 +7,11 @@ import ( "path" "strings" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/serviceaccount" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/golang/glog" "github.com/openshift/origin/pkg/auth/authenticator" @@ -128,7 +129,7 @@ func (l *Grant) handleForm(user user.Info, w http.ResponseWriter, req *http.Requ scopes := scope.Split(q.Get(scopeParam)) redirectURI := q.Get(redirectURIParam) - client, err := l.clientregistry.GetClient(kapi.NewContext(), clientID) + client, err := l.clientregistry.GetClient(apirequest.NewContext(), clientID, &metav1.GetOptions{}) if err != nil || client == nil { l.failed("Could not find client for client_id", w, req) return @@ -152,7 +153,7 @@ func (l *Grant) handleForm(user user.Info, w http.ResponseWriter, req *http.Requ requestedScopes := []Scope{} clientAuthID := l.authregistry.ClientAuthorizationName(user.GetName(), client.Name) - if clientAuth, err := l.authregistry.GetClientAuthorization(kapi.NewContext(), clientAuthID); err == nil { + if clientAuth, err := l.authregistry.GetClientAuthorization(apirequest.NewContext(), clientAuthID, &metav1.GetOptions{}); err == nil { grantedScopeNames = clientAuth.Scopes } @@ -232,7 +233,7 @@ func (l *Grant) handleGrant(user user.Info, w http.ResponseWriter, req *http.Req } clientID := req.PostFormValue(clientIDParam) - client, err := l.clientregistry.GetClient(kapi.NewContext(), clientID) + client, err := l.clientregistry.GetClient(apirequest.NewContext(), clientID, &metav1.GetOptions{}) if err != nil || client == nil { l.failed("Could not find client for client_id", w, req) return @@ -245,8 +246,8 @@ func (l *Grant) handleGrant(user user.Info, w http.ResponseWriter, req *http.Req clientAuthID := l.authregistry.ClientAuthorizationName(user.GetName(), client.Name) - ctx := kapi.NewContext() - clientAuth, err := l.authregistry.GetClientAuthorization(ctx, clientAuthID) + ctx := apirequest.NewContext() + clientAuth, err := l.authregistry.GetClientAuthorization(ctx, clientAuthID, &metav1.GetOptions{}) if err == nil && clientAuth != nil { // Add new scopes and update clientAuth.Scopes = scope.Add(clientAuth.Scopes, scope.Split(scopes)) diff --git a/pkg/auth/server/grant/grant_test.go b/pkg/auth/server/grant/grant_test.go index bad288e8d984..30c87cf9d24f 100644 --- a/pkg/auth/server/grant/grant_test.go +++ b/pkg/auth/server/grant/grant_test.go @@ -10,10 +10,10 @@ import ( "strings" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" - knet "k8s.io/kubernetes/pkg/util/net" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/server/csrf" oapi "github.com/openshift/origin/pkg/oauth/api" @@ -38,7 +38,7 @@ func badAuth(err error) *testAuth { } func goodClientRegistry(clientID string, redirectURIs []string, literalScopes []string) *test.ClientRegistry { - client := &oapi.OAuthClient{ObjectMeta: kapi.ObjectMeta{Name: clientID}, Secret: "mysecret", RedirectURIs: redirectURIs} + client := &oapi.OAuthClient{ObjectMeta: metav1.ObjectMeta{Name: clientID}, Secret: "mysecret", RedirectURIs: redirectURIs} client.Name = clientID if len(literalScopes) > 0 { client.ScopeRestrictions = []oapi.ScopeRestriction{{ExactValues: literalScopes}} diff --git a/pkg/auth/server/login/implicit.go b/pkg/auth/server/login/implicit.go index bcfab9cfe601..082f356136fd 100644 --- a/pkg/auth/server/login/implicit.go +++ b/pkg/auth/server/login/implicit.go @@ -7,8 +7,8 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/auth/user" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/authenticator" "github.com/openshift/origin/pkg/auth/oauth/handlers" diff --git a/pkg/auth/server/login/implicit_test.go b/pkg/auth/server/login/implicit_test.go index 94ad2c957e1f..83b31abbcbaf 100644 --- a/pkg/auth/server/login/implicit_test.go +++ b/pkg/auth/server/login/implicit_test.go @@ -9,7 +9,7 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/server/csrf" ) diff --git a/pkg/auth/server/login/login.go b/pkg/auth/server/login/login.go index ce4a001e72b6..1729fabdffda 100644 --- a/pkg/auth/server/login/login.go +++ b/pkg/auth/server/login/login.go @@ -10,7 +10,7 @@ import ( "github.com/golang/glog" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "github.com/openshift/origin/pkg/auth/authenticator" "github.com/openshift/origin/pkg/auth/oauth/handlers" diff --git a/pkg/auth/server/login/login_test.go b/pkg/auth/server/login/login_test.go index 22f812f9e356..96a3b7abfe1b 100644 --- a/pkg/auth/server/login/login_test.go +++ b/pkg/auth/server/login/login_test.go @@ -9,7 +9,7 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/auth/server/csrf" "github.com/openshift/origin/pkg/auth/userregistry/identitymapper" diff --git a/pkg/auth/server/selectprovider/selectprovider.go b/pkg/auth/server/selectprovider/selectprovider.go index a327a015ee7f..e63694d84630 100644 --- a/pkg/auth/server/selectprovider/selectprovider.go +++ b/pkg/auth/server/selectprovider/selectprovider.go @@ -8,7 +8,7 @@ import ( "net/http" "github.com/openshift/origin/pkg/auth/oauth/handlers" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) type SelectProviderRenderer interface { diff --git a/pkg/auth/server/session/authenticator.go b/pkg/auth/server/session/authenticator.go index 5c290adf6f90..6a6900a1902d 100644 --- a/pkg/auth/server/session/authenticator.go +++ b/pkg/auth/server/session/authenticator.go @@ -4,7 +4,7 @@ import ( "errors" "net/http" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" ) const UserNameKey = "user.name" diff --git a/pkg/auth/server/tokenrequest/endpoints.go b/pkg/auth/server/tokenrequest/endpoints.go index 18bd2ec49072..14e31187d06d 100644 --- a/pkg/auth/server/tokenrequest/endpoints.go +++ b/pkg/auth/server/tokenrequest/endpoints.go @@ -9,7 +9,7 @@ import ( "github.com/RangelReale/osincli" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "github.com/openshift/origin/pkg/auth/server/login" ) diff --git a/pkg/auth/userregistry/identitymapper/lookup.go b/pkg/auth/userregistry/identitymapper/lookup.go index 92e0122637ff..82f345f9d480 100644 --- a/pkg/auth/userregistry/identitymapper/lookup.go +++ b/pkg/auth/userregistry/identitymapper/lookup.go @@ -3,8 +3,9 @@ package identitymapper import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kuser "k8s.io/kubernetes/pkg/auth/user" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kuser "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/user/registry/user" @@ -21,14 +22,14 @@ type lookupIdentityMapper struct { // UserFor returns info about the user for whom identity info has been provided func (p *lookupIdentityMapper) UserFor(info authapi.UserIdentityInfo) (kuser.Info, error) { - ctx := kapi.NewContext() + ctx := apirequest.NewContext() - mapping, err := p.mappings.GetUserIdentityMapping(ctx, info.GetIdentityName()) + mapping, err := p.mappings.GetUserIdentityMapping(ctx, info.GetIdentityName(), &metav1.GetOptions{}) if err != nil { return nil, NewLookupError(info, err) } - u, err := p.users.GetUser(ctx, mapping.User.Name) + u, err := p.users.GetUser(ctx, mapping.User.Name, &metav1.GetOptions{}) if err != nil { return nil, NewLookupError(info, err) } diff --git a/pkg/auth/userregistry/identitymapper/provision.go b/pkg/auth/userregistry/identitymapper/provision.go index 55d8b7e11314..29eb155f50a6 100644 --- a/pkg/auth/userregistry/identitymapper/provision.go +++ b/pkg/auth/userregistry/identitymapper/provision.go @@ -2,10 +2,12 @@ package identitymapper import ( "github.com/golang/glog" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + kuser "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - kuser "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" authapi "github.com/openshift/origin/pkg/auth/api" userapi "github.com/openshift/origin/pkg/user/api" @@ -17,7 +19,7 @@ import ( // The preferredUserName is available to the strategies type UserForNewIdentityGetter interface { // UserForNewIdentity returns a persisted User object for the given Identity, creating it if needed - UserForNewIdentity(ctx kapi.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) + UserForNewIdentity(ctx apirequest.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) } var _ = authapi.UserIdentityMapper(&provisioningIdentityMapper{}) @@ -45,9 +47,9 @@ func (p *provisioningIdentityMapper) UserFor(info authapi.UserIdentityInfo) (kus } func (p *provisioningIdentityMapper) userForWithRetries(info authapi.UserIdentityInfo, allowedRetries int) (kuser.Info, error) { - ctx := kapi.NewContext() + ctx := apirequest.NewContext() - identity, err := p.identity.GetIdentity(ctx, info.GetIdentityName()) + identity, err := p.identity.GetIdentity(ctx, info.GetIdentityName(), &metav1.GetOptions{}) if kerrs.IsNotFound(err) { user, err := p.createIdentityAndMapping(ctx, info) @@ -72,10 +74,10 @@ func (p *provisioningIdentityMapper) userForWithRetries(info authapi.UserIdentit } // createIdentityAndMapping creates an identity with a valid user reference for the given identity info -func (p *provisioningIdentityMapper) createIdentityAndMapping(ctx kapi.Context, info authapi.UserIdentityInfo) (kuser.Info, error) { +func (p *provisioningIdentityMapper) createIdentityAndMapping(ctx apirequest.Context, info authapi.UserIdentityInfo) (kuser.Info, error) { // Build the part of the identity we know about identity := &userapi.Identity{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: info.GetIdentityName(), }, ProviderName: info.GetProviderName(), @@ -105,11 +107,11 @@ func (p *provisioningIdentityMapper) createIdentityAndMapping(ctx kapi.Context, }, nil } -func (p *provisioningIdentityMapper) getMapping(ctx kapi.Context, identity *userapi.Identity) (kuser.Info, error) { +func (p *provisioningIdentityMapper) getMapping(ctx apirequest.Context, identity *userapi.Identity) (kuser.Info, error) { if len(identity.User.Name) == 0 { return nil, kerrs.NewNotFound(userapi.Resource("useridentitymapping"), identity.Name) } - u, err := p.user.GetUser(ctx, identity.User.Name) + u, err := p.user.GetUser(ctx, identity.User.Name, &metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/auth/userregistry/identitymapper/provision_test.go b/pkg/auth/userregistry/identitymapper/provision_test.go index b93d73914b45..b018e03fe344 100644 --- a/pkg/auth/userregistry/identitymapper/provision_test.go +++ b/pkg/auth/userregistry/identitymapper/provision_test.go @@ -5,8 +5,8 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" + kerrs "k8s.io/apimachinery/pkg/api/errors" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/user/api" @@ -19,7 +19,7 @@ type testNewIdentityGetter struct { responses []interface{} } -func (t *testNewIdentityGetter) UserForNewIdentity(ctx kapi.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { +func (t *testNewIdentityGetter) UserForNewIdentity(ctx apirequest.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { t.called++ if len(t.responses) < t.called { return nil, fmt.Errorf("Called at least %d times, only %d responses registered", t.called, len(t.responses)) diff --git a/pkg/auth/userregistry/identitymapper/strategy_add.go b/pkg/auth/userregistry/identitymapper/strategy_add.go index 244e6fba8228..52f0069b75fd 100644 --- a/pkg/auth/userregistry/identitymapper/strategy_add.go +++ b/pkg/auth/userregistry/identitymapper/strategy_add.go @@ -1,9 +1,10 @@ package identitymapper import ( - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/user" userapi "github.com/openshift/origin/pkg/user/api" @@ -23,9 +24,9 @@ func NewStrategyAdd(user userregistry.Registry, initializer user.Initializer) Us return &StrategyAdd{user, initializer} } -func (s *StrategyAdd) UserForNewIdentity(ctx kapi.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { +func (s *StrategyAdd) UserForNewIdentity(ctx apirequest.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { - persistedUser, err := s.user.GetUser(ctx, preferredUserName) + persistedUser, err := s.user.GetUser(ctx, preferredUserName, &metav1.GetOptions{}) switch { case kerrs.IsNotFound(err): diff --git a/pkg/auth/userregistry/identitymapper/strategy_claim.go b/pkg/auth/userregistry/identitymapper/strategy_claim.go index 3cf471260cf2..35698b4f8924 100644 --- a/pkg/auth/userregistry/identitymapper/strategy_claim.go +++ b/pkg/auth/userregistry/identitymapper/strategy_claim.go @@ -3,9 +3,10 @@ package identitymapper import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/user" userapi "github.com/openshift/origin/pkg/user/api" @@ -42,9 +43,9 @@ func NewStrategyClaim(user userregistry.Registry, initializer user.Initializer) return &StrategyClaim{user, initializer} } -func (s *StrategyClaim) UserForNewIdentity(ctx kapi.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { +func (s *StrategyClaim) UserForNewIdentity(ctx apirequest.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { - persistedUser, err := s.user.GetUser(ctx, preferredUserName) + persistedUser, err := s.user.GetUser(ctx, preferredUserName, &metav1.GetOptions{}) switch { case kerrs.IsNotFound(err): diff --git a/pkg/auth/userregistry/identitymapper/strategy_generate.go b/pkg/auth/userregistry/identitymapper/strategy_generate.go index 8d9cf1cef28b..b707516d9c6a 100644 --- a/pkg/auth/userregistry/identitymapper/strategy_generate.go +++ b/pkg/auth/userregistry/identitymapper/strategy_generate.go @@ -4,9 +4,10 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/user" userapi "github.com/openshift/origin/pkg/user/api" @@ -43,7 +44,7 @@ func NewStrategyGenerate(user userregistry.Registry, initializer user.Initialize return &StrategyGenerate{user, DefaultGenerator, initializer} } -func (s *StrategyGenerate) UserForNewIdentity(ctx kapi.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { +func (s *StrategyGenerate) UserForNewIdentity(ctx apirequest.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) { // Iterate through the max allowed generated usernames // If an existing user references this identity, associate the identity with that user and return @@ -56,7 +57,7 @@ UserSearch: potentialUserName := s.generator(preferredUserName, sequence) // See if it already exists - persistedUser, err := s.user.GetUser(ctx, potentialUserName) + persistedUser, err := s.user.GetUser(ctx, potentialUserName, &metav1.GetOptions{}) switch { case kerrs.IsNotFound(err): diff --git a/pkg/auth/userregistry/identitymapper/strategy_test.go b/pkg/auth/userregistry/identitymapper/strategy_test.go index 060b69e365b2..54915bac034b 100644 --- a/pkg/auth/userregistry/identitymapper/strategy_test.go +++ b/pkg/auth/userregistry/identitymapper/strategy_test.go @@ -4,8 +4,10 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/types" "github.com/openshift/origin/pkg/user" "github.com/openshift/origin/pkg/user/api" @@ -43,7 +45,7 @@ type strategyTestCase struct { func makeUser(uid string, name string, identities ...string) *api.User { return &api.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, UID: types.UID(uid), }, @@ -52,7 +54,7 @@ func makeUser(uid string, name string, identities ...string) *api.User { } func makeIdentity(uid string, providerName string, providerUserName string, userUID string, userName string) *api.Identity { return &api.Identity{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: providerName + ":" + providerUserName, UID: types.UID(uid), }, @@ -79,7 +81,7 @@ func (tc strategyTestCase) run(k string, t *testing.T) { testInit := &testInitializer{} strategy := tc.MakeStrategy(userRegistry, testInit) - user, err := strategy.UserForNewIdentity(kapi.NewContext(), tc.PreferredUsername, tc.Identity) + user, err := strategy.UserForNewIdentity(apirequest.NewContext(), tc.PreferredUsername, tc.Identity) if tc.ExpectedError != (err != nil) { t.Errorf("%s: Expected error=%v, got %v", k, tc.ExpectedError, err) return diff --git a/pkg/authorization/admission/restrictusers/groupcache_test.go b/pkg/authorization/admission/restrictusers/groupcache_test.go index f0c268524456..dd5d25ff8df5 100644 --- a/pkg/authorization/admission/restrictusers/groupcache_test.go +++ b/pkg/authorization/admission/restrictusers/groupcache_test.go @@ -1,8 +1,10 @@ package restrictusers import ( - kapi "k8s.io/kubernetes/pkg/api" - watch "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watch "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -12,21 +14,21 @@ type groupCache struct { } // GroupCache uses only ListGroups and WatchGroups. Other methods can be stubs. -func (groupCache *groupCache) ListGroups(ctx kapi.Context, options *kapi.ListOptions) (*userapi.GroupList, error) { +func (groupCache *groupCache) ListGroups(ctx apirequest.Context, options *metainternal.ListOptions) (*userapi.GroupList, error) { return &userapi.GroupList{Items: groupCache.groups}, nil } -func (groupCache *groupCache) GetGroup(ctx kapi.Context, name string) (*userapi.Group, error) { +func (groupCache *groupCache) GetGroup(ctx apirequest.Context, name string, options *metav1.GetOptions) (*userapi.Group, error) { return nil, nil } -func (*groupCache) CreateGroup(ctx kapi.Context, group *userapi.Group) (*userapi.Group, error) { +func (*groupCache) CreateGroup(ctx apirequest.Context, group *userapi.Group) (*userapi.Group, error) { return nil, nil } -func (*groupCache) UpdateGroup(ctx kapi.Context, group *userapi.Group) (*userapi.Group, error) { +func (*groupCache) UpdateGroup(ctx apirequest.Context, group *userapi.Group) (*userapi.Group, error) { return nil, nil } -func (*groupCache) DeleteGroup(ctx kapi.Context, name string) error { +func (*groupCache) DeleteGroup(ctx apirequest.Context, name string) error { return nil } -func (*groupCache) WatchGroups(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (*groupCache) WatchGroups(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return watch.NewFake(), nil } diff --git a/pkg/authorization/admission/restrictusers/restrictusers.go b/pkg/authorization/admission/restrictusers/restrictusers.go index a448234c7c5a..2b75352653c7 100644 --- a/pkg/authorization/admission/restrictusers/restrictusers.go +++ b/pkg/authorization/admission/restrictusers/restrictusers.go @@ -8,9 +8,11 @@ import ( kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/util/errors" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" authorizationapi "github.com/openshift/origin/pkg/authorization/api" oclient "github.com/openshift/origin/pkg/client" @@ -170,7 +172,7 @@ func (q *restrictUsersAdmission) Admit(a admission.Attributes) (err error) { // TODO: Cache rolebinding restrictions. roleBindingRestrictionList, err := q.oclient.RoleBindingRestrictions(ns). - List(kapi.ListOptions{}) + List(metav1.ListOptions{}) if err != nil { return admission.NewForbidden(a, err) } diff --git a/pkg/authorization/admission/restrictusers/restrictusers_test.go b/pkg/authorization/admission/restrictusers/restrictusers_test.go index 513a9469784a..5e25f5b9112e 100644 --- a/pkg/authorization/admission/restrictusers/restrictusers_test.go +++ b/pkg/authorization/admission/restrictusers/restrictusers_test.go @@ -5,13 +5,14 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - //kcache "k8s.io/kubernetes/pkg/client/cache" + //kcache "k8s.io/client-go/tools/cache" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" authorizationapi "github.com/openshift/origin/pkg/authorization/api" otestclient "github.com/openshift/origin/pkg/client/testclient" @@ -24,7 +25,7 @@ import ( func TestAdmission(t *testing.T) { var ( userAlice = userapi.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "Alice", Labels: map[string]string{"foo": "bar"}, }, @@ -35,7 +36,7 @@ func TestAdmission(t *testing.T) { } userBob = userapi.User{ - ObjectMeta: kapi.ObjectMeta{Name: "Bob"}, + ObjectMeta: metav1.ObjectMeta{Name: "Bob"}, Groups: []string{"group"}, } userBobRef = kapi.ObjectReference{ @@ -44,7 +45,7 @@ func TestAdmission(t *testing.T) { } group = userapi.Group{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "group", Labels: map[string]string{"baz": "quux"}, }, @@ -56,7 +57,7 @@ func TestAdmission(t *testing.T) { } serviceaccount = kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "serviceaccount", Labels: map[string]string{"xyzzy": "thud"}, @@ -84,8 +85,8 @@ func TestAdmission(t *testing.T) { object runtime.Object oldObject runtime.Object - kind unversioned.GroupVersionKind - resource unversioned.GroupVersionResource + kind schema.GroupVersionKind + resource schema.GroupVersionResource namespace string subresource string objects []runtime.Object @@ -93,14 +94,14 @@ func TestAdmission(t *testing.T) { { name: "ignore (allow) if subresource is nonempty", object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, Subjects: []kapi.ObjectReference{userAliceRef}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -112,7 +113,7 @@ func TestAdmission(t *testing.T) { subresource: "subresource", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, @@ -121,7 +122,7 @@ func TestAdmission(t *testing.T) { { name: "ignore (allow) cluster-scoped rolebinding", object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -129,7 +130,7 @@ func TestAdmission(t *testing.T) { RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -141,7 +142,7 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, @@ -150,7 +151,7 @@ func TestAdmission(t *testing.T) { { name: "allow if the namespace has no rolebinding restrictions", object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -165,7 +166,7 @@ func TestAdmission(t *testing.T) { RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -178,7 +179,7 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, @@ -187,7 +188,7 @@ func TestAdmission(t *testing.T) { { name: "allow if any rolebinding with the subject already exists", object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -199,7 +200,7 @@ func TestAdmission(t *testing.T) { RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -216,12 +217,12 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "bogus-matcher", Namespace: "namespace", }, @@ -234,7 +235,7 @@ func TestAdmission(t *testing.T) { { name: "allow a system user, system group, user, group, or service account in a rolebinding if a literal matches", object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -248,7 +249,7 @@ func TestAdmission(t *testing.T) { RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -261,12 +262,12 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-system-users", Namespace: "namespace", }, @@ -277,7 +278,7 @@ func TestAdmission(t *testing.T) { }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-system-groups", Namespace: "namespace", }, @@ -288,7 +289,7 @@ func TestAdmission(t *testing.T) { }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users", Namespace: "namespace", }, @@ -299,7 +300,7 @@ func TestAdmission(t *testing.T) { }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-groups", Namespace: "namespace", }, @@ -310,7 +311,7 @@ func TestAdmission(t *testing.T) { }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-serviceaccounts", Namespace: "namespace", }, @@ -332,7 +333,7 @@ func TestAdmission(t *testing.T) { expectedErr: fmt.Sprintf("rolebindings to %s %q are not allowed", userAliceRef.Kind, userAliceRef.Name), object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -342,7 +343,7 @@ func TestAdmission(t *testing.T) { RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, oldObject: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -355,14 +356,14 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, &userAlice, &userBob, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-bob", Namespace: "namespace", }, @@ -377,13 +378,13 @@ func TestAdmission(t *testing.T) { { name: "allow users in a policybinding if a selector matches", object: &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "policybinding", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "rolebinding": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -401,13 +402,13 @@ func TestAdmission(t *testing.T) { }, }, oldObject: &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "policybinding", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "rolebinding": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -427,19 +428,19 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, &authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: authorizationapi.PolicyName, }, Roles: map[string]*authorizationapi.Role{ "any": { - ObjectMeta: kapi.ObjectMeta{ - Namespace: kapi.NamespaceDefault, + ObjectMeta: metav1.ObjectMeta{ + Namespace: metav1.NamespaceDefault, Name: "any", }, }, @@ -448,20 +449,20 @@ func TestAdmission(t *testing.T) { &userAlice, &userBob, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-alice", Namespace: "namespace", }, Spec: authorizationapi.RoleBindingRestrictionSpec{ UserRestriction: &authorizationapi.UserRestriction{ - Selectors: []unversioned.LabelSelector{ + Selectors: []metav1.LabelSelector{ {MatchLabels: map[string]string{"foo": "bar"}}, }, }, }, }, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-bob", Namespace: "namespace", }, @@ -478,13 +479,13 @@ func TestAdmission(t *testing.T) { expectedErr: fmt.Sprintf("rolebindings to %s %q are not allowed", userBobRef.Kind, userBobRef.Name), object: &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "policybinding", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "rolebinding": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -502,13 +503,13 @@ func TestAdmission(t *testing.T) { }, }, oldObject: &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "policybinding", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "rolebinding": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding", }, @@ -528,19 +529,19 @@ func TestAdmission(t *testing.T) { subresource: "", objects: []runtime.Object{ &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "namespace", }, }, &authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: authorizationapi.PolicyName, }, Roles: map[string]*authorizationapi.Role{ "any": { - ObjectMeta: kapi.ObjectMeta{ - Namespace: kapi.NamespaceDefault, + ObjectMeta: metav1.ObjectMeta{ + Namespace: metav1.NamespaceDefault, Name: "any", }, }, @@ -549,13 +550,13 @@ func TestAdmission(t *testing.T) { &userAlice, &userBob, &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-alice", Namespace: "namespace", }, Spec: authorizationapi.RoleBindingRestrictionSpec{ UserRestriction: &authorizationapi.UserRestriction{ - Selectors: []unversioned.LabelSelector{ + Selectors: []metav1.LabelSelector{ {MatchLabels: map[string]string{"foo": "bar"}}, }, }, diff --git a/pkg/authorization/admission/restrictusers/subjectchecker.go b/pkg/authorization/admission/restrictusers/subjectchecker.go index 23044e6f24f7..8f8ad2601ef2 100644 --- a/pkg/authorization/admission/restrictusers/subjectchecker.go +++ b/pkg/authorization/admission/restrictusers/subjectchecker.go @@ -5,10 +5,10 @@ import ( kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + kerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/labels" - kerrors "k8s.io/kubernetes/pkg/util/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" oclient "github.com/openshift/origin/pkg/client" @@ -94,7 +94,7 @@ func (ctx *RoleBindingRestrictionContext) labelSetForUser(subject kapi.ObjectRef return labelSet, nil } - user, err := ctx.oclient.Users().Get(subject.Name) + user, err := ctx.oclient.Users().Get(subject.Name, metav1.GetOptions{}) if err != nil { return labels.Set{}, err } @@ -132,7 +132,7 @@ func (ctx *RoleBindingRestrictionContext) labelSetForGroup(subject kapi.ObjectRe return labelSet, nil } - group, err := ctx.oclient.Groups().Get(subject.Name) + group, err := ctx.oclient.Groups().Get(subject.Name, metav1.GetOptions{}) if err != nil { return labels.Set{}, err } @@ -194,7 +194,7 @@ func (checker UserSubjectChecker) Allowed(subject kapi.ObjectReference, ctx *Rol } for _, labelSelector := range checker.userRestriction.Selectors { - selector, err := unversioned.LabelSelectorAsSelector(&labelSelector) + selector, err := metav1.LabelSelectorAsSelector(&labelSelector) if err != nil { return false, err } @@ -245,7 +245,7 @@ func (checker GroupSubjectChecker) Allowed(subject kapi.ObjectReference, ctx *Ro } for _, labelSelector := range checker.groupRestriction.Selectors { - selector, err := unversioned.LabelSelectorAsSelector(&labelSelector) + selector, err := metav1.LabelSelectorAsSelector(&labelSelector) if err != nil { return false, err } diff --git a/pkg/authorization/admission/restrictusers/subjectchecker_test.go b/pkg/authorization/admission/restrictusers/subjectchecker_test.go index 3e185b339a09..7af27ee61f0d 100644 --- a/pkg/authorization/admission/restrictusers/subjectchecker_test.go +++ b/pkg/authorization/admission/restrictusers/subjectchecker_test.go @@ -4,10 +4,10 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" authorizationapi "github.com/openshift/origin/pkg/authorization/api" otestclient "github.com/openshift/origin/pkg/client/testclient" @@ -52,7 +52,7 @@ func TestSubjectCheckers(t *testing.T) { Name: "system group", } group = userapi.Group{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "group", Labels: map[string]string{"baz": "quux"}, }, @@ -60,18 +60,18 @@ func TestSubjectCheckers(t *testing.T) { } objects = []runtime.Object{ &userapi.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "Alice", Labels: map[string]string{"foo": "bar"}, }, }, &userapi.User{ - ObjectMeta: kapi.ObjectMeta{Name: "Bob"}, + ObjectMeta: metav1.ObjectMeta{Name: "Bob"}, Groups: []string{"group"}, }, &group, &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "serviceaccount", Labels: map[string]string{"xyzzy": "thud"}, @@ -146,7 +146,7 @@ func TestSubjectCheckers(t *testing.T) { checker: mustNewSubjectChecker(t, &authorizationapi.RoleBindingRestrictionSpec{ UserRestriction: &authorizationapi.UserRestriction{ - Selectors: []unversioned.LabelSelector{ + Selectors: []metav1.LabelSelector{ {MatchLabels: map[string]string{"foo": "bar"}}, }, }, @@ -159,7 +159,7 @@ func TestSubjectCheckers(t *testing.T) { checker: mustNewSubjectChecker(t, &authorizationapi.RoleBindingRestrictionSpec{ UserRestriction: &authorizationapi.UserRestriction{ - Selectors: []unversioned.LabelSelector{ + Selectors: []metav1.LabelSelector{ {MatchLabels: map[string]string{"foo": "bar"}}, }, }, @@ -183,7 +183,7 @@ func TestSubjectCheckers(t *testing.T) { checker: mustNewSubjectChecker(t, &authorizationapi.RoleBindingRestrictionSpec{ GroupRestriction: &authorizationapi.GroupRestriction{ - Selectors: []unversioned.LabelSelector{ + Selectors: []metav1.LabelSelector{ {MatchLabels: map[string]string{"baz": "quux"}}, }, }, diff --git a/pkg/authorization/api/conversion.go b/pkg/authorization/api/conversion.go index d7746bd63c13..599b22e6f631 100644 --- a/pkg/authorization/api/conversion.go +++ b/pkg/authorization/api/conversion.go @@ -3,11 +3,11 @@ package api import ( "fmt" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/user/api/validation" ) @@ -87,8 +87,8 @@ func convert_api_Subjects_To_rbac_Subjects(in []api.ObjectReference) ([]rbac.Sub subjects := make([]rbac.Subject, 0, len(in)) for _, subject := range in { s := rbac.Subject{ - Name: subject.Name, - APIVersion: rbac.GroupName, + Name: subject.Name, + APIGroup: rbac.GroupName, } switch subject.Kind { diff --git a/pkg/authorization/api/conversion_test.go b/pkg/authorization/api/conversion_test.go index b79375f67137..7e45186c28b7 100644 --- a/pkg/authorization/api/conversion_test.go +++ b/pkg/authorization/api/conversion_test.go @@ -5,13 +5,13 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/rbac" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/rulevalidation" @@ -177,7 +177,7 @@ func TestConversionErrors(t *testing.T) { expected: `invalid origin role binding rolebindingname: attempts to reference role in namespace "ns1" instead of current namespace "ns0"`, f: func() error { return authorizationapi.Convert_api_RoleBinding_To_rbac_RoleBinding(&authorizationapi.RoleBinding{ - ObjectMeta: api.ObjectMeta{Name: "rolebindingname", Namespace: "ns0"}, + ObjectMeta: metav1.ObjectMeta{Name: "rolebindingname", Namespace: "ns0"}, RoleRef: api.ObjectReference{Namespace: "ns1"}, }, &rbac.RoleBinding{}, nil) }, @@ -238,8 +238,8 @@ func TestAttributeRestrictionsRuleLoss(t *testing.T) { } var fuzzer = fuzz.New().NilChance(0).Funcs( - func(*unversioned.TypeMeta, fuzz.Continue) {}, // Ignore TypeMeta - func(*runtime.Object, fuzz.Continue) {}, // Ignore AttributeRestrictions since they are deprecated + func(*metav1.TypeMeta, fuzz.Continue) {}, // Ignore TypeMeta + func(*runtime.Object, fuzz.Continue) {}, // Ignore AttributeRestrictions since they are deprecated func(ocrb *authorizationapi.ClusterRoleBinding, c fuzz.Continue) { c.FuzzNoCustom(ocrb) setRandomOriginRoleBindingData(ocrb.Subjects, &ocrb.RoleRef, "", c) @@ -269,7 +269,7 @@ var fuzzer = fuzz.New().NilChance(0).Funcs( func setRandomRBACRoleBindingData(subjects []rbac.Subject, roleRef *rbac.RoleRef, namespace string, c fuzz.Continue) { for i := range subjects { subject := &subjects[i] - subject.APIVersion = rbac.GroupName + subject.APIGroup = rbac.GroupName setValidRBACKindAndNamespace(subject, i, c) } roleRef.APIGroup = rbac.GroupName diff --git a/pkg/authorization/api/deprecated_fields.go b/pkg/authorization/api/deprecated_fields.go index 0acd5534fa9d..4593f4a31663 100644 --- a/pkg/authorization/api/deprecated_fields.go +++ b/pkg/authorization/api/deprecated_fields.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) // NEVER TOUCH ANYTHING IN THIS FILE! diff --git a/pkg/authorization/api/fields.go b/pkg/authorization/api/fields.go index 5f9739c656ae..c57716e056c5 100644 --- a/pkg/authorization/api/fields.go +++ b/pkg/authorization/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // ClusterPolicyToSelectableFields returns a label set that represents the object // changes to the returned keys require registering conversions for existing versions using Scheme.AddFieldLabelConversionFunc diff --git a/pkg/authorization/api/group_test.go b/pkg/authorization/api/group_test.go index 96b5d8b535e0..a3441405b3dc 100644 --- a/pkg/authorization/api/group_test.go +++ b/pkg/authorization/api/group_test.go @@ -3,7 +3,7 @@ package api import ( "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) func TestEscalating(t *testing.T) { diff --git a/pkg/authorization/api/helpers.go b/pkg/authorization/api/helpers.go index 0236475307dc..a9a8f696b050 100644 --- a/pkg/authorization/api/helpers.go +++ b/pkg/authorization/api/helpers.go @@ -6,11 +6,11 @@ import ( "strings" "unicode" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/sets" // uservalidation "github.com/openshift/origin/pkg/user/api/validation" ) diff --git a/pkg/authorization/api/install/apigroup.go b/pkg/authorization/api/install/apigroup.go index f320d85ee779..6a339163c740 100644 --- a/pkg/authorization/api/install/apigroup.go +++ b/pkg/authorization/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/v1" diff --git a/pkg/authorization/api/install/install.go b/pkg/authorization/api/install/install.go index 2ac2190ccb03..68b059ae8a94 100644 --- a/pkg/authorization/api/install/install.go +++ b/pkg/authorization/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/authorization/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -51,7 +50,7 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterRole", "ClusterRoleBinding", "ClusterPolicy", "ClusterPolicyBinding") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.GroupName) + g, _ := kapi.Registry.Group(api.GroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/authorization/api/register.go b/pkg/authorization/api/register.go index cb6b21549550..d83da05b8f2b 100644 --- a/pkg/authorization/api/register.go +++ b/pkg/authorization/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +13,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -24,23 +24,23 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } // LegacyResource takes an unqualified resource and returns back a Group qualified // GroupResource using legacy API -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -92,10 +92,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/authorization/api/types.go b/pkg/authorization/api/types.go index 0f86a24eca53..661d9c637e10 100644 --- a/pkg/authorization/api/types.go +++ b/pkg/authorization/api/types.go @@ -1,10 +1,10 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kruntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - kruntime "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" ) // Authorization is calculated against @@ -78,14 +78,14 @@ type PolicyRule struct { // IsPersonalSubjectAccessReview is a marker for PolicyRule.AttributeRestrictions that denotes that subjectaccessreviews on self should be allowed type IsPersonalSubjectAccessReview struct { - unversioned.TypeMeta + metav1.TypeMeta } // Role is a logical grouping of PolicyRules that can be referenced as a unit by RoleBindings. type Role struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Rules holds all the PolicyRules for this Role Rules []PolicyRule @@ -95,8 +95,8 @@ type Role struct { // It adds who information via Users and Groups and namespace information by which namespace it exists in. RoleBindings in a given // namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). type RoleBinding struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Subjects hold object references of to authorize with this rule Subjects []kapi.ObjectReference @@ -114,11 +114,11 @@ type RolesByName map[string]*Role // Policy is a object that holds all the Roles for a particular namespace. There is at most // one Policy document per namespace. type Policy struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // LastModified is the last time that any part of the Policy was created, updated, or deleted - LastModified unversioned.Time + LastModified metav1.Time // Roles holds all the Roles held by this Policy, mapped by Role.Name Roles RolesByName @@ -129,12 +129,12 @@ type RoleBindingsByName map[string]*RoleBinding // PolicyBinding is a object that holds all the RoleBindings for a particular namespace. There is // one PolicyBinding document per referenced Policy namespace type PolicyBinding struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // LastModified is the last time that any part of the PolicyBinding was created, updated, or deleted - LastModified unversioned.Time + LastModified metav1.Time // PolicyRef is a reference to the Policy that contains all the Roles that this PolicyBinding's RoleBindings may reference PolicyRef kapi.ObjectReference @@ -144,7 +144,7 @@ type PolicyBinding struct { // SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace type SelfSubjectRulesReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Spec adds information about how to conduct the check Spec SelfSubjectRulesReviewSpec @@ -163,7 +163,7 @@ type SelfSubjectRulesReviewSpec struct { // SubjectRulesReview is a resource you can create to determine which actions another user can perform in a namespace type SubjectRulesReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Spec adds information about how to conduct the check Spec SubjectRulesReviewSpec @@ -193,7 +193,7 @@ type SubjectRulesReviewStatus struct { // ResourceAccessReviewResponse describes who can perform the action type ResourceAccessReviewResponse struct { - unversioned.TypeMeta + metav1.TypeMeta // Namespace is the namespace used for the access review Namespace string @@ -213,7 +213,7 @@ type ResourceAccessReviewResponse struct { // ResourceAccessReview is a means to request a list of which users and groups are authorized to perform the // action specified by spec type ResourceAccessReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Action describes the action being tested Action @@ -221,7 +221,7 @@ type ResourceAccessReview struct { // SubjectAccessReviewResponse describes whether or not a user or group can perform an action type SubjectAccessReviewResponse struct { - unversioned.TypeMeta + metav1.TypeMeta // Namespace is the namespace used for the access review Namespace string @@ -237,7 +237,7 @@ type SubjectAccessReviewResponse struct { // SubjectAccessReview is an object for requesting information about whether a user or group can perform an action type SubjectAccessReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Action describes the action being tested Action @@ -254,7 +254,7 @@ type SubjectAccessReview struct { // LocalResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec in a particular namespace type LocalResourceAccessReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Action describes the action being tested Action @@ -262,7 +262,7 @@ type LocalResourceAccessReview struct { // LocalSubjectAccessReview is an object for requesting information about whether a user or group can perform an action in a particular namespace type LocalSubjectAccessReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Action describes the action being tested. The Namespace element is FORCED to the current namespace. Action @@ -301,9 +301,9 @@ type Action struct { // PolicyList is a collection of Policies type PolicyList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of policies Items []Policy @@ -311,9 +311,9 @@ type PolicyList struct { // PolicyBindingList is a collection of PolicyBindings type PolicyBindingList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of policyBindings Items []PolicyBinding @@ -321,9 +321,9 @@ type PolicyBindingList struct { // RoleBindingList is a collection of RoleBindings type RoleBindingList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of roleBindings Items []RoleBinding @@ -331,9 +331,9 @@ type RoleBindingList struct { // RoleList is a collection of Roles type RoleList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of roles Items []Role @@ -341,9 +341,9 @@ type RoleList struct { // ClusterRole is a logical grouping of PolicyRules that can be referenced as a unit by ClusterRoleBindings. type ClusterRole struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule @@ -353,9 +353,9 @@ type ClusterRole struct { // It adds who information via Users and Groups and namespace information by which namespace it exists in. ClusterRoleBindings in a given // namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). type ClusterRoleBinding struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Subjects hold object references of to authorize with this rule Subjects []kapi.ObjectReference @@ -371,12 +371,12 @@ type ClusterRolesByName map[string]*ClusterRole // ClusterPolicy is a object that holds all the ClusterRoles for a particular namespace. There is at most // one ClusterPolicy document per namespace. type ClusterPolicy struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // LastModified is the last time that any part of the ClusterPolicy was created, updated, or deleted - LastModified unversioned.Time + LastModified metav1.Time // Roles holds all the ClusterRoles held by this ClusterPolicy, mapped by Role.Name Roles ClusterRolesByName @@ -387,12 +387,12 @@ type ClusterRoleBindingsByName map[string]*ClusterRoleBinding // ClusterPolicyBinding is a object that holds all the ClusterRoleBindings for a particular namespace. There is // one ClusterPolicyBinding document per referenced ClusterPolicy namespace type ClusterPolicyBinding struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // LastModified is the last time that any part of the ClusterPolicyBinding was created, updated, or deleted - LastModified unversioned.Time + LastModified metav1.Time // ClusterPolicyRef is a reference to the ClusterPolicy that contains all the ClusterRoles that this ClusterPolicyBinding's RoleBindings may reference PolicyRef kapi.ObjectReference @@ -402,9 +402,9 @@ type ClusterPolicyBinding struct { // ClusterPolicyList is a collection of ClusterPolicies type ClusterPolicyList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of ClusterPolicies Items []ClusterPolicy @@ -412,9 +412,9 @@ type ClusterPolicyList struct { // ClusterPolicyBindingList is a collection of ClusterPolicyBindings type ClusterPolicyBindingList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of ClusterPolicyBindings Items []ClusterPolicyBinding @@ -422,9 +422,9 @@ type ClusterPolicyBindingList struct { // ClusterRoleBindingList is a collection of ClusterRoleBindings type ClusterRoleBindingList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of ClusterRoleBindings Items []ClusterRoleBinding @@ -432,9 +432,9 @@ type ClusterRoleBindingList struct { // ClusterRoleList is a collection of ClusterRoles type ClusterRoleList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of ClusterRoles Items []ClusterRole @@ -446,10 +446,10 @@ type ClusterRoleList struct { // belongs. If any one of those RoleBindingRestriction objects matches // a subject, rolebindings on that subject in the namespace are allowed. type RoleBindingRestriction struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Spec defines the matcher. Spec RoleBindingRestrictionSpec @@ -470,10 +470,10 @@ type RoleBindingRestrictionSpec struct { // RoleBindingRestrictionList is a collection of RoleBindingRestriction objects. type RoleBindingRestrictionList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of RoleBindingRestriction objects. Items []RoleBindingRestriction @@ -492,7 +492,7 @@ type UserRestriction struct { Groups []string // Selectors specifies a list of label selectors over user labels. - Selectors []unversioned.LabelSelector + Selectors []metav1.LabelSelector } // GroupRestriction matches a group either by a string match on the group name @@ -502,7 +502,7 @@ type GroupRestriction struct { Groups []string // Selectors specifies a list of label selectors over group labels. - Selectors []unversioned.LabelSelector + Selectors []metav1.LabelSelector } // ServiceAccountRestriction matches a service account by a string match on diff --git a/pkg/authorization/api/v1/conversion.go b/pkg/authorization/api/v1/conversion.go index e8828d2b6c1f..4786b6721095 100644 --- a/pkg/authorization/api/v1/conversion.go +++ b/pkg/authorization/api/v1/conversion.go @@ -3,9 +3,9 @@ package v1 import ( "sort" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/api/extension" diff --git a/pkg/authorization/api/v1/defaults.go b/pkg/authorization/api/v1/defaults.go index 5e79435c516f..8414dd2908f4 100644 --- a/pkg/authorization/api/v1/defaults.go +++ b/pkg/authorization/api/v1/defaults.go @@ -1,8 +1,8 @@ package v1 import ( + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" internal "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/api/v1/register.go b/pkg/authorization/api/v1/register.go index 13e95afa5633..05995a7fc876 100644 --- a/pkg/authorization/api/v1/register.go +++ b/pkg/authorization/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +13,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -59,10 +59,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/authorization/api/v1/types.go b/pkg/authorization/api/v1/types.go index 3b205abcdaeb..b1fe53b684ef 100644 --- a/pkg/authorization/api/v1/types.go +++ b/pkg/authorization/api/v1/types.go @@ -3,9 +3,9 @@ package v1 import ( "fmt" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kruntime "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api/v1" - kruntime "k8s.io/kubernetes/pkg/runtime" ) // Authorization is calculated against @@ -38,14 +38,14 @@ type PolicyRule struct { // IsPersonalSubjectAccessReview is a marker for PolicyRule.AttributeRestrictions that denotes that subjectaccessreviews on self should be allowed type IsPersonalSubjectAccessReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` } // Role is a logical grouping of PolicyRules that can be referenced as a unit by RoleBindings. type Role struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Rules holds all the PolicyRules for this Role Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` @@ -64,9 +64,9 @@ func (t OptionalNames) String() string { // It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. // RoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). type RoleBinding struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // UserNames holds all the usernames directly bound to the role. // This field should only be specified when supporting legacy clients and servers. @@ -98,12 +98,12 @@ type NamedRoles []NamedRole // Policy is a object that holds all the Roles for a particular namespace. There is at most // one Policy document per namespace. type Policy struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // LastModified is the last time that any part of the Policy was created, updated, or deleted - LastModified unversioned.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` + LastModified metav1.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` // Roles holds all the Roles held by this Policy, mapped by Role.Name Roles NamedRoles `json:"roles" protobuf:"bytes,3,rep,name=roles"` @@ -114,12 +114,12 @@ type NamedRoleBindings []NamedRoleBinding // PolicyBinding is a object that holds all the RoleBindings for a particular namespace. There is // one PolicyBinding document per referenced Policy namespace type PolicyBinding struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // LastModified is the last time that any part of the PolicyBinding was created, updated, or deleted - LastModified unversioned.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` + LastModified metav1.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` // PolicyRef is a reference to the Policy that contains all the Roles that this PolicyBinding's RoleBindings may reference PolicyRef kapi.ObjectReference `json:"policyRef" protobuf:"bytes,3,opt,name=policyRef"` @@ -145,7 +145,7 @@ type NamedRoleBinding struct { // SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace type SelfSubjectRulesReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Spec adds information about how to conduct the check Spec SelfSubjectRulesReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` @@ -163,7 +163,7 @@ type SelfSubjectRulesReviewSpec struct { // SubjectRulesReview is a resource you can create to determine which actions another user can perform in a namespace type SubjectRulesReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Spec adds information about how to conduct the check Spec SubjectRulesReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` @@ -193,7 +193,7 @@ type SubjectRulesReviewStatus struct { // ResourceAccessReviewResponse describes who can perform the action type ResourceAccessReviewResponse struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Namespace is the namespace used for the access review Namespace string `json:"namespace,omitempty" protobuf:"bytes,1,opt,name=namespace"` @@ -213,7 +213,7 @@ type ResourceAccessReviewResponse struct { // ResourceAccessReview is a means to request a list of which users and groups are authorized to perform the // action specified by spec type ResourceAccessReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Action describes the action being tested. Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` @@ -221,7 +221,7 @@ type ResourceAccessReview struct { // SubjectAccessReviewResponse describes whether or not a user or group can perform an action type SubjectAccessReviewResponse struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Namespace is the namespace used for the access review Namespace string `json:"namespace,omitempty" protobuf:"bytes,1,opt,name=namespace"` @@ -246,7 +246,7 @@ func (t OptionalScopes) String() string { // SubjectAccessReview is an object for requesting information about whether a user or group can perform an action type SubjectAccessReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Action describes the action being tested. Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` @@ -263,7 +263,7 @@ type SubjectAccessReview struct { // LocalResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec in a particular namespace type LocalResourceAccessReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Action describes the action being tested. The Namespace element is FORCED to the current namespace. Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` @@ -271,7 +271,7 @@ type LocalResourceAccessReview struct { // LocalSubjectAccessReview is an object for requesting information about whether a user or group can perform an action in a particular namespace type LocalSubjectAccessReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Action describes the action being tested. The Namespace element is FORCED to the current namespace. Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` @@ -312,9 +312,9 @@ type Action struct { // PolicyList is a collection of Policies type PolicyList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of Policies Items []Policy `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -322,9 +322,9 @@ type PolicyList struct { // PolicyBindingList is a collection of PolicyBindings type PolicyBindingList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of PolicyBindings Items []PolicyBinding `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -332,9 +332,9 @@ type PolicyBindingList struct { // RoleBindingList is a collection of RoleBindings type RoleBindingList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of RoleBindings Items []RoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -342,9 +342,9 @@ type RoleBindingList struct { // RoleList is a collection of Roles type RoleList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of Roles Items []Role `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -352,9 +352,9 @@ type RoleList struct { // ClusterRole is a logical grouping of PolicyRules that can be referenced as a unit by ClusterRoleBindings. type ClusterRole struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` @@ -364,9 +364,9 @@ type ClusterRole struct { // It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. // ClusterRoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). type ClusterRoleBinding struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // UserNames holds all the usernames directly bound to the role. // This field should only be specified when supporting legacy clients and servers. @@ -396,12 +396,12 @@ type NamedClusterRoles []NamedClusterRole // ClusterPolicy is a object that holds all the ClusterRoles for a particular namespace. There is at most // one ClusterPolicy document per namespace. type ClusterPolicy struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // LastModified is the last time that any part of the ClusterPolicy was created, updated, or deleted - LastModified unversioned.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` + LastModified metav1.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` // Roles holds all the ClusterRoles held by this ClusterPolicy, mapped by ClusterRole.Name Roles NamedClusterRoles `json:"roles" protobuf:"bytes,3,rep,name=roles"` @@ -412,12 +412,12 @@ type NamedClusterRoleBindings []NamedClusterRoleBinding // ClusterPolicyBinding is a object that holds all the ClusterRoleBindings for a particular namespace. There is // one ClusterPolicyBinding document per referenced ClusterPolicy namespace type ClusterPolicyBinding struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // LastModified is the last time that any part of the ClusterPolicyBinding was created, updated, or deleted - LastModified unversioned.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` + LastModified metav1.Time `json:"lastModified" protobuf:"bytes,2,opt,name=lastModified"` // PolicyRef is a reference to the ClusterPolicy that contains all the ClusterRoles that this ClusterPolicyBinding's RoleBindings may reference PolicyRef kapi.ObjectReference `json:"policyRef" protobuf:"bytes,3,opt,name=policyRef"` @@ -443,9 +443,9 @@ type NamedClusterRoleBinding struct { // ClusterPolicyList is a collection of ClusterPolicies type ClusterPolicyList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ClusterPolicies Items []ClusterPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -453,9 +453,9 @@ type ClusterPolicyList struct { // ClusterPolicyBindingList is a collection of ClusterPolicyBindings type ClusterPolicyBindingList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ClusterPolicyBindings Items []ClusterPolicyBinding `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -463,9 +463,9 @@ type ClusterPolicyBindingList struct { // ClusterRoleBindingList is a collection of ClusterRoleBindings type ClusterRoleBindingList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ClusterRoleBindings Items []ClusterRoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -473,9 +473,9 @@ type ClusterRoleBindingList struct { // ClusterRoleList is a collection of ClusterRoles type ClusterRoleList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ClusterRoles Items []ClusterRole `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -487,10 +487,10 @@ type ClusterRoleList struct { // belongs. If any one of those RoleBindingRestriction objects matches // a subject, rolebindings on that subject in the namespace are allowed. type RoleBindingRestriction struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the matcher. Spec RoleBindingRestrictionSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -511,10 +511,10 @@ type RoleBindingRestrictionSpec struct { // RoleBindingRestrictionList is a collection of RoleBindingRestriction objects. type RoleBindingRestrictionList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of RoleBindingRestriction objects. Items []RoleBindingRestriction `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -531,7 +531,7 @@ type UserRestriction struct { Groups []string `json:"groups" protobuf:"bytes,2,rep,name=groups"` // Selectors specifies a list of label selectors over user labels. - Selectors []unversioned.LabelSelector `json:"labels" protobuf:"bytes,3,rep,name=labels"` + Selectors []metav1.LabelSelector `json:"labels" protobuf:"bytes,3,rep,name=labels"` } // GroupRestriction matches a group either by a string match on the group name @@ -543,7 +543,7 @@ type GroupRestriction struct { Groups []string `json:"groups" protobuf:"bytes,1,rep,name=groups"` // Selectors specifies a list of label selectors over group labels. - Selectors []unversioned.LabelSelector `json:"labels" protobuf:"bytes,2,rep,name=labels"` + Selectors []metav1.LabelSelector `json:"labels" protobuf:"bytes,2,rep,name=labels"` } // ServiceAccountRestriction matches a service account by a string match on diff --git a/pkg/authorization/api/v1/zz_generated.conversion.go b/pkg/authorization/api/v1/zz_generated.conversion.go index f7e7a733ba08..8a1ac4159641 100644 --- a/pkg/authorization/api/v1/zz_generated.conversion.go +++ b/pkg/authorization/api/v1/zz_generated.conversion.go @@ -5,13 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/authorization/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { @@ -445,7 +445,7 @@ func Convert_api_ClusterRoleList_To_v1_ClusterRoleList(in *api.ClusterRoleList, func autoConvert_v1_GroupRestriction_To_api_GroupRestriction(in *GroupRestriction, out *api.GroupRestriction, s conversion.Scope) error { out.Groups = *(*[]string)(unsafe.Pointer(&in.Groups)) - out.Selectors = *(*[]unversioned.LabelSelector)(unsafe.Pointer(&in.Selectors)) + out.Selectors = *(*[]metav1.LabelSelector)(unsafe.Pointer(&in.Selectors)) return nil } @@ -455,7 +455,7 @@ func Convert_v1_GroupRestriction_To_api_GroupRestriction(in *GroupRestriction, o func autoConvert_api_GroupRestriction_To_v1_GroupRestriction(in *api.GroupRestriction, out *GroupRestriction, s conversion.Scope) error { out.Groups = *(*[]string)(unsafe.Pointer(&in.Groups)) - out.Selectors = *(*[]unversioned.LabelSelector)(unsafe.Pointer(&in.Selectors)) + out.Selectors = *(*[]metav1.LabelSelector)(unsafe.Pointer(&in.Selectors)) return nil } @@ -1202,7 +1202,7 @@ func Convert_api_SubjectRulesReviewStatus_To_v1_SubjectRulesReviewStatus(in *api func autoConvert_v1_UserRestriction_To_api_UserRestriction(in *UserRestriction, out *api.UserRestriction, s conversion.Scope) error { out.Users = *(*[]string)(unsafe.Pointer(&in.Users)) out.Groups = *(*[]string)(unsafe.Pointer(&in.Groups)) - out.Selectors = *(*[]unversioned.LabelSelector)(unsafe.Pointer(&in.Selectors)) + out.Selectors = *(*[]metav1.LabelSelector)(unsafe.Pointer(&in.Selectors)) return nil } @@ -1213,7 +1213,7 @@ func Convert_v1_UserRestriction_To_api_UserRestriction(in *UserRestriction, out func autoConvert_api_UserRestriction_To_v1_UserRestriction(in *api.UserRestriction, out *UserRestriction, s conversion.Scope) error { out.Users = *(*[]string)(unsafe.Pointer(&in.Users)) out.Groups = *(*[]string)(unsafe.Pointer(&in.Groups)) - out.Selectors = *(*[]unversioned.LabelSelector)(unsafe.Pointer(&in.Selectors)) + out.Selectors = *(*[]metav1.LabelSelector)(unsafe.Pointer(&in.Selectors)) return nil } diff --git a/pkg/authorization/api/v1/zz_generated.deepcopy.go b/pkg/authorization/api/v1/zz_generated.deepcopy.go index a2a171bdad12..de3ff1b65fba 100644 --- a/pkg/authorization/api/v1/zz_generated.deepcopy.go +++ b/pkg/authorization/api/v1/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -288,9 +288,9 @@ func DeepCopy_v1_GroupRestriction(in interface{}, out interface{}, c *conversion } if in.Selectors != nil { in, out := &in.Selectors, &out.Selectors - *out = make([]unversioned.LabelSelector, len(*in)) + *out = make([]metav1.LabelSelector, len(*in)) for i := range *in { - if err := unversioned.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { + if err := metav1.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { return err } } @@ -925,9 +925,9 @@ func DeepCopy_v1_UserRestriction(in interface{}, out interface{}, c *conversion. } if in.Selectors != nil { in, out := &in.Selectors, &out.Selectors - *out = make([]unversioned.LabelSelector, len(*in)) + *out = make([]metav1.LabelSelector, len(*in)) for i := range *in { - if err := unversioned.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { + if err := metav1.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { return err } } diff --git a/pkg/authorization/api/v1/zz_generated.defaults.go b/pkg/authorization/api/v1/zz_generated.defaults.go index f79c4eef2d80..ffc9ace00e0d 100644 --- a/pkg/authorization/api/v1/zz_generated.defaults.go +++ b/pkg/authorization/api/v1/zz_generated.defaults.go @@ -5,7 +5,7 @@ package v1 import ( - runtime "k8s.io/kubernetes/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/authorization/api/validation/validation.go b/pkg/authorization/api/validation/validation.go index 71819fa04d72..3554c9fdd141 100644 --- a/pkg/authorization/api/validation/validation.go +++ b/pkg/authorization/api/validation/validation.go @@ -4,12 +4,12 @@ import ( "fmt" "strings" + "k8s.io/apimachinery/pkg/api/validation/path" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - kvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" uservalidation "github.com/openshift/origin/pkg/user/api/validation" diff --git a/pkg/authorization/api/validation/validation_test.go b/pkg/authorization/api/validation/validation_test.go index b2d8583e6d88..bd5353b45474 100644 --- a/pkg/authorization/api/validation/validation_test.go +++ b/pkg/authorization/api/validation/validation_test.go @@ -3,8 +3,9 @@ package validation import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,7 +13,7 @@ import ( func TestValidatePolicy(t *testing.T) { errs := ValidatePolicy( &authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.PolicyName}, }, true, ) @@ -27,31 +28,31 @@ func TestValidatePolicy(t *testing.T) { }{ "zero-length namespace": { A: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName}, }, T: field.ErrorTypeRequired, F: "metadata.namespace", }, "zero-length name": { A: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}, }, T: field.ErrorTypeRequired, F: "metadata.name", }, "invalid name": { A: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "name"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "name"}, }, T: field.ErrorTypeInvalid, F: "metadata.name", }, "mismatched name": { A: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "any"}, }, }, }, @@ -60,10 +61,10 @@ func TestValidatePolicy(t *testing.T) { }, "has role with attributeRestrictions": { A: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -98,17 +99,17 @@ func TestValidatePolicyUpdate(t *testing.T) { }{ "no new attribute restrictions": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, {}, }, }, "any2": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any2"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any2"}, Rules: []authorizationapi.PolicyRule{ {}, }, @@ -116,10 +117,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -129,10 +130,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, "new attribute restrictions of the same type": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, {AttributeRestrictions: &authorizationapi.RoleBinding{}}, @@ -141,10 +142,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -154,10 +155,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, "less attribute restrictions": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -165,10 +166,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -193,10 +194,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }{ "new attribute restrictions": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -204,10 +205,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, }, @@ -219,10 +220,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, "attribute restrictions of a different type": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, {}, @@ -233,10 +234,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.RoleBinding{}}, }, @@ -248,10 +249,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, "similiar attribute restrictions": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, {}, @@ -261,10 +262,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, {}, @@ -278,17 +279,17 @@ func TestValidatePolicyUpdate(t *testing.T) { }, "new role with attribute restriction rules like another role's": { newO: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, }, }, "any2": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any2"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any2"}, Rules: []authorizationapi.PolicyRule{ {}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -297,10 +298,10 @@ func TestValidatePolicyUpdate(t *testing.T) { }, }, old: authorizationapi.Policy{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.Role{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any1"}, Rules: []authorizationapi.PolicyRule{ {}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -332,7 +333,7 @@ func TestValidatePolicyUpdate(t *testing.T) { func TestValidatePolicyBinding(t *testing.T) { errs := ValidatePolicyBinding( &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName("master")}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName("master")}, PolicyRef: kapi.ObjectReference{Namespace: "master"}, }, true, @@ -348,7 +349,7 @@ func TestValidatePolicyBinding(t *testing.T) { }{ "zero-length namespace": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, PolicyRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, T: field.ErrorTypeRequired, @@ -356,7 +357,7 @@ func TestValidatePolicyBinding(t *testing.T) { }, "zero-length name": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}, PolicyRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, T: field.ErrorTypeRequired, @@ -364,7 +365,7 @@ func TestValidatePolicyBinding(t *testing.T) { }, "invalid name": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "name"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "name"}, PolicyRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, T: field.ErrorTypeInvalid, @@ -372,11 +373,11 @@ func TestValidatePolicyBinding(t *testing.T) { }, "bad role": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, PolicyRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, RoleBindings: map[string]*authorizationapi.RoleBinding{ "any": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "any"}, RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, }, @@ -386,11 +387,11 @@ func TestValidatePolicyBinding(t *testing.T) { }, "mismatched name": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.GetPolicyBindingName(authorizationapi.PolicyName)}, PolicyRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, RoleBindings: map[string]*authorizationapi.RoleBinding{ "any1": { - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "any"}, RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName, Name: "valid"}, }, }, @@ -419,7 +420,7 @@ func TestValidatePolicyBinding(t *testing.T) { func TestValidateRoleBinding(t *testing.T) { errs := ValidateRoleBinding( &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{ {Name: "validsaname", Kind: authorizationapi.ServiceAccountKind}, @@ -442,7 +443,7 @@ func TestValidateRoleBinding(t *testing.T) { }{ "zero-length namespace": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, }, T: field.ErrorTypeRequired, @@ -450,7 +451,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "zero-length name": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, }, T: field.ErrorTypeRequired, @@ -458,7 +459,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "invalid ref": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "name"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "name"}, RoleRef: kapi.ObjectReference{Namespace: "-192083", Name: "valid"}, }, T: field.ErrorTypeInvalid, @@ -466,7 +467,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "bad role": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: authorizationapi.PolicyName}, RoleRef: kapi.ObjectReference{Namespace: authorizationapi.PolicyName}, }, T: field.ErrorTypeRequired, @@ -474,7 +475,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "bad subject kind": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Name: "subject"}}, }, @@ -483,7 +484,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "bad subject name": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Name: "subject:bad", Kind: authorizationapi.ServiceAccountKind}}, }, @@ -492,7 +493,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "bad system user name": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Name: "user", Kind: authorizationapi.SystemUserKind}}, }, @@ -501,7 +502,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "bad system group name": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Name: "valid", Kind: authorizationapi.SystemGroupKind}}, }, @@ -510,7 +511,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "forbidden fields": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Name: "subject", Kind: authorizationapi.ServiceAccountKind, APIVersion: "foo"}}, }, @@ -519,7 +520,7 @@ func TestValidateRoleBinding(t *testing.T) { }, "missing subject name": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, Subjects: []kapi.ObjectReference{{Kind: authorizationapi.ServiceAccountKind}}, }, @@ -546,13 +547,13 @@ func TestValidateRoleBinding(t *testing.T) { func TestValidateRoleBindingUpdate(t *testing.T) { old := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master", ResourceVersion: "1"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, } errs := ValidateRoleBindingUpdate( &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master", ResourceVersion: "1"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "valid"}, }, old, @@ -569,7 +570,7 @@ func TestValidateRoleBindingUpdate(t *testing.T) { }{ "changedRef": { A: authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master", ResourceVersion: "1"}, RoleRef: kapi.ObjectReference{Namespace: "master", Name: "changed"}, }, T: field.ErrorTypeInvalid, @@ -596,7 +597,7 @@ func TestValidateRoleBindingUpdate(t *testing.T) { func TestValidateRole(t *testing.T) { errs := ValidateRole( &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "master"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "master"}, }, true, ) @@ -611,21 +612,21 @@ func TestValidateRole(t *testing.T) { }{ "zero-length namespace": { A: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName}, }, T: field.ErrorTypeRequired, F: "metadata.namespace", }, "zero-length name": { A: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}, }, T: field.ErrorTypeRequired, F: "metadata.name", }, "invalid rule": { A: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName, Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName, Namespace: kapi.NamespaceDefault}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, }, @@ -658,24 +659,24 @@ func TestValidateRoleUpdate(t *testing.T) { }{ "no attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {}, }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, }, }, "same attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, }, @@ -697,7 +698,7 @@ func TestValidateRoleUpdate(t *testing.T) { }{ "more attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.Role{}}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -705,7 +706,7 @@ func TestValidateRoleUpdate(t *testing.T) { }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.Role{}}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -716,13 +717,13 @@ func TestValidateRoleUpdate(t *testing.T) { }, "added attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.Role{}}, }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Rules: []authorizationapi.PolicyRule{ {}, }, @@ -732,13 +733,13 @@ func TestValidateRoleUpdate(t *testing.T) { }, "same number of different attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.Role{}}, }, @@ -748,13 +749,13 @@ func TestValidateRoleUpdate(t *testing.T) { }, "less but different attribute restrictions": { newO: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName, ResourceVersion: "0"}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.ClusterPolicyBinding{}}, }, }, old: authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: authorizationapi.PolicyName}, Rules: []authorizationapi.PolicyRule{ {AttributeRestrictions: &authorizationapi.Role{}}, {AttributeRestrictions: &authorizationapi.IsPersonalSubjectAccessReview{}}, @@ -789,7 +790,7 @@ func TestValidateClusterPolicyBinding(t *testing.T) { }{ "external namespace ref": { A: authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.GetPolicyBindingName("master")}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.GetPolicyBindingName("master")}, PolicyRef: kapi.ObjectReference{Namespace: "master"}, }, T: field.ErrorTypeInvalid, diff --git a/pkg/authorization/api/zz_generated.deepcopy.go b/pkg/authorization/api/zz_generated.deepcopy.go index ecfd33c747a9..e88659fc1761 100644 --- a/pkg/authorization/api/zz_generated.deepcopy.go +++ b/pkg/authorization/api/zz_generated.deepcopy.go @@ -5,12 +5,12 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - sets "k8s.io/kubernetes/pkg/util/sets" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + sets "k8s.io/apimachinery/pkg/util/sets" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { @@ -280,9 +280,9 @@ func DeepCopy_api_GroupRestriction(in interface{}, out interface{}, c *conversio } if in.Selectors != nil { in, out := &in.Selectors, &out.Selectors - *out = make([]unversioned.LabelSelector, len(*in)) + *out = make([]metav1.LabelSelector, len(*in)) for i := range *in { - if err := unversioned.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { + if err := metav1.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { return err } } @@ -890,9 +890,9 @@ func DeepCopy_api_UserRestriction(in interface{}, out interface{}, c *conversion } if in.Selectors != nil { in, out := &in.Selectors, &out.Selectors - *out = make([]unversioned.LabelSelector, len(*in)) + *out = make([]metav1.LabelSelector, len(*in)) for i := range *in { - if err := unversioned.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { + if err := metav1.DeepCopy_unversioned_LabelSelector(&(*in)[i], &(*out)[i], c); err != nil { return err } } diff --git a/pkg/authorization/authorizer/attributes.go b/pkg/authorization/authorizer/attributes.go index 668995617946..b76c8ae839e4 100644 --- a/pkg/authorization/authorizer/attributes.go +++ b/pkg/authorization/authorizer/attributes.go @@ -3,9 +3,9 @@ package authorizer import ( "strings" - "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/authorizer/attributes_builder.go b/pkg/authorization/authorizer/attributes_builder.go index 5c888b3a5a72..5bf06a9c3e25 100644 --- a/pkg/authorization/authorizer/attributes_builder.go +++ b/pkg/authorization/authorizer/attributes_builder.go @@ -4,16 +4,16 @@ import ( "errors" "net/http" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/authorizer" + "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type openshiftAuthorizationAttributeBuilder struct { - contextMapper kapi.RequestContextMapper + contextMapper apirequest.RequestContextMapper infoFactory RequestInfoFactory } -func NewAuthorizationAttributeBuilder(contextMapper kapi.RequestContextMapper, infoFactory RequestInfoFactory) AuthorizationAttributeBuilder { +func NewAuthorizationAttributeBuilder(contextMapper apirequest.RequestContextMapper, infoFactory RequestInfoFactory) AuthorizationAttributeBuilder { return &openshiftAuthorizationAttributeBuilder{contextMapper, infoFactory} } @@ -24,7 +24,7 @@ func (a *openshiftAuthorizationAttributeBuilder) GetAttributes(req *http.Request return nil, errors.New("no context found for request") } - user, ok := kapi.UserFrom(ctx) + user, ok := apirequest.UserFrom(ctx) if !ok { return nil, errors.New("no user found on context") } diff --git a/pkg/authorization/authorizer/authorizer.go b/pkg/authorization/authorizer/authorizer.go index d55303029022..bdb1882dfd1f 100644 --- a/pkg/authorization/authorizer/authorizer.go +++ b/pkg/authorization/authorizer/authorizer.go @@ -3,9 +3,9 @@ package authorizer import ( "errors" - "k8s.io/kubernetes/pkg/auth/authorizer" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authorization/authorizer" "github.com/openshift/origin/pkg/authorization/rulevalidation" ) diff --git a/pkg/authorization/authorizer/authorizer_test.go b/pkg/authorization/authorizer/authorizer_test.go index 1278b43da7af..f67a50161e3f 100644 --- a/pkg/authorization/authorizer/authorizer_test.go +++ b/pkg/authorization/authorizer/authorizer_test.go @@ -6,11 +6,12 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" testpolicyregistry "github.com/openshift/origin/pkg/authorization/registry/test" @@ -93,7 +94,7 @@ func TestAPIGroupAllAllow(t *testing.T) { test.clusterBindings = newDefaultClusterPolicyBindings() test.bindings = append(test.bindings, newAdzeBindings()...) test.policies[0].Roles["by-group"] = &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "by-group", Namespace: "adze", }, @@ -104,7 +105,7 @@ func TestAPIGroupAllAllow(t *testing.T) { }, } test.bindings[0].RoleBindings["by-group"] = &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "by-group", }, RoleRef: kapi.ObjectReference{ @@ -134,7 +135,7 @@ func TestAPIAllAllow(t *testing.T) { test.clusterBindings = newDefaultClusterPolicyBindings() test.bindings = append(test.bindings, newAdzeBindings()...) test.policies[0].Roles["by-group"] = &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "by-group", Namespace: "adze", }, @@ -145,7 +146,7 @@ func TestAPIAllAllow(t *testing.T) { }, } test.bindings[0].RoleBindings["by-group"] = &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "by-group", }, RoleRef: kapi.ObjectReference{ @@ -268,7 +269,7 @@ func TestDeniedWithError(t *testing.T) { test.clusterBindings = newDefaultClusterPolicyBindings() test.bindings = append(test.bindings, newAdzeBindings()...) test.bindings[0].RoleBindings["missing"] = &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "missing", }, RoleRef: kapi.ObjectReference{ @@ -298,7 +299,7 @@ func TestAllowedWithMissingBinding(t *testing.T) { test.clusterBindings = newDefaultClusterPolicyBindings() test.bindings = append(test.bindings, newAdzeBindings()...) test.bindings[0].RoleBindings["missing"] = &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "missing", }, RoleRef: kapi.ObjectReference{ @@ -647,12 +648,12 @@ func newDefaultClusterPolicies() []authorizationapi.ClusterPolicy { } func newDefaultClusterPolicyBindings() []authorizationapi.ClusterPolicyBinding { policyBinding := authorizationapi.ClusterPolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.ClusterPolicyBindingName, }, RoleBindings: map[string]*authorizationapi.ClusterRoleBinding{ "extra-cluster-admins": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "cluster-admins", }, RoleRef: kapi.ObjectReference{ @@ -661,7 +662,7 @@ func newDefaultClusterPolicyBindings() []authorizationapi.ClusterPolicyBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.UserKind, Name: "ClusterAdmin"}, {Kind: authorizationapi.GroupKind, Name: "RootUsers"}, {Name: "default", Namespace: "foo", Kind: authorizationapi.ServiceAccountKind}}, }, "user-only": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "user-only", }, RoleRef: kapi.ObjectReference{ @@ -680,13 +681,13 @@ func newDefaultClusterPolicyBindings() []authorizationapi.ClusterPolicyBinding { func newAdzePolicies() []authorizationapi.Policy { return []authorizationapi.Policy{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.PolicyName, Namespace: "adze", }, Roles: map[string]*authorizationapi.Role{ "restrictedViewer": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "admin", Namespace: "adze", }, @@ -703,13 +704,13 @@ func newAdzePolicies() []authorizationapi.Policy { func newAdzeBindings() []authorizationapi.PolicyBinding { return []authorizationapi.PolicyBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.ClusterPolicyBindingName, Namespace: "adze", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "projectAdmins": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "projectAdmins", Namespace: "adze", }, @@ -719,7 +720,7 @@ func newAdzeBindings() []authorizationapi.PolicyBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.UserKind, Name: "Anna"}}, }, "viewers": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "viewers", Namespace: "adze", }, @@ -733,7 +734,7 @@ func newAdzeBindings() []authorizationapi.PolicyBinding { }, }, "editors": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "editors", Namespace: "adze", }, @@ -745,13 +746,13 @@ func newAdzeBindings() []authorizationapi.PolicyBinding { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.GetPolicyBindingName("adze"), Namespace: "adze", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "restrictedViewers": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "restrictedViewers", Namespace: "adze", }, diff --git a/pkg/authorization/authorizer/bootstrap_policy_test.go b/pkg/authorization/authorizer/bootstrap_policy_test.go index a011cb3f90fd..c32ea7ff328d 100644 --- a/pkg/authorization/authorizer/bootstrap_policy_test.go +++ b/pkg/authorization/authorizer/bootstrap_policy_test.go @@ -3,12 +3,12 @@ package authorizer import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/uuid" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/uuid" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -525,7 +525,7 @@ func TestAdminGetAllowedKindInAdze(t *testing.T) { func newMalletPolicies() []authorizationapi.Policy { return []authorizationapi.Policy{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.PolicyName, Namespace: "mallet", }, @@ -535,13 +535,13 @@ func newMalletPolicies() []authorizationapi.Policy { func newMalletBindings() []authorizationapi.PolicyBinding { return []authorizationapi.PolicyBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.ClusterPolicyBindingName, Namespace: "mallet", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "projectAdmins": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "projectAdmins", Namespace: "mallet", }, @@ -551,7 +551,7 @@ func newMalletBindings() []authorizationapi.PolicyBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.UserKind, Name: "Matthew"}}, }, "viewers": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "viewers", Namespace: "mallet", }, @@ -561,7 +561,7 @@ func newMalletBindings() []authorizationapi.PolicyBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.UserKind, Name: "Victor"}}, }, "editors": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "editors", Namespace: "mallet", }, @@ -577,13 +577,13 @@ func newMalletBindings() []authorizationapi.PolicyBinding { func newInvalidExtensionPolicies() []authorizationapi.Policy { return []authorizationapi.Policy{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.PolicyName, Namespace: "mallet", }, Roles: map[string]*authorizationapi.Role{ "badExtension": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "failure", Namespace: "mallet", }, @@ -607,13 +607,13 @@ func newInvalidExtensionPolicies() []authorizationapi.Policy { func newInvalidExtensionBindings() []authorizationapi.PolicyBinding { return []authorizationapi.PolicyBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "mallet", Namespace: "mallet", }, RoleBindings: map[string]*authorizationapi.RoleBinding{ "borked": { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "borked", Namespace: "mallet", }, @@ -630,12 +630,12 @@ func newInvalidExtensionBindings() []authorizationapi.PolicyBinding { func GetBootstrapPolicy() *authorizationapi.ClusterPolicy { policy := &authorizationapi.ClusterPolicy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: authorizationapi.PolicyName, - CreationTimestamp: unversioned.Now(), + CreationTimestamp: metav1.Now(), UID: uuid.NewUUID(), }, - LastModified: unversioned.Now(), + LastModified: metav1.Now(), Roles: make(map[string]*authorizationapi.ClusterRole), } @@ -649,12 +649,12 @@ func GetBootstrapPolicy() *authorizationapi.ClusterPolicy { func GetBootstrapPolicyBinding() *authorizationapi.ClusterPolicyBinding { policyBinding := &authorizationapi.ClusterPolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ":Default", - CreationTimestamp: unversioned.Now(), + CreationTimestamp: metav1.Now(), UID: uuid.NewUUID(), }, - LastModified: unversioned.Now(), + LastModified: metav1.Now(), RoleBindings: make(map[string]*authorizationapi.ClusterRoleBinding), } diff --git a/pkg/authorization/authorizer/browser_safe_request_info_resolver.go b/pkg/authorization/authorizer/browser_safe_request_info_resolver.go index 657b7e49e37f..a8add982ca3a 100644 --- a/pkg/authorization/authorizer/browser_safe_request_info_resolver.go +++ b/pkg/authorization/authorizer/browser_safe_request_info_resolver.go @@ -3,9 +3,8 @@ package authorizer import ( "net/http" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apiserver/request" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type browserSafeRequestInfoResolver struct { @@ -14,13 +13,13 @@ type browserSafeRequestInfoResolver struct { // contextMapper is used to look up the context corresponding to a request // to obtain the user associated with the request - contextMapper kapi.RequestContextMapper + contextMapper apirequest.RequestContextMapper // list of groups, any of which indicate the request is authenticated authenticatedGroups sets.String } -func NewBrowserSafeRequestInfoResolver(contextMapper kapi.RequestContextMapper, authenticatedGroups sets.String, infoFactory RequestInfoFactory) RequestInfoFactory { +func NewBrowserSafeRequestInfoResolver(contextMapper apirequest.RequestContextMapper, authenticatedGroups sets.String, infoFactory RequestInfoFactory) RequestInfoFactory { return &browserSafeRequestInfoResolver{ contextMapper: contextMapper, authenticatedGroups: authenticatedGroups, @@ -28,7 +27,7 @@ func NewBrowserSafeRequestInfoResolver(contextMapper kapi.RequestContextMapper, } } -func (a *browserSafeRequestInfoResolver) NewRequestInfo(req *http.Request) (*request.RequestInfo, error) { +func (a *browserSafeRequestInfoResolver) NewRequestInfo(req *http.Request) (*apirequest.RequestInfo, error) { requestInfo, err := a.infoFactory.NewRequestInfo(req) if err != nil { return requestInfo, err @@ -52,7 +51,7 @@ func (a *browserSafeRequestInfoResolver) NewRequestInfo(req *http.Request) (*req } if ctx, hasContext := a.contextMapper.Get(req); hasContext { - user, hasUser := kapi.UserFrom(ctx) + user, hasUser := apirequest.UserFrom(ctx) if hasUser && a.authenticatedGroups.HasAny(user.GetGroups()...) { // An authenticated request indicates this isn't a browser page load. // Browsers cannot make direct authenticated requests. diff --git a/pkg/authorization/authorizer/browser_safe_request_info_resolver_test.go b/pkg/authorization/authorizer/browser_safe_request_info_resolver_test.go index 6b26a78c73fe..6f2e26276560 100644 --- a/pkg/authorization/authorizer/browser_safe_request_info_resolver_test.go +++ b/pkg/authorization/authorizer/browser_safe_request_info_resolver_test.go @@ -4,10 +4,9 @@ import ( "net/http" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apiserver/request" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) func TestUpstreamInfoResolver(t *testing.T) { @@ -31,7 +30,7 @@ func TestUpstreamInfoResolver(t *testing.T) { } for k, tc := range testcases { - resolver := &request.RequestInfoFactory{ + resolver := &apirequest.RequestInfoFactory{ APIPrefixes: sets.NewString("api", "osapi", "oapi", "apis"), GrouplessAPIPrefixes: sets.NewString("api", "osapi", "oapi"), } @@ -53,8 +52,8 @@ func TestUpstreamInfoResolver(t *testing.T) { func TestBrowserSafeRequestInfoResolver(t *testing.T) { testcases := map[string]struct { - RequestInfo request.RequestInfo - Context kapi.Context + RequestInfo apirequest.RequestInfo + Context apirequest.Context Host string Headers http.Header @@ -62,39 +61,39 @@ func TestBrowserSafeRequestInfoResolver(t *testing.T) { ExpectedSubresource string }{ "non-resource": { - RequestInfo: request.RequestInfo{IsResourceRequest: false, Verb: "GET"}, + RequestInfo: apirequest.RequestInfo{IsResourceRequest: false, Verb: "GET"}, ExpectedVerb: "GET", }, "non-proxy": { - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "logs"}, + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "logs"}, ExpectedVerb: "get", ExpectedSubresource: "logs", }, "unsafe proxy subresource": { - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, ExpectedVerb: "get", ExpectedSubresource: "unsafeproxy", }, "unsafe proxy verb": { - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "proxy", Resource: "nodes"}, + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "proxy", Resource: "nodes"}, ExpectedVerb: "unsafeproxy", }, "unsafe proxy verb anonymous": { - Context: kapi.WithUser(kapi.NewContext(), &user.DefaultInfo{Name: "system:anonymous", Groups: []string{"system:unauthenticated"}}), - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "proxy", Resource: "nodes"}, + Context: apirequest.WithUser(apirequest.NewContext(), &user.DefaultInfo{Name: "system:anonymous", Groups: []string{"system:unauthenticated"}}), + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "proxy", Resource: "nodes"}, ExpectedVerb: "unsafeproxy", }, "proxy subresource authenticated": { - Context: kapi.WithUser(kapi.NewContext(), &user.DefaultInfo{Name: "bob", Groups: []string{"system:authenticated"}}), - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, + Context: apirequest.WithUser(apirequest.NewContext(), &user.DefaultInfo{Name: "bob", Groups: []string{"system:authenticated"}}), + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, ExpectedVerb: "get", ExpectedSubresource: "proxy", }, "proxy subresource custom header": { - RequestInfo: request.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, + RequestInfo: apirequest.RequestInfo{IsResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, Headers: http.Header{"X-Csrf-Token": []string{"1"}}, ExpectedVerb: "get", ExpectedSubresource: "proxy", @@ -128,20 +127,20 @@ func TestBrowserSafeRequestInfoResolver(t *testing.T) { } type testContextMapper struct { - context kapi.Context + context apirequest.Context } -func (t *testContextMapper) Get(req *http.Request) (kapi.Context, bool) { +func (t *testContextMapper) Get(req *http.Request) (apirequest.Context, bool) { return t.context, t.context != nil } -func (t *testContextMapper) Update(req *http.Request, ctx kapi.Context) error { +func (t *testContextMapper) Update(req *http.Request, ctx apirequest.Context) error { return nil } type testInfoFactory struct { - info *request.RequestInfo + info *apirequest.RequestInfo } -func (t *testInfoFactory) NewRequestInfo(req *http.Request) (*request.RequestInfo, error) { +func (t *testInfoFactory) NewRequestInfo(req *http.Request) (*apirequest.RequestInfo, error) { return t.info, nil } diff --git a/pkg/authorization/authorizer/cache/authorizer.go b/pkg/authorization/authorizer/cache/authorizer.go index a2c29083284d..1f1e14f1e03d 100644 --- a/pkg/authorization/authorizer/cache/authorizer.go +++ b/pkg/authorization/authorizer/cache/authorizer.go @@ -8,9 +8,9 @@ import ( "github.com/golang/glog" "github.com/hashicorp/golang-lru" - kerrs "k8s.io/kubernetes/pkg/api/errors" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + kerrs "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/authorizer/cache/authorizer_test.go b/pkg/authorization/authorizer/cache/authorizer_test.go index dc710c08c26c..a9a1ffa1c66d 100644 --- a/pkg/authorization/authorizer/cache/authorizer_test.go +++ b/pkg/authorization/authorizer/cache/authorizer_test.go @@ -7,9 +7,9 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" ) func TestAuthorizer(t *testing.T) { diff --git a/pkg/authorization/authorizer/interfaces.go b/pkg/authorization/authorizer/interfaces.go index 278b58265586..cc812fda8885 100644 --- a/pkg/authorization/authorizer/interfaces.go +++ b/pkg/authorization/authorizer/interfaces.go @@ -3,9 +3,9 @@ package authorizer import ( "net/http" - "k8s.io/kubernetes/pkg/apiserver/request" - "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type SubjectLocator interface { @@ -17,7 +17,7 @@ type AuthorizationAttributeBuilder interface { } type RequestInfoFactory interface { - NewRequestInfo(req *http.Request) (*request.RequestInfo, error) + NewRequestInfo(req *http.Request) (*apirequest.RequestInfo, error) } // ForbiddenMessageMaker creates a forbidden message from Attributes diff --git a/pkg/authorization/authorizer/messages.go b/pkg/authorization/authorizer/messages.go index 383aa60eb556..83d7f6141519 100644 --- a/pkg/authorization/authorizer/messages.go +++ b/pkg/authorization/authorizer/messages.go @@ -4,7 +4,7 @@ import ( "bytes" "text/template" - "k8s.io/kubernetes/pkg/auth/authorizer" + "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/authorizer/messages_test.go b/pkg/authorization/authorizer/messages_test.go index b17a6e3adc1a..9581a47ee211 100644 --- a/pkg/authorization/authorizer/messages_test.go +++ b/pkg/authorization/authorizer/messages_test.go @@ -3,8 +3,8 @@ package authorizer import ( "testing" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" ) func TestDefaultForbiddenMessages(t *testing.T) { diff --git a/pkg/authorization/authorizer/non_resource_match_test.go b/pkg/authorization/authorizer/non_resource_match_test.go index bd1da4a799ef..61a352a6daf7 100644 --- a/pkg/authorization/authorizer/non_resource_match_test.go +++ b/pkg/authorization/authorizer/non_resource_match_test.go @@ -3,8 +3,8 @@ package authorizer import ( "testing" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/authorizer/personal_subjectaccessreview.go b/pkg/authorization/authorizer/personal_subjectaccessreview.go index c4a74fe46633..72e99713f3a0 100644 --- a/pkg/authorization/authorizer/personal_subjectaccessreview.go +++ b/pkg/authorization/authorizer/personal_subjectaccessreview.go @@ -6,9 +6,9 @@ import ( "net/http" "strings" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apiserver/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -74,7 +74,7 @@ func isPersonalAccessReviewFromRequest(req *http.Request, requestInfo *request.R } req.Body = ioutil.NopCloser(bytes.NewBuffer(body)) - defaultGVK := unversioned.GroupVersionKind{Version: requestInfo.APIVersion, Group: requestInfo.APIGroup} + defaultGVK := schema.GroupVersionKind{Version: requestInfo.APIVersion, Group: requestInfo.APIGroup} switch strings.ToLower(requestInfo.Resource) { case "subjectaccessreviews": defaultGVK.Kind = "SubjectAccessReview" diff --git a/pkg/authorization/authorizer/project_request_info_resolver.go b/pkg/authorization/authorizer/project_request_info_resolver.go index 1c1170f9814d..827941d1ca6e 100644 --- a/pkg/authorization/authorizer/project_request_info_resolver.go +++ b/pkg/authorization/authorizer/project_request_info_resolver.go @@ -3,7 +3,7 @@ package authorizer import ( "net/http" - "k8s.io/kubernetes/pkg/apiserver/request" + "k8s.io/apiserver/pkg/endpoints/request" ) type projectRequestInfoResolver struct { diff --git a/pkg/authorization/authorizer/remote/authorizer.go b/pkg/authorization/authorizer/remote/authorizer.go index 451554aa7291..9739f076a5c3 100644 --- a/pkg/authorization/authorizer/remote/authorizer.go +++ b/pkg/authorization/authorizer/remote/authorizer.go @@ -3,9 +3,9 @@ package remote import ( "github.com/golang/glog" - kerrs "k8s.io/kubernetes/pkg/api/errors" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/util/sets" + kerrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/sets" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authzapi "github.com/openshift/origin/pkg/authorization/api" oclient "github.com/openshift/origin/pkg/client" diff --git a/pkg/authorization/authorizer/scope/authorizer.go b/pkg/authorization/authorizer/scope/authorizer.go index b61b7986eb6f..6fe27d639efc 100644 --- a/pkg/authorization/authorizer/scope/authorizer.go +++ b/pkg/authorization/authorizer/scope/authorizer.go @@ -3,9 +3,9 @@ package scope import ( "fmt" - "k8s.io/kubernetes/pkg/auth/authorizer" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - kerrors "k8s.io/kubernetes/pkg/util/errors" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authorization/authorizer" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" defaultauthorizer "github.com/openshift/origin/pkg/authorization/authorizer" diff --git a/pkg/authorization/authorizer/scope/authorizer_test.go b/pkg/authorization/authorizer/scope/authorizer_test.go index a216cccaaa0d..58acc18d83c7 100644 --- a/pkg/authorization/authorizer/scope/authorizer_test.go +++ b/pkg/authorization/authorizer/scope/authorizer_test.go @@ -4,9 +4,9 @@ import ( "strings" "testing" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" defaultauthorizer "github.com/openshift/origin/pkg/authorization/authorizer" diff --git a/pkg/authorization/authorizer/scope/converter.go b/pkg/authorization/authorizer/scope/converter.go index 99c810f5f325..ba268bd832e0 100644 --- a/pkg/authorization/authorizer/scope/converter.go +++ b/pkg/authorization/authorizer/scope/converter.go @@ -4,14 +4,15 @@ import ( "fmt" "strings" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime/schema" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" kauthorizationapi "k8s.io/kubernetes/pkg/apis/authorization" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/conversion" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" @@ -208,7 +209,7 @@ func (userEvaluator) ResolveGettableNamespaces(scope string, clusterPolicyGetter } // escalatingScopeResources are resources that are considered escalating for scope evaluation -var escalatingScopeResources = []unversioned.GroupResource{ +var escalatingScopeResources = []schema.GroupResource{ {Group: kapi.GroupName, Resource: "secrets"}, {Group: imageapi.GroupName, Resource: "imagestreams/secrets"}, @@ -329,7 +330,7 @@ func (e clusterRoleEvaluator) resolveRules(scope string, clusterPolicyGetter cli return nil, err } - policy, err := clusterPolicyGetter.Get("default") + policy, err := clusterPolicyGetter.Get("default", metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/authorization/authorizer/scope/converter_test.go b/pkg/authorization/authorizer/scope/converter_test.go index 5c153d464309..d40ef1449c35 100644 --- a/pkg/authorization/authorizer/scope/converter_test.go +++ b/pkg/authorization/authorizer/scope/converter_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -117,7 +117,7 @@ func TestClusterRoleEvaluator(t *testing.T) { name: "missing-role", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{}}, }, }, @@ -129,7 +129,7 @@ func TestClusterRoleEvaluator(t *testing.T) { name: "mismatched-namespace", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{}}, }, }, @@ -141,7 +141,7 @@ func TestClusterRoleEvaluator(t *testing.T) { name: "all-namespaces", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{}}, }, }, @@ -153,7 +153,7 @@ func TestClusterRoleEvaluator(t *testing.T) { name: "matching-namespaces", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{}}, }, }, @@ -165,7 +165,7 @@ func TestClusterRoleEvaluator(t *testing.T) { name: "colon-role", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin:two"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin:two"}, Rules: []authorizationapi.PolicyRule{{}}, }, }, @@ -216,7 +216,7 @@ func TestEscalationProtection(t *testing.T) { name: "simple match secrets", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{APIGroups: []string{""}, Resources: sets.NewString("pods", "secrets")}}, }, }, @@ -227,7 +227,7 @@ func TestEscalationProtection(t *testing.T) { name: "match old group secrets", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{APIGroups: []string{}, Resources: sets.NewString("pods", "secrets")}}, }, }, @@ -238,7 +238,7 @@ func TestEscalationProtection(t *testing.T) { name: "skip non-matching group secrets", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{APIGroups: []string{"foo"}, Resources: sets.NewString("pods", "secrets")}}, }, }, @@ -249,7 +249,7 @@ func TestEscalationProtection(t *testing.T) { name: "access tokens", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{APIGroups: []string{"", "and-foo"}, Resources: sets.NewString("pods", "oauthaccesstokens")}}, }, }, @@ -260,7 +260,7 @@ func TestEscalationProtection(t *testing.T) { name: "allow the escalation", clusterRoles: []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{APIGroups: []string{""}, Resources: sets.NewString("pods", "secrets")}}, }, }, @@ -286,8 +286,8 @@ type fakePolicyGetter struct { err error } -func (f *fakePolicyGetter) List(kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { - policy, err := f.Get("") +func (f *fakePolicyGetter) List(metav1.ListOptions) (*authorizationapi.ClusterPolicyList, error) { + policy, err := f.Get("", metav1.GetOptions{}) if err != nil { return nil, err } @@ -297,7 +297,7 @@ func (f *fakePolicyGetter) List(kapi.ListOptions) (*authorizationapi.ClusterPoli return ret, f.err } -func (f *fakePolicyGetter) Get(id string) (*authorizationapi.ClusterPolicy, error) { +func (f *fakePolicyGetter) Get(id string, options metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { ret := &authorizationapi.ClusterPolicy{} ret.Roles = map[string]*authorizationapi.ClusterRole{} for i := range f.clusterRoles { diff --git a/pkg/authorization/authorizer/subjects_test.go b/pkg/authorization/authorizer/subjects_test.go index 36c5c4734ba3..61056a212def 100644 --- a/pkg/authorization/authorizer/subjects_test.go +++ b/pkg/authorization/authorizer/subjects_test.go @@ -3,8 +3,8 @@ package authorizer import ( "testing" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" testpolicyregistry "github.com/openshift/origin/pkg/authorization/registry/test" diff --git a/pkg/authorization/client/clientset_generated/internalclientset/clientset.go b/pkg/authorization/client/clientset_generated/internalclientset/clientset.go index 320f4aa1a2e8..4ddb8411a275 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/authorization/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/authorization/client/clientset_generated/internalclientset/fake/clientset_generated.go index c576e76aa78f..f42d0a2b1bb7 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/authorization/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index e8ba0d6da68c..f71536ed8160 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { PoliciesGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index 31c39db2611b..5423c94f3751 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_policy.go b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_policy.go index d6050c7bd4aa..0eab27baff76 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_policy.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_policy.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/authorization/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakePolicies implements PolicyInterface @@ -15,7 +15,7 @@ type FakePolicies struct { ns string } -var policiesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "policies"} +var policiesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "policies"} func (c *FakePolicies) Create(policy *api.Policy) (result *api.Policy, err error) { obj, err := c.Fake. diff --git a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/policy.go b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/policy.go index dd3a6f1d8a83..05a2437ed82b 100644 --- a/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/policy.go +++ b/pkg/authorization/client/clientset_generated/internalclientset/typed/core/internalversion/policy.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/authorization/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // PoliciesGetter has a method to return a PolicyInterface. diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/clientset.go b/pkg/authorization/client/clientset_generated/release_v1_5/clientset.go index 9a13c8d693a9..a1a05309c395 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/authorization/client/clientset_generated/release_v1_5/fake/clientset_generated.go index a6a082131fcf..a340d6479a56 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/authorization/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 92471736091d..4f0983542f27 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { PoliciesGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index f528537dbde7..eac76cd0977c 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_policy.go b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_policy.go index 9728802da3b9..2bd8b464891f 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_policy.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_policy.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/authorization/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakePolicies implements PolicyInterface @@ -16,7 +16,7 @@ type FakePolicies struct { ns string } -var policiesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "policies"} +var policiesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "policies"} func (c *FakePolicies) Create(policy *v1.Policy) (result *v1.Policy, err error) { obj, err := c.Fake. diff --git a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/policy.go b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/policy.go index 932ef7348ddc..24f60efd2156 100644 --- a/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/policy.go +++ b/pkg/authorization/client/clientset_generated/release_v1_5/typed/core/v1/policy.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/authorization/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // PoliciesGetter has a method to return a PolicyInterface. diff --git a/pkg/authorization/interfaces/interfaces.go b/pkg/authorization/interfaces/interfaces.go index 272e4cfdcc31..bcc840da20cc 100644 --- a/pkg/authorization/interfaces/interfaces.go +++ b/pkg/authorization/interfaces/interfaces.go @@ -1,9 +1,9 @@ package interfaces import ( + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/reaper/cluster_role.go b/pkg/authorization/reaper/cluster_role.go index 6e4739cc6211..288d9d7a2a5a 100644 --- a/pkg/authorization/reaper/cluster_role.go +++ b/pkg/authorization/reaper/cluster_role.go @@ -4,8 +4,9 @@ import ( "time" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/kubectl" "github.com/openshift/origin/pkg/client" @@ -27,8 +28,8 @@ type ClusterRoleReaper struct { // Stop on a reaper is actually used for deletion. In this case, we'll delete referencing clusterroleclusterBindings // then delete the clusterrole. -func (r *ClusterRoleReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { - clusterBindings, err := r.clusterBindingClient.ClusterRoleBindings().List(kapi.ListOptions{}) +func (r *ClusterRoleReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { + clusterBindings, err := r.clusterBindingClient.ClusterRoleBindings().List(metav1.ListOptions{}) if err != nil { return err } @@ -40,7 +41,7 @@ func (r *ClusterRoleReaper) Stop(namespace, name string, timeout time.Duration, } } - namespacedBindings, err := r.bindingClient.RoleBindings(kapi.NamespaceNone).List(kapi.ListOptions{}) + namespacedBindings, err := r.bindingClient.RoleBindings(kapi.NamespaceNone).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/authorization/reaper/cluster_role_test.go b/pkg/authorization/reaper/cluster_role_test.go index 9b042feea4f0..b0d67f59ebec 100644 --- a/pkg/authorization/reaper/cluster_role_test.go +++ b/pkg/authorization/reaper/cluster_role_test.go @@ -4,10 +4,11 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" _ "github.com/openshift/origin/pkg/authorization/api/install" @@ -24,7 +25,7 @@ func TestClusterRoleReaper(t *testing.T) { { name: "no bindings", role: &authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "role", }, }, @@ -32,25 +33,25 @@ func TestClusterRoleReaper(t *testing.T) { { name: "bindings", role: &authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "role", }, }, bindings: []*authorizationapi.ClusterRoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-1", }, RoleRef: kapi.ObjectReference{Name: "role"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-2", }, RoleRef: kapi.ObjectReference{Name: "role2"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-3", }, RoleRef: kapi.ObjectReference{Name: "role"}, @@ -69,8 +70,8 @@ func TestClusterRoleReaper(t *testing.T) { tc := testclient.NewSimpleFake(startingObjects...) actualDeletedBindingNames := []string{} - tc.PrependReactor("delete", "clusterrolebindings", func(action core.Action) (handled bool, ret runtime.Object, err error) { - actualDeletedBindingNames = append(actualDeletedBindingNames, action.(core.DeleteAction).GetName()) + tc.PrependReactor("delete", "clusterrolebindings", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + actualDeletedBindingNames = append(actualDeletedBindingNames, action.(clientgotesting.DeleteAction).GetName()) return true, nil, nil }) @@ -98,27 +99,27 @@ func TestClusterRoleReaperAgainstNamespacedBindings(t *testing.T) { { name: "bindings", role: &authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "role", }, }, bindings: []*authorizationapi.RoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-1", Namespace: "ns-one", }, RoleRef: kapi.ObjectReference{Name: "role"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-2", Namespace: "ns-one", }, RoleRef: kapi.ObjectReference{Name: "role2"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-3", Namespace: "ns-one", }, @@ -138,8 +139,8 @@ func TestClusterRoleReaperAgainstNamespacedBindings(t *testing.T) { tc := testclient.NewSimpleFake(startingObjects...) actualDeletedBindingNames := []string{} - tc.PrependReactor("delete", "rolebindings", func(action core.Action) (handled bool, ret runtime.Object, err error) { - actualDeletedBindingNames = append(actualDeletedBindingNames, action.(core.DeleteAction).GetName()) + tc.PrependReactor("delete", "rolebindings", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + actualDeletedBindingNames = append(actualDeletedBindingNames, action.(clientgotesting.DeleteAction).GetName()) return true, nil, nil }) diff --git a/pkg/authorization/reaper/role.go b/pkg/authorization/reaper/role.go index 1baffd37cb4c..3b7ac43fe49a 100644 --- a/pkg/authorization/reaper/role.go +++ b/pkg/authorization/reaper/role.go @@ -4,8 +4,8 @@ import ( "time" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubectl" "github.com/openshift/origin/pkg/client" @@ -25,8 +25,8 @@ type RoleReaper struct { // Stop on a reaper is actually used for deletion. In this case, we'll delete referencing rolebindings // then delete the role. -func (r *RoleReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { - bindings, err := r.bindingClient.RoleBindings(namespace).List(kapi.ListOptions{}) +func (r *RoleReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { + bindings, err := r.bindingClient.RoleBindings(namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/authorization/reaper/role_test.go b/pkg/authorization/reaper/role_test.go index 7df4df420911..ef052237ab94 100644 --- a/pkg/authorization/reaper/role_test.go +++ b/pkg/authorization/reaper/role_test.go @@ -4,10 +4,11 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client/testclient" @@ -23,7 +24,7 @@ func TestRoleReaper(t *testing.T) { { name: "no bindings", role: &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "role", }, @@ -32,28 +33,28 @@ func TestRoleReaper(t *testing.T) { { name: "bindings", role: &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "role", Namespace: "one", }, }, bindings: []*authorizationapi.RoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-1", Namespace: "one", }, RoleRef: kapi.ObjectReference{Name: "role", Namespace: "one"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-2", Namespace: "one", }, RoleRef: kapi.ObjectReference{Name: "role2", Namespace: "one"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-3", Namespace: "one", }, @@ -65,14 +66,14 @@ func TestRoleReaper(t *testing.T) { { name: "bindings in other namespace ignored", role: &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "role", Namespace: "one", }, }, bindings: []*authorizationapi.RoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "binding-1", Namespace: "one", }, @@ -91,8 +92,8 @@ func TestRoleReaper(t *testing.T) { tc := testclient.NewSimpleFake(startingObjects...) actualDeletedBindingNames := []string{} - tc.PrependReactor("delete", "rolebindings", func(action core.Action) (handled bool, ret runtime.Object, err error) { - actualDeletedBindingNames = append(actualDeletedBindingNames, action.(core.DeleteAction).GetName()) + tc.PrependReactor("delete", "rolebindings", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + actualDeletedBindingNames = append(actualDeletedBindingNames, action.(clientgotesting.DeleteAction).GetName()) return true, nil, nil }) diff --git a/pkg/authorization/registry/clusterpolicy/etcd/etcd.go b/pkg/authorization/registry/clusterpolicy/etcd/etcd.go index 057ba995b904..1a03cc1e9e14 100644 --- a/pkg/authorization/registry/clusterpolicy/etcd/etcd.go +++ b/pkg/authorization/registry/clusterpolicy/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/clusterpolicy" diff --git a/pkg/authorization/registry/clusterpolicy/registry.go b/pkg/authorization/registry/clusterpolicy/registry.go index 7d084c378c35..5e83178c4bc1 100644 --- a/pkg/authorization/registry/clusterpolicy/registry.go +++ b/pkg/authorization/registry/clusterpolicy/registry.go @@ -1,9 +1,12 @@ package clusterpolicy import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/policy" @@ -12,25 +15,25 @@ import ( // Registry is an interface for things that know how to store ClusterPolicies. type Registry interface { // ListClusterPolicies obtains list of policies that match a selector. - ListClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) + ListClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) // GetClusterPolicy retrieves a specific policy. - GetClusterPolicy(ctx kapi.Context, id string) (*authorizationapi.ClusterPolicy, error) + GetClusterPolicy(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) // CreateClusterPolicy creates a new policy. - CreateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error + CreateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error // UpdateClusterPolicy updates a policy. - UpdateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error + UpdateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error // DeleteClusterPolicy deletes a policy. - DeleteClusterPolicy(ctx kapi.Context, id string) error + DeleteClusterPolicy(ctx apirequest.Context, id string) error } type WatchingRegistry interface { Registry // WatchClusterPolicies watches policies. - WatchClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } type ReadOnlyClusterPolicyInterface interface { - List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) + List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) Get(name string) (*authorizationapi.ClusterPolicy, error) } @@ -50,7 +53,7 @@ func NewRegistry(s Storage) WatchingRegistry { return &storage{s} } -func (s *storage) ListClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { +func (s *storage) ListClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -59,30 +62,30 @@ func (s *storage) ListClusterPolicies(ctx kapi.Context, options *kapi.ListOption return obj.(*authorizationapi.ClusterPolicyList), nil } -func (s *storage) CreateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error { +func (s *storage) CreateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error { _, err := s.Create(ctx, policy) return err } -func (s *storage) UpdateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error { +func (s *storage) UpdateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error { _, _, err := s.Update(ctx, policy.Name, rest.DefaultUpdatedObjectInfo(policy, kapi.Scheme)) return err } -func (s *storage) WatchClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetClusterPolicy(ctx kapi.Context, name string) (*authorizationapi.ClusterPolicy, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetClusterPolicy(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.ClusterPolicy), nil } -func (s *storage) DeleteClusterPolicy(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteClusterPolicy(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } @@ -94,25 +97,25 @@ func NewSimulatedRegistry(clusterRegistry Registry) policy.Registry { return &simulatedStorage{clusterRegistry} } -func (s *simulatedStorage) ListPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyList, error) { +func (s *simulatedStorage) ListPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyList, error) { ret, err := s.clusterRegistry.ListClusterPolicies(ctx, options) return authorizationapi.ToPolicyList(ret), err } -func (s *simulatedStorage) CreatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error { +func (s *simulatedStorage) CreatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error { return s.clusterRegistry.CreateClusterPolicy(ctx, authorizationapi.ToClusterPolicy(policy)) } -func (s *simulatedStorage) UpdatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error { +func (s *simulatedStorage) UpdatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error { return s.clusterRegistry.UpdateClusterPolicy(ctx, authorizationapi.ToClusterPolicy(policy)) } -func (s *simulatedStorage) GetPolicy(ctx kapi.Context, name string) (*authorizationapi.Policy, error) { - ret, err := s.clusterRegistry.GetClusterPolicy(ctx, name) +func (s *simulatedStorage) GetPolicy(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.Policy, error) { + ret, err := s.clusterRegistry.GetClusterPolicy(ctx, name, options) return authorizationapi.ToPolicy(ret), err } -func (s *simulatedStorage) DeletePolicy(ctx kapi.Context, name string) error { +func (s *simulatedStorage) DeletePolicy(ctx apirequest.Context, name string) error { return s.clusterRegistry.DeleteClusterPolicy(ctx, name) } @@ -120,10 +123,14 @@ type ReadOnlyClusterPolicy struct { Registry } -func (s ReadOnlyClusterPolicy) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { - return s.ListClusterPolicies(kapi.WithNamespace(kapi.NewContext(), ""), &options) +func (s ReadOnlyClusterPolicy) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.ListClusterPolicies(apirequest.WithNamespace(apirequest.NewContext(), ""), &optint) } -func (s ReadOnlyClusterPolicy) Get(name string) (*authorizationapi.ClusterPolicy, error) { - return s.GetClusterPolicy(kapi.WithNamespace(kapi.NewContext(), ""), name) +func (s ReadOnlyClusterPolicy) Get(name string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { + return s.GetClusterPolicy(apirequest.WithNamespace(apirequest.NewContext(), ""), name, options) } diff --git a/pkg/authorization/registry/clusterpolicy/strategy.go b/pkg/authorization/registry/clusterpolicy/strategy.go index ffbe8ff19800..3fc85f36b83b 100644 --- a/pkg/authorization/registry/clusterpolicy/strategy.go +++ b/pkg/authorization/registry/clusterpolicy/strategy.go @@ -3,12 +3,13 @@ package clusterpolicy import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -40,14 +41,14 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { policy := obj.(*authorizationapi.ClusterPolicy) policy.Name = authorizationapi.PolicyName } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*authorizationapi.ClusterPolicy) } @@ -56,12 +57,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policy. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateClusterPolicy(obj.(*authorizationapi.ClusterPolicy)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateClusterPolicyUpdate(obj.(*authorizationapi.ClusterPolicy), old.(*authorizationapi.ClusterPolicy)) } diff --git a/pkg/authorization/registry/clusterpolicybinding/etcd/etcd.go b/pkg/authorization/registry/clusterpolicybinding/etcd/etcd.go index 9e2d0570e0f8..101461ef6035 100644 --- a/pkg/authorization/registry/clusterpolicybinding/etcd/etcd.go +++ b/pkg/authorization/registry/clusterpolicybinding/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/clusterpolicybinding" diff --git a/pkg/authorization/registry/clusterpolicybinding/registry.go b/pkg/authorization/registry/clusterpolicybinding/registry.go index cb50405f2e24..d9d5378eaf69 100644 --- a/pkg/authorization/registry/clusterpolicybinding/registry.go +++ b/pkg/authorization/registry/clusterpolicybinding/registry.go @@ -1,9 +1,12 @@ package clusterpolicybinding import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/policybinding" @@ -12,25 +15,25 @@ import ( // Registry is an interface for things that know how to store ClusterPolicyBindings. type Registry interface { // ListClusterPolicyBindings obtains list of policyBindings that match a selector. - ListClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) + ListClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) // GetClusterPolicyBinding retrieves a specific policyBinding. - GetClusterPolicyBinding(ctx kapi.Context, name string) (*authorizationapi.ClusterPolicyBinding, error) + GetClusterPolicyBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) // CreateClusterPolicyBinding creates a new policyBinding. - CreateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error + CreateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error // UpdateClusterPolicyBinding updates a policyBinding. - UpdateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error + UpdateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error // DeleteClusterPolicyBinding deletes a policyBinding. - DeleteClusterPolicyBinding(ctx kapi.Context, name string) error + DeleteClusterPolicyBinding(ctx apirequest.Context, name string) error } type WatchingRegistry interface { Registry // WatchClusterPolicyBindings watches policyBindings. - WatchClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } type ReadOnlyClusterPolicyInterface interface { - List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) + List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) } @@ -50,7 +53,7 @@ func NewRegistry(s Storage) WatchingRegistry { return &storage{s} } -func (s *storage) ListClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { +func (s *storage) ListClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -59,30 +62,30 @@ func (s *storage) ListClusterPolicyBindings(ctx kapi.Context, options *kapi.List return obj.(*authorizationapi.ClusterPolicyBindingList), nil } -func (s *storage) CreateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { +func (s *storage) CreateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { _, err := s.Create(ctx, policyBinding) return err } -func (s *storage) UpdateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { +func (s *storage) UpdateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { _, _, err := s.Update(ctx, policyBinding.Name, rest.DefaultUpdatedObjectInfo(policyBinding, kapi.Scheme)) return err } -func (s *storage) WatchClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetClusterPolicyBinding(ctx kapi.Context, name string) (*authorizationapi.ClusterPolicyBinding, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetClusterPolicyBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.ClusterPolicyBinding), nil } -func (s *storage) DeleteClusterPolicyBinding(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteClusterPolicyBinding(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } @@ -94,25 +97,25 @@ func NewSimulatedRegistry(clusterRegistry Registry) policybinding.Registry { return &simulatedStorage{clusterRegistry} } -func (s *simulatedStorage) ListPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (s *simulatedStorage) ListPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) { ret, err := s.clusterRegistry.ListClusterPolicyBindings(ctx, options) return authorizationapi.ToPolicyBindingList(ret), err } -func (s *simulatedStorage) CreatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (s *simulatedStorage) CreatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { return s.clusterRegistry.CreateClusterPolicyBinding(ctx, authorizationapi.ToClusterPolicyBinding(policyBinding)) } -func (s *simulatedStorage) UpdatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (s *simulatedStorage) UpdatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { return s.clusterRegistry.UpdateClusterPolicyBinding(ctx, authorizationapi.ToClusterPolicyBinding(policyBinding)) } -func (s *simulatedStorage) GetPolicyBinding(ctx kapi.Context, name string) (*authorizationapi.PolicyBinding, error) { - ret, err := s.clusterRegistry.GetClusterPolicyBinding(ctx, name) +func (s *simulatedStorage) GetPolicyBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { + ret, err := s.clusterRegistry.GetClusterPolicyBinding(ctx, name, options) return authorizationapi.ToPolicyBinding(ret), err } -func (s *simulatedStorage) DeletePolicyBinding(ctx kapi.Context, name string) error { +func (s *simulatedStorage) DeletePolicyBinding(ctx apirequest.Context, name string) error { return s.clusterRegistry.DeleteClusterPolicyBinding(ctx, name) } @@ -120,10 +123,14 @@ type ReadOnlyClusterPolicyBinding struct { Registry } -func (s ReadOnlyClusterPolicyBinding) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { - return s.ListClusterPolicyBindings(kapi.WithNamespace(kapi.NewContext(), ""), &options) +func (s ReadOnlyClusterPolicyBinding) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.ListClusterPolicyBindings(apirequest.WithNamespace(apirequest.NewContext(), ""), &optint) } -func (s ReadOnlyClusterPolicyBinding) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { - return s.GetClusterPolicyBinding(kapi.WithNamespace(kapi.NewContext(), ""), name) +func (s ReadOnlyClusterPolicyBinding) Get(name string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) { + return s.GetClusterPolicyBinding(apirequest.WithNamespace(apirequest.NewContext(), ""), name, options) } diff --git a/pkg/authorization/registry/clusterpolicybinding/strategy.go b/pkg/authorization/registry/clusterpolicybinding/strategy.go index 724139cdce68..7c5cb6207bd1 100644 --- a/pkg/authorization/registry/clusterpolicybinding/strategy.go +++ b/pkg/authorization/registry/clusterpolicybinding/strategy.go @@ -3,12 +3,13 @@ package clusterpolicybinding import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -40,7 +41,7 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { binding := obj.(*authorizationapi.ClusterPolicyBinding) s.scrubBindingRefs(binding) @@ -61,7 +62,7 @@ func (s strategy) scrubBindingRefs(binding *authorizationapi.ClusterPolicyBindin } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (s strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { binding := obj.(*authorizationapi.ClusterPolicyBinding) s.scrubBindingRefs(binding) @@ -72,12 +73,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policyBinding. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateClusterPolicyBinding(obj.(*authorizationapi.ClusterPolicyBinding)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateClusterPolicyBindingUpdate(obj.(*authorizationapi.ClusterPolicyBinding), old.(*authorizationapi.ClusterPolicyBinding)) } diff --git a/pkg/authorization/registry/clusterrole/proxy/proxy.go b/pkg/authorization/registry/clusterrole/proxy/proxy.go index a06c922c0f3a..45330432b097 100644 --- a/pkg/authorization/registry/clusterrole/proxy/proxy.go +++ b/pkg/authorization/registry/clusterrole/proxy/proxy.go @@ -1,10 +1,11 @@ package proxy import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" clusterpolicyregistry "github.com/openshift/origin/pkg/authorization/registry/clusterpolicy" @@ -48,7 +49,7 @@ func (s *ClusterRoleStorage) NewList() runtime.Object { return &authorizationapi.ClusterRoleList{} } -func (s *ClusterRoleStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { +func (s *ClusterRoleStorage) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { ret, err := s.roleStorage.List(ctx, options) if ret == nil { return nil, err @@ -56,24 +57,24 @@ func (s *ClusterRoleStorage) List(ctx kapi.Context, options *kapi.ListOptions) ( return authorizationapi.ToClusterRoleList(ret.(*authorizationapi.RoleList)), err } -func (s *ClusterRoleStorage) Get(ctx kapi.Context, name string) (runtime.Object, error) { - ret, err := s.roleStorage.Get(ctx, name) +func (s *ClusterRoleStorage) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + ret, err := s.roleStorage.Get(ctx, name, options) if ret == nil { return nil, err } return authorizationapi.ToClusterRole(ret.(*authorizationapi.Role)), err } -func (s *ClusterRoleStorage) Delete(ctx kapi.Context, name string, options *kapi.DeleteOptions) (runtime.Object, error) { - ret, err := s.roleStorage.Delete(ctx, name, options) +func (s *ClusterRoleStorage) Delete(ctx apirequest.Context, name string, options *metav1.DeleteOptions) (runtime.Object, bool, error) { + ret, immediate, err := s.roleStorage.Delete(ctx, name, options) if ret == nil { - return nil, err + return nil, immediate, err } - return ret.(*unversioned.Status), err + return ret.(*metav1.Status), false, err } -func (s *ClusterRoleStorage) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *ClusterRoleStorage) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { clusterObj := obj.(*authorizationapi.ClusterRole) convertedObj := authorizationapi.ToRole(clusterObj) @@ -89,7 +90,7 @@ type convertingObjectInfo struct { rest.UpdatedObjectInfo } -func (i convertingObjectInfo) UpdatedObject(ctx kapi.Context, old runtime.Object) (runtime.Object, error) { +func (i convertingObjectInfo) UpdatedObject(ctx apirequest.Context, old runtime.Object) (runtime.Object, error) { oldObj := old.(*authorizationapi.Role) convertedOldObj := authorizationapi.ToClusterRole(oldObj) obj, err := i.UpdatedObjectInfo.UpdatedObject(ctx, convertedOldObj) @@ -101,7 +102,7 @@ func (i convertingObjectInfo) UpdatedObject(ctx kapi.Context, old runtime.Object return convertedObj, nil } -func (s *ClusterRoleStorage) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *ClusterRoleStorage) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { ret, created, err := s.roleStorage.Update(ctx, name, convertingObjectInfo{objInfo}) if ret == nil { return nil, created, err @@ -110,22 +111,22 @@ func (s *ClusterRoleStorage) Update(ctx kapi.Context, name string, objInfo rest. return authorizationapi.ToClusterRole(ret.(*authorizationapi.Role)), created, err } -func (m *ClusterRoleStorage) CreateClusterRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { +func (m *ClusterRoleStorage) CreateClusterRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { in := authorizationapi.ToRole(obj) ret, err := m.roleStorage.CreateRoleWithEscalation(ctx, in) return authorizationapi.ToClusterRole(ret), err } -func (m *ClusterRoleStorage) UpdateClusterRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) { +func (m *ClusterRoleStorage) UpdateClusterRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) { in := authorizationapi.ToRole(obj) ret, created, err := m.roleStorage.UpdateRoleWithEscalation(ctx, in) return authorizationapi.ToClusterRole(ret), created, err } -func (m *ClusterRoleStorage) CreateRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.Role) (*authorizationapi.Role, error) { +func (m *ClusterRoleStorage) CreateRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.Role) (*authorizationapi.Role, error) { return m.roleStorage.CreateRoleWithEscalation(ctx, obj) } -func (m *ClusterRoleStorage) UpdateRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.Role) (*authorizationapi.Role, bool, error) { +func (m *ClusterRoleStorage) UpdateRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.Role) (*authorizationapi.Role, bool, error) { return m.roleStorage.UpdateRoleWithEscalation(ctx, obj) } diff --git a/pkg/authorization/registry/clusterrole/registry.go b/pkg/authorization/registry/clusterrole/registry.go index 00b3fe39b071..9fdcfd3a103b 100644 --- a/pkg/authorization/registry/clusterrole/registry.go +++ b/pkg/authorization/registry/clusterrole/registry.go @@ -1,8 +1,11 @@ package clusterrole import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -10,15 +13,15 @@ import ( // Registry is an interface for things that know how to store ClusterRoles. type Registry interface { // ListClusterRoles obtains list of policyClusterRoles that match a selector. - ListClusterRoles(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterRoleList, error) + ListClusterRoles(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterRoleList, error) // GetClusterRole retrieves a specific policyClusterRole. - GetClusterRole(ctx kapi.Context, id string) (*authorizationapi.ClusterRole, error) + GetClusterRole(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.ClusterRole, error) // CreateClusterRole creates a new policyClusterRole. - CreateClusterRole(ctx kapi.Context, policyClusterRole *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) + CreateClusterRole(ctx apirequest.Context, policyClusterRole *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) // UpdateClusterRole updates a policyClusterRole. - UpdateClusterRole(ctx kapi.Context, policyClusterRole *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) + UpdateClusterRole(ctx apirequest.Context, policyClusterRole *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) // DeleteClusterRole deletes a policyClusterRole. - DeleteClusterRole(ctx kapi.Context, id string) error + DeleteClusterRole(ctx apirequest.Context, id string) error } // Storage is an interface for a standard REST Storage backend @@ -29,9 +32,9 @@ type Storage interface { rest.GracefulDeleter // CreateRoleWithEscalation creates a new policyRole. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - CreateRoleWithEscalation(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) + CreateRoleWithEscalation(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) // UpdateRoleWithEscalation updates a policyRole. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - UpdateRoleWithEscalation(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) + UpdateRoleWithEscalation(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) } // storage puts strong typing around storage calls @@ -45,7 +48,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListClusterRoles(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterRoleList, error) { +func (s *storage) ListClusterRoles(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterRoleList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -54,7 +57,7 @@ func (s *storage) ListClusterRoles(ctx kapi.Context, options *kapi.ListOptions) return obj.(*authorizationapi.ClusterRoleList), nil } -func (s *storage) CreateClusterRole(ctx kapi.Context, node *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { +func (s *storage) CreateClusterRole(ctx apirequest.Context, node *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { obj, err := s.Create(ctx, node) if err != nil { return nil, err @@ -63,7 +66,7 @@ func (s *storage) CreateClusterRole(ctx kapi.Context, node *authorizationapi.Clu return obj.(*authorizationapi.ClusterRole), err } -func (s *storage) UpdateClusterRole(ctx kapi.Context, node *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) { +func (s *storage) UpdateClusterRole(ctx apirequest.Context, node *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, bool, error) { obj, created, err := s.Update(ctx, node.Name, rest.DefaultUpdatedObjectInfo(node, kapi.Scheme)) if err != nil { return nil, created, err @@ -71,15 +74,15 @@ func (s *storage) UpdateClusterRole(ctx kapi.Context, node *authorizationapi.Clu return obj.(*authorizationapi.ClusterRole), created, err } -func (s *storage) GetClusterRole(ctx kapi.Context, name string) (*authorizationapi.ClusterRole, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetClusterRole(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.ClusterRole, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.ClusterRole), nil } -func (s *storage) DeleteClusterRole(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteClusterRole(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/clusterrolebinding/proxy/proxy.go b/pkg/authorization/registry/clusterrolebinding/proxy/proxy.go index c0c6639e3396..c50759c9bcdf 100644 --- a/pkg/authorization/registry/clusterrolebinding/proxy/proxy.go +++ b/pkg/authorization/registry/clusterrolebinding/proxy/proxy.go @@ -1,10 +1,11 @@ package proxy import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" clusterpolicyregistry "github.com/openshift/origin/pkg/authorization/registry/clusterpolicy" @@ -49,7 +50,7 @@ func (s *ClusterRoleBindingStorage) NewList() runtime.Object { return &authorizationapi.ClusterRoleBindingList{} } -func (s *ClusterRoleBindingStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { +func (s *ClusterRoleBindingStorage) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { ret, err := s.roleBindingStorage.List(ctx, options) if ret == nil { return nil, err @@ -57,24 +58,24 @@ func (s *ClusterRoleBindingStorage) List(ctx kapi.Context, options *kapi.ListOpt return authorizationapi.ToClusterRoleBindingList(ret.(*authorizationapi.RoleBindingList)), err } -func (s *ClusterRoleBindingStorage) Get(ctx kapi.Context, name string) (runtime.Object, error) { - ret, err := s.roleBindingStorage.Get(ctx, name) +func (s *ClusterRoleBindingStorage) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + ret, err := s.roleBindingStorage.Get(ctx, name, options) if ret == nil { return nil, err } return authorizationapi.ToClusterRoleBinding(ret.(*authorizationapi.RoleBinding)), err } -func (s *ClusterRoleBindingStorage) Delete(ctx kapi.Context, name string, options *kapi.DeleteOptions) (runtime.Object, error) { - ret, err := s.roleBindingStorage.Delete(ctx, name, options) +func (s *ClusterRoleBindingStorage) Delete(ctx apirequest.Context, name string, options *metav1.DeleteOptions) (runtime.Object, bool, error) { + ret, immediate, err := s.roleBindingStorage.Delete(ctx, name, options) if ret == nil { - return nil, err + return nil, immediate, err } - return ret.(*unversioned.Status), err + return ret.(*metav1.Status), false, err } -func (s *ClusterRoleBindingStorage) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *ClusterRoleBindingStorage) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { clusterObj := obj.(*authorizationapi.ClusterRoleBinding) convertedObj := authorizationapi.ToRoleBinding(clusterObj) @@ -90,7 +91,7 @@ type convertingObjectInfo struct { rest.UpdatedObjectInfo } -func (i convertingObjectInfo) UpdatedObject(ctx kapi.Context, old runtime.Object) (runtime.Object, error) { +func (i convertingObjectInfo) UpdatedObject(ctx apirequest.Context, old runtime.Object) (runtime.Object, error) { oldObj := old.(*authorizationapi.RoleBinding) convertedOldObj := authorizationapi.ToClusterRoleBinding(oldObj) obj, err := i.UpdatedObjectInfo.UpdatedObject(ctx, convertedOldObj) @@ -102,7 +103,7 @@ func (i convertingObjectInfo) UpdatedObject(ctx kapi.Context, old runtime.Object return convertedObj, nil } -func (s *ClusterRoleBindingStorage) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *ClusterRoleBindingStorage) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { ret, created, err := s.roleBindingStorage.Update(ctx, name, convertingObjectInfo{objInfo}) if ret == nil { return nil, created, err @@ -111,13 +112,13 @@ func (s *ClusterRoleBindingStorage) Update(ctx kapi.Context, name string, objInf return authorizationapi.ToClusterRoleBinding(ret.(*authorizationapi.RoleBinding)), created, err } -func (m *ClusterRoleBindingStorage) CreateClusterRoleBindingWithEscalation(ctx kapi.Context, obj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) { +func (m *ClusterRoleBindingStorage) CreateClusterRoleBindingWithEscalation(ctx apirequest.Context, obj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) { in := authorizationapi.ToRoleBinding(obj) ret, err := m.roleBindingStorage.CreateRoleBindingWithEscalation(ctx, in) return authorizationapi.ToClusterRoleBinding(ret), err } -func (m *ClusterRoleBindingStorage) UpdateClusterRoleBindingWithEscalation(ctx kapi.Context, obj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, bool, error) { +func (m *ClusterRoleBindingStorage) UpdateClusterRoleBindingWithEscalation(ctx apirequest.Context, obj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, bool, error) { in := authorizationapi.ToRoleBinding(obj) ret, created, err := m.roleBindingStorage.UpdateRoleBindingWithEscalation(ctx, in) return authorizationapi.ToClusterRoleBinding(ret), created, err diff --git a/pkg/authorization/registry/clusterrolebinding/registry.go b/pkg/authorization/registry/clusterrolebinding/registry.go index 65c1599adfd4..ccdb4b905c64 100644 --- a/pkg/authorization/registry/clusterrolebinding/registry.go +++ b/pkg/authorization/registry/clusterrolebinding/registry.go @@ -1,8 +1,11 @@ package clusterrolebinding import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -10,15 +13,15 @@ import ( // Registry is an interface for things that know how to store RoleBindings. type Registry interface { // ListRoleBindings obtains list of policyRoleBindings that match a selector. - ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleBindingList, error) + ListRoleBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) // GetRoleBinding retrieves a specific policyRoleBinding. - GetRoleBinding(ctx kapi.Context, id string) (*authorizationapi.RoleBinding, error) + GetRoleBinding(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.RoleBinding, error) // CreateRoleBinding creates a new policyRoleBinding. - CreateRoleBinding(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) + CreateRoleBinding(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) // UpdateRoleBinding updates a policyRoleBinding. - UpdateRoleBinding(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) + UpdateRoleBinding(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) // DeleteRoleBinding deletes a policyRoleBinding. - DeleteRoleBinding(ctx kapi.Context, id string) error + DeleteRoleBinding(ctx apirequest.Context, id string) error } // Storage is an interface for a standard REST Storage backend @@ -29,9 +32,9 @@ type Storage interface { rest.GracefulDeleter // CreateRoleBinding creates a new policyRoleBinding. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - CreateRoleBindingWithEscalation(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) + CreateRoleBindingWithEscalation(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) // UpdateRoleBinding updates a policyRoleBinding. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - UpdateRoleBindingWithEscalation(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) + UpdateRoleBindingWithEscalation(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) } // storage puts strong typing around storage calls @@ -45,7 +48,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleBindingList, error) { +func (s *storage) ListRoleBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -54,7 +57,7 @@ func (s *storage) ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) return obj.(*authorizationapi.RoleBindingList), nil } -func (s *storage) CreateRoleBinding(ctx kapi.Context, binding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { +func (s *storage) CreateRoleBinding(ctx apirequest.Context, binding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { obj, err := s.Create(ctx, binding) if err != nil { return nil, err @@ -62,7 +65,7 @@ func (s *storage) CreateRoleBinding(ctx kapi.Context, binding *authorizationapi. return obj.(*authorizationapi.RoleBinding), err } -func (s *storage) UpdateRoleBinding(ctx kapi.Context, binding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { +func (s *storage) UpdateRoleBinding(ctx apirequest.Context, binding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { obj, created, err := s.Update(ctx, binding.Name, rest.DefaultUpdatedObjectInfo(binding, kapi.Scheme)) if err != nil { return nil, created, err @@ -70,15 +73,15 @@ func (s *storage) UpdateRoleBinding(ctx kapi.Context, binding *authorizationapi. return obj.(*authorizationapi.RoleBinding), created, err } -func (s *storage) GetRoleBinding(ctx kapi.Context, name string) (*authorizationapi.RoleBinding, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetRoleBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.RoleBinding, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.RoleBinding), nil } -func (s *storage) DeleteRoleBinding(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteRoleBinding(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/localresourceaccessreview/registry.go b/pkg/authorization/registry/localresourceaccessreview/registry.go index d0a96aedeb93..6ee968564a17 100644 --- a/pkg/authorization/registry/localresourceaccessreview/registry.go +++ b/pkg/authorization/registry/localresourceaccessreview/registry.go @@ -2,16 +2,16 @@ package localresourceaccessreview import ( api "github.com/openshift/origin/pkg/authorization/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type Registry interface { - CreateLocalResourceAccessReview(ctx kapi.Context, resourceAccessReview *api.LocalResourceAccessReview) (*api.ResourceAccessReviewResponse, error) + CreateLocalResourceAccessReview(ctx apirequest.Context, resourceAccessReview *api.LocalResourceAccessReview) (*api.ResourceAccessReviewResponse, error) } type Storage interface { - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) } type storage struct { @@ -22,7 +22,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) CreateLocalResourceAccessReview(ctx kapi.Context, resourceAccessReview *api.LocalResourceAccessReview) (*api.ResourceAccessReviewResponse, error) { +func (s *storage) CreateLocalResourceAccessReview(ctx apirequest.Context, resourceAccessReview *api.LocalResourceAccessReview) (*api.ResourceAccessReviewResponse, error) { obj, err := s.Create(ctx, resourceAccessReview) if err != nil { return nil, err diff --git a/pkg/authorization/registry/localresourceaccessreview/rest.go b/pkg/authorization/registry/localresourceaccessreview/rest.go index e854d5277ae9..fb0c441598b3 100644 --- a/pkg/authorization/registry/localresourceaccessreview/rest.go +++ b/pkg/authorization/registry/localresourceaccessreview/rest.go @@ -3,10 +3,10 @@ package localresourceaccessreview import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authorizationvalidation "github.com/openshift/origin/pkg/authorization/api/validation" @@ -28,7 +28,7 @@ func (r *REST) New() runtime.Object { // Create transforms a LocalRAR into an ClusterRAR that is requesting a namespace. That collapses the code paths. // LocalResourceAccessReview exists to allow clean expression of policy. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { localRAR, ok := obj.(*authorizationapi.LocalResourceAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a localResourceAccessReview: %#v", obj)) @@ -36,7 +36,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if errs := authorizationvalidation.ValidateLocalResourceAccessReview(localRAR); len(errs) > 0 { return nil, kapierrors.NewInvalid(authorizationapi.Kind(localRAR.Kind), "", errs) } - if namespace := kapi.NamespaceValue(ctx); len(namespace) == 0 { + if namespace := apirequest.NamespaceValue(ctx); len(namespace) == 0 { return nil, kapierrors.NewBadRequest(fmt.Sprintf("namespace is required on this type: %v", namespace)) } else if (len(localRAR.Action.Namespace) > 0) && (namespace != localRAR.Action.Namespace) { return nil, field.Invalid(field.NewPath("namespace"), localRAR.Action.Namespace, fmt.Sprintf("namespace must be: %v", namespace)) @@ -46,7 +46,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err clusterRAR := &authorizationapi.ResourceAccessReview{ Action: localRAR.Action, } - clusterRAR.Action.Namespace = kapi.NamespaceValue(ctx) + clusterRAR.Action.Namespace = apirequest.NamespaceValue(ctx) - return r.clusterRARRegistry.CreateResourceAccessReview(kapi.WithNamespace(ctx, ""), clusterRAR) + return r.clusterRARRegistry.CreateResourceAccessReview(apirequest.WithNamespace(ctx, ""), clusterRAR) } diff --git a/pkg/authorization/registry/localresourceaccessreview/rest_test.go b/pkg/authorization/registry/localresourceaccessreview/rest_test.go index 51a38f16ab0d..07a602afec33 100644 --- a/pkg/authorization/registry/localresourceaccessreview/rest_test.go +++ b/pkg/authorization/registry/localresourceaccessreview/rest_test.go @@ -5,11 +5,11 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" @@ -73,7 +73,7 @@ func TestConflictingNamespace(t *testing.T) { } storage := NewREST(resourceaccessreview.NewRegistry(resourceaccessreview.NewREST(authorizer, authorizer))) - ctx := kapi.WithNamespace(kapi.NewContext(), "bar") + ctx := apirequest.WithNamespace(apirequest.NewContext(), "bar") _, err := storage.Create(ctx, reviewRequest) if err == nil { t.Fatalf("unexpected non-error: %v", err) @@ -130,7 +130,7 @@ func (r *resourceAccessTest) runTest(t *testing.T) { expectedAttributes := authorizer.ToDefaultAuthorizationAttributes(nil, r.reviewRequest.Action.Namespace, r.reviewRequest.Action) - ctx := kapi.WithNamespace(kapi.WithUser(kapi.NewContext(), &user.DefaultInfo{}), r.reviewRequest.Action.Namespace) + ctx := apirequest.WithNamespace(apirequest.WithUser(apirequest.NewContext(), &user.DefaultInfo{}), r.reviewRequest.Action.Namespace) obj, err := storage.Create(ctx, r.reviewRequest) if err != nil && len(r.authorizer.err) == 0 { t.Fatalf("unexpected error: %v", err) diff --git a/pkg/authorization/registry/localsubjectaccessreview/registry.go b/pkg/authorization/registry/localsubjectaccessreview/registry.go index 081ad1a88548..cb02cc685fbe 100644 --- a/pkg/authorization/registry/localsubjectaccessreview/registry.go +++ b/pkg/authorization/registry/localsubjectaccessreview/registry.go @@ -2,16 +2,16 @@ package localsubjectaccessreview import ( api "github.com/openshift/origin/pkg/authorization/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type Registry interface { - CreateLocalSubjectAccessReview(ctx kapi.Context, subjectAccessReview *api.LocalSubjectAccessReview) (*api.SubjectAccessReviewResponse, error) + CreateLocalSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *api.LocalSubjectAccessReview) (*api.SubjectAccessReviewResponse, error) } type Storage interface { - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) } type storage struct { @@ -22,7 +22,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) CreateLocalSubjectAccessReview(ctx kapi.Context, subjectAccessReview *api.LocalSubjectAccessReview) (*api.SubjectAccessReviewResponse, error) { +func (s *storage) CreateLocalSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *api.LocalSubjectAccessReview) (*api.SubjectAccessReviewResponse, error) { obj, err := s.Create(ctx, subjectAccessReview) if err != nil { return nil, err diff --git a/pkg/authorization/registry/localsubjectaccessreview/rest.go b/pkg/authorization/registry/localsubjectaccessreview/rest.go index 317193e15dd3..d11699ef9e3e 100644 --- a/pkg/authorization/registry/localsubjectaccessreview/rest.go +++ b/pkg/authorization/registry/localsubjectaccessreview/rest.go @@ -3,10 +3,10 @@ package localsubjectaccessreview import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authorizationvalidation "github.com/openshift/origin/pkg/authorization/api/validation" @@ -28,7 +28,7 @@ func (r *REST) New() runtime.Object { // Create transforms a LocalSAR into an ClusterSAR that is requesting a namespace. That collapses the code paths. // LocalSubjectAccessReview exists to allow clean expression of policy. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { localSAR, ok := obj.(*authorizationapi.LocalSubjectAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a localSubjectAccessReview: %#v", obj)) @@ -36,7 +36,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if errs := authorizationvalidation.ValidateLocalSubjectAccessReview(localSAR); len(errs) > 0 { return nil, kapierrors.NewInvalid(authorizationapi.Kind(localSAR.Kind), "", errs) } - if namespace := kapi.NamespaceValue(ctx); len(namespace) == 0 { + if namespace := apirequest.NamespaceValue(ctx); len(namespace) == 0 { return nil, kapierrors.NewBadRequest(fmt.Sprintf("namespace is required on this type: %v", namespace)) } else if (len(localSAR.Action.Namespace) > 0) && (namespace != localSAR.Action.Namespace) { return nil, field.Invalid(field.NewPath("namespace"), localSAR.Action.Namespace, fmt.Sprintf("namespace must be: %v", namespace)) @@ -49,7 +49,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err Groups: localSAR.Groups, Scopes: localSAR.Scopes, } - clusterSAR.Action.Namespace = kapi.NamespaceValue(ctx) + clusterSAR.Action.Namespace = apirequest.NamespaceValue(ctx) - return r.clusterSARRegistry.CreateSubjectAccessReview(kapi.WithNamespace(ctx, ""), clusterSAR) + return r.clusterSARRegistry.CreateSubjectAccessReview(apirequest.WithNamespace(ctx, ""), clusterSAR) } diff --git a/pkg/authorization/registry/localsubjectaccessreview/rest_test.go b/pkg/authorization/registry/localsubjectaccessreview/rest_test.go index 31a03adc2abb..69ecbb57fbf9 100644 --- a/pkg/authorization/registry/localsubjectaccessreview/rest_test.go +++ b/pkg/authorization/registry/localsubjectaccessreview/rest_test.go @@ -5,11 +5,11 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" @@ -85,7 +85,7 @@ func TestConflictingNamespace(t *testing.T) { } storage := NewREST(subjectaccessreview.NewRegistry(subjectaccessreview.NewREST(authorizer))) - ctx := kapi.WithNamespace(kapi.NewContext(), "bar") + ctx := apirequest.WithNamespace(apirequest.NewContext(), "bar") _, err := storage.Create(ctx, reviewRequest) if err == nil { t.Fatalf("unexpected non-error: %v", err) @@ -264,11 +264,11 @@ func (r *subjectAccessTest) runTest(t *testing.T) { EvaluationError: r.authorizer.err, } - ctx := kapi.WithNamespace(kapi.NewContext(), r.reviewRequest.Action.Namespace) + ctx := apirequest.WithNamespace(apirequest.NewContext(), r.reviewRequest.Action.Namespace) if r.requestingUser != nil { - ctx = kapi.WithUser(ctx, r.requestingUser) + ctx = apirequest.WithUser(ctx, r.requestingUser) } else { - ctx = kapi.WithUser(ctx, &user.DefaultInfo{Name: "dummy"}) + ctx = apirequest.WithUser(ctx, &user.DefaultInfo{Name: "dummy"}) } obj, err := storage.Create(ctx, r.reviewRequest) diff --git a/pkg/authorization/registry/policy/etcd/etcd.go b/pkg/authorization/registry/policy/etcd/etcd.go index f68c62904aa9..56408e737b7d 100644 --- a/pkg/authorization/registry/policy/etcd/etcd.go +++ b/pkg/authorization/registry/policy/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/policy" diff --git a/pkg/authorization/registry/policy/registry.go b/pkg/authorization/registry/policy/registry.go index c33fbe7e671a..d31e7cf71916 100644 --- a/pkg/authorization/registry/policy/registry.go +++ b/pkg/authorization/registry/policy/registry.go @@ -1,9 +1,12 @@ package policy import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -11,21 +14,21 @@ import ( // Registry is an interface for things that know how to store Policies. type Registry interface { // ListPolicies obtains list of policies that match a selector. - ListPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyList, error) + ListPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyList, error) // GetPolicy retrieves a specific policy. - GetPolicy(ctx kapi.Context, id string) (*authorizationapi.Policy, error) + GetPolicy(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.Policy, error) // CreatePolicy creates a new policy. - CreatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error + CreatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error // UpdatePolicy updates a policy. - UpdatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error + UpdatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error // DeletePolicy deletes a policy. - DeletePolicy(ctx kapi.Context, id string) error + DeletePolicy(ctx apirequest.Context, id string) error } type WatchingRegistry interface { Registry // WatchPolicies watches policies. - WatchPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // Storage is an interface for a standard REST Storage backend @@ -44,7 +47,7 @@ func NewRegistry(s Storage) WatchingRegistry { return &storage{s} } -func (s *storage) ListPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyList, error) { +func (s *storage) ListPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -53,29 +56,29 @@ func (s *storage) ListPolicies(ctx kapi.Context, options *kapi.ListOptions) (*au return obj.(*authorizationapi.PolicyList), nil } -func (s *storage) CreatePolicy(ctx kapi.Context, node *authorizationapi.Policy) error { +func (s *storage) CreatePolicy(ctx apirequest.Context, node *authorizationapi.Policy) error { _, err := s.Create(ctx, node) return err } -func (s *storage) UpdatePolicy(ctx kapi.Context, node *authorizationapi.Policy) error { +func (s *storage) UpdatePolicy(ctx apirequest.Context, node *authorizationapi.Policy) error { _, _, err := s.Update(ctx, node.Name, rest.DefaultUpdatedObjectInfo(node, kapi.Scheme)) return err } -func (s *storage) WatchPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetPolicy(ctx kapi.Context, name string) (*authorizationapi.Policy, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetPolicy(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.Policy, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.Policy), nil } -func (s *storage) DeletePolicy(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeletePolicy(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/policy/strategy.go b/pkg/authorization/registry/policy/strategy.go index 440bf8652910..5711c794fa22 100644 --- a/pkg/authorization/registry/policy/strategy.go +++ b/pkg/authorization/registry/policy/strategy.go @@ -3,12 +3,13 @@ package policy import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -41,14 +42,14 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { policy := obj.(*authorizationapi.Policy) policy.Name = authorizationapi.PolicyName } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*authorizationapi.Policy) } @@ -57,12 +58,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policy. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateLocalPolicy(obj.(*authorizationapi.Policy)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateLocalPolicyUpdate(obj.(*authorizationapi.Policy), old.(*authorizationapi.Policy)) } diff --git a/pkg/authorization/registry/policybinding/etcd/etcd.go b/pkg/authorization/registry/policybinding/etcd/etcd.go index dcf5733733e8..11f295bdb81c 100644 --- a/pkg/authorization/registry/policybinding/etcd/etcd.go +++ b/pkg/authorization/registry/policybinding/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/policybinding" diff --git a/pkg/authorization/registry/policybinding/registry.go b/pkg/authorization/registry/policybinding/registry.go index 69256a2a289c..4abc897bb245 100644 --- a/pkg/authorization/registry/policybinding/registry.go +++ b/pkg/authorization/registry/policybinding/registry.go @@ -1,9 +1,12 @@ package policybinding import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -11,21 +14,21 @@ import ( // Registry is an interface for things that know how to store PolicyBindings. type Registry interface { // ListPolicyBindings obtains list of policyBindings that match a selector. - ListPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) + ListPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) // GetPolicyBinding retrieves a specific policyBinding. - GetPolicyBinding(ctx kapi.Context, name string) (*authorizationapi.PolicyBinding, error) + GetPolicyBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.PolicyBinding, error) // CreatePolicyBinding creates a new policyBinding. - CreatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error + CreatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error // UpdatePolicyBinding updates a policyBinding. - UpdatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error + UpdatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error // DeletePolicyBinding deletes a policyBinding. - DeletePolicyBinding(ctx kapi.Context, name string) error + DeletePolicyBinding(ctx apirequest.Context, name string) error } type WatchingRegistry interface { Registry // WatchPolicyBindings watches policyBindings. - WatchPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // Storage is an interface for a standard REST Storage backend @@ -44,7 +47,7 @@ func NewRegistry(s Storage) WatchingRegistry { return &storage{s} } -func (s *storage) ListPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (s *storage) ListPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -53,29 +56,29 @@ func (s *storage) ListPolicyBindings(ctx kapi.Context, options *kapi.ListOptions return obj.(*authorizationapi.PolicyBindingList), nil } -func (s *storage) CreatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (s *storage) CreatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { _, err := s.Create(ctx, policyBinding) return err } -func (s *storage) UpdatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (s *storage) UpdatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { _, _, err := s.Update(ctx, policyBinding.Name, rest.DefaultUpdatedObjectInfo(policyBinding, kapi.Scheme)) return err } -func (s *storage) WatchPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetPolicyBinding(ctx kapi.Context, name string) (*authorizationapi.PolicyBinding, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetPolicyBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.PolicyBinding), nil } -func (s *storage) DeletePolicyBinding(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeletePolicyBinding(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/policybinding/strategy.go b/pkg/authorization/registry/policybinding/strategy.go index 6ffebe4fe55b..1116fe2ae03f 100644 --- a/pkg/authorization/registry/policybinding/strategy.go +++ b/pkg/authorization/registry/policybinding/strategy.go @@ -3,13 +3,14 @@ package policybinding import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -41,7 +42,7 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { binding := obj.(*authorizationapi.PolicyBinding) s.scrubBindingRefs(binding) @@ -61,7 +62,7 @@ func (s strategy) scrubBindingRefs(binding *authorizationapi.PolicyBinding) { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (s strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { binding := obj.(*authorizationapi.PolicyBinding) s.scrubBindingRefs(binding) @@ -72,12 +73,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policyBinding. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateLocalPolicyBinding(obj.(*authorizationapi.PolicyBinding)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateLocalPolicyBindingUpdate(obj.(*authorizationapi.PolicyBinding), old.(*authorizationapi.PolicyBinding)) } @@ -103,7 +104,7 @@ func NewEmptyPolicyBinding(namespace, policyNamespace, policyBindingName string) binding := &authorizationapi.PolicyBinding{} binding.Name = policyBindingName binding.Namespace = namespace - binding.CreationTimestamp = unversioned.Now() + binding.CreationTimestamp = metav1.Now() binding.LastModified = binding.CreationTimestamp binding.PolicyRef = kapi.ObjectReference{Name: authorizationapi.PolicyName, Namespace: policyNamespace} binding.RoleBindings = make(map[string]*authorizationapi.RoleBinding) diff --git a/pkg/authorization/registry/resourceaccessreview/registry.go b/pkg/authorization/registry/resourceaccessreview/registry.go index b5ea60565a02..7c0d6fda93cb 100644 --- a/pkg/authorization/registry/resourceaccessreview/registry.go +++ b/pkg/authorization/registry/resourceaccessreview/registry.go @@ -2,16 +2,16 @@ package resourceaccessreview import ( api "github.com/openshift/origin/pkg/authorization/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type Registry interface { - CreateResourceAccessReview(ctx kapi.Context, resourceAccessReview *api.ResourceAccessReview) (*api.ResourceAccessReviewResponse, error) + CreateResourceAccessReview(ctx apirequest.Context, resourceAccessReview *api.ResourceAccessReview) (*api.ResourceAccessReviewResponse, error) } type Storage interface { - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) } type storage struct { @@ -22,7 +22,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) CreateResourceAccessReview(ctx kapi.Context, resourceAccessReview *api.ResourceAccessReview) (*api.ResourceAccessReviewResponse, error) { +func (s *storage) CreateResourceAccessReview(ctx apirequest.Context, resourceAccessReview *api.ResourceAccessReview) (*api.ResourceAccessReviewResponse, error) { obj, err := s.Create(ctx, resourceAccessReview) if err != nil { return nil, err diff --git a/pkg/authorization/registry/resourceaccessreview/rest.go b/pkg/authorization/registry/resourceaccessreview/rest.go index 72d23bb3ad25..cf6c3aa10d01 100644 --- a/pkg/authorization/registry/resourceaccessreview/rest.go +++ b/pkg/authorization/registry/resourceaccessreview/rest.go @@ -4,11 +4,11 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/runtime" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authorizationvalidation "github.com/openshift/origin/pkg/authorization/api/validation" @@ -32,7 +32,7 @@ func (r *REST) New() runtime.Object { } // Create registers a given new ResourceAccessReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { resourceAccessReview, ok := obj.(*authorizationapi.ResourceAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a resourceAccessReview: %#v", obj)) @@ -41,7 +41,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return nil, kapierrors.NewInvalid(authorizationapi.Kind(resourceAccessReview.Kind), "", errs) } - user, ok := kapi.UserFrom(ctx) + user, ok := apirequest.UserFrom(ctx) if !ok { return nil, kapierrors.NewInternalError(errors.New("missing user on request")) } @@ -49,7 +49,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // if a namespace is present on the request, then the namespace on the on the RAR is overwritten. // This is to support backwards compatibility. To have gotten here in this state, it means that // the authorizer decided that a user could run an RAR against this namespace - if namespace := kapi.NamespaceValue(ctx); len(namespace) > 0 { + if namespace := apirequest.NamespaceValue(ctx); len(namespace) > 0 { resourceAccessReview.Action.Namespace = namespace } else if err := r.isAllowed(user, resourceAccessReview); err != nil { diff --git a/pkg/authorization/registry/resourceaccessreview/rest_test.go b/pkg/authorization/registry/resourceaccessreview/rest_test.go index f42b687718e2..c87f6600766b 100644 --- a/pkg/authorization/registry/resourceaccessreview/rest_test.go +++ b/pkg/authorization/registry/resourceaccessreview/rest_test.go @@ -5,11 +5,12 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" @@ -114,7 +115,7 @@ func (r *resourceAccessTest) runTest(t *testing.T) { expectedAttributes := authorizer.ToDefaultAuthorizationAttributes(nil, kapi.NamespaceAll, r.reviewRequest.Action) - ctx := kapi.WithNamespace(kapi.WithUser(kapi.NewContext(), &user.DefaultInfo{}), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.WithUser(apirequest.NewContext(), &user.DefaultInfo{}), kapi.NamespaceAll) obj, err := storage.Create(ctx, r.reviewRequest) if err != nil && len(r.authorizer.err) == 0 { t.Fatalf("unexpected error: %v", err) diff --git a/pkg/authorization/registry/role/policybased/virtual_storage.go b/pkg/authorization/registry/role/policybased/virtual_storage.go index b79cdfb98580..6abaad39d68f 100644 --- a/pkg/authorization/registry/role/policybased/virtual_storage.go +++ b/pkg/authorization/registry/role/policybased/virtual_storage.go @@ -5,13 +5,16 @@ import ( "fmt" "sort" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -31,11 +34,11 @@ type VirtualStorage struct { CreateStrategy rest.RESTCreateStrategy UpdateStrategy rest.RESTUpdateStrategy - Resource unversioned.GroupResource + Resource schema.GroupResource } // NewVirtualStorage creates a new REST for policies. -func NewVirtualStorage(policyStorage policyregistry.Registry, ruleResolver, cachedRuleResolver rulevalidation.AuthorizationRuleResolver, resource unversioned.GroupResource) roleregistry.Storage { +func NewVirtualStorage(policyStorage policyregistry.Registry, ruleResolver, cachedRuleResolver rulevalidation.AuthorizationRuleResolver, resource schema.GroupResource) roleregistry.Storage { return &VirtualStorage{policyStorage, ruleResolver, cachedRuleResolver, roleregistry.LocalStrategy, roleregistry.LocalStrategy, resource} } @@ -46,13 +49,13 @@ func (m *VirtualStorage) NewList() runtime.Object { return &authorizationapi.RoleList{} } -func (m *VirtualStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { - policyList, err := m.PolicyStorage.ListPolicies(ctx, &kapi.ListOptions{}) +func (m *VirtualStorage) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { + policyList, err := m.PolicyStorage.ListPolicies(ctx, &metainternal.ListOptions{}) if err != nil { return nil, err } - matcher := roleregistry.Matcher(oapi.ListOptionsToSelectors(options)) + matcher := roleregistry.Matcher(oapi.InternalListOptionsToSelectors(options)) roleList := &authorizationapi.RoleList{} for _, policy := range policyList.Items { @@ -67,8 +70,8 @@ func (m *VirtualStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runt return roleList, nil } -func (m *VirtualStorage) Get(ctx kapi.Context, name string) (runtime.Object, error) { - policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName) +func (m *VirtualStorage) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName, options) if kapierrors.IsNotFound(err) { return nil, kapierrors.NewNotFound(m.Resource, name) } @@ -84,10 +87,9 @@ func (m *VirtualStorage) Get(ctx kapi.Context, name string) (runtime.Object, err return role, nil } -// Delete(ctx api.Context, name string) (runtime.Object, error) -func (m *VirtualStorage) Delete(ctx kapi.Context, name string, options *kapi.DeleteOptions) (runtime.Object, error) { +func (m *VirtualStorage) Delete(ctx apirequest.Context, name string, options *metav1.DeleteOptions) (runtime.Object, bool, error) { if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName) + policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName, &metav1.GetOptions{}) if kapierrors.IsNotFound(err) { return kapierrors.NewNotFound(m.Resource, name) } @@ -100,25 +102,25 @@ func (m *VirtualStorage) Delete(ctx kapi.Context, name string, options *kapi.Del } delete(policy.Roles, name) - policy.LastModified = unversioned.Now() + policy.LastModified = metav1.Now() return m.PolicyStorage.UpdatePolicy(ctx, policy) }); err != nil { - return nil, err + return nil, false, err } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, true, nil } -func (m *VirtualStorage) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (m *VirtualStorage) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { return m.createRole(ctx, obj, false) } -func (m *VirtualStorage) CreateRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.Role) (*authorizationapi.Role, error) { +func (m *VirtualStorage) CreateRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.Role) (*authorizationapi.Role, error) { return m.createRole(ctx, obj, true) } -func (m *VirtualStorage) createRole(ctx kapi.Context, obj runtime.Object, allowEscalation bool) (*authorizationapi.Role, error) { +func (m *VirtualStorage) createRole(ctx apirequest.Context, obj runtime.Object, allowEscalation bool) (*authorizationapi.Role, error) { // Copy object before passing to BeforeCreate, since it mutates objCopy, err := kapi.Scheme.DeepCopy(obj) if err != nil { @@ -148,7 +150,7 @@ func (m *VirtualStorage) createRole(ctx kapi.Context, obj runtime.Object, allowE role.ResourceVersion = policy.ResourceVersion policy.Roles[role.Name] = role - policy.LastModified = unversioned.Now() + policy.LastModified = metav1.Now() return m.PolicyStorage.UpdatePolicy(ctx, policy) }); err != nil { @@ -158,20 +160,20 @@ func (m *VirtualStorage) createRole(ctx kapi.Context, obj runtime.Object, allowE return role, nil } -func (m *VirtualStorage) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (m *VirtualStorage) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return m.updateRole(ctx, name, objInfo, false) } -func (m *VirtualStorage) UpdateRoleWithEscalation(ctx kapi.Context, obj *authorizationapi.Role) (*authorizationapi.Role, bool, error) { +func (m *VirtualStorage) UpdateRoleWithEscalation(ctx apirequest.Context, obj *authorizationapi.Role) (*authorizationapi.Role, bool, error) { return m.updateRole(ctx, obj.Name, rest.DefaultUpdatedObjectInfo(obj, kapi.Scheme), true) } -func (m *VirtualStorage) updateRole(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo, allowEscalation bool) (*authorizationapi.Role, bool, error) { +func (m *VirtualStorage) updateRole(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo, allowEscalation bool) (*authorizationapi.Role, bool, error) { var updatedRole *authorizationapi.Role var roleConflicted = false // Retry if the policy update hits a conflict if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { - policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName) + policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName, &metav1.GetOptions{}) if kapierrors.IsNotFound(err) { return kapierrors.NewNotFound(m.Resource, name) } @@ -222,7 +224,7 @@ func (m *VirtualStorage) updateRole(ctx kapi.Context, name string, objInfo rest. role.ResourceVersion = policy.ResourceVersion policy.Roles[role.Name] = role - policy.LastModified = unversioned.Now() + policy.LastModified = metav1.Now() if err := m.PolicyStorage.UpdatePolicy(ctx, policy); err != nil { return err @@ -242,15 +244,15 @@ func (m *VirtualStorage) updateRole(ctx kapi.Context, name string, objInfo rest. // EnsurePolicy returns the policy object for the specified namespace. If one does not exist, it is created for you. Permission to // create, update, or delete roles in a namespace implies the ability to create a Policy object itself. -func (m *VirtualStorage) EnsurePolicy(ctx kapi.Context) (*authorizationapi.Policy, error) { - policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName) +func (m *VirtualStorage) EnsurePolicy(ctx apirequest.Context) (*authorizationapi.Policy, error) { + policy, err := m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName, &metav1.GetOptions{}) if err != nil { if !kapierrors.IsNotFound(err) { return nil, err } // if we have no policy, go ahead and make one. creating one here collapses code paths below. We only take this hit once - policy = NewEmptyPolicy(kapi.NamespaceValue(ctx)) + policy = NewEmptyPolicy(apirequest.NamespaceValue(ctx)) if err := m.PolicyStorage.CreatePolicy(ctx, policy); err != nil { // Tolerate the policy having been created in the meantime if !kapierrors.IsAlreadyExists(err) { @@ -258,7 +260,7 @@ func (m *VirtualStorage) EnsurePolicy(ctx kapi.Context) (*authorizationapi.Polic } } - policy, err = m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName) + policy, err = m.PolicyStorage.GetPolicy(ctx, authorizationapi.PolicyName, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -276,7 +278,7 @@ func NewEmptyPolicy(namespace string) *authorizationapi.Policy { policy := &authorizationapi.Policy{} policy.Name = authorizationapi.PolicyName policy.Namespace = namespace - policy.CreationTimestamp = unversioned.Now() + policy.CreationTimestamp = metav1.Now() policy.LastModified = policy.CreationTimestamp policy.Roles = make(map[string]*authorizationapi.Role) diff --git a/pkg/authorization/registry/role/policybased/virtual_storage_test.go b/pkg/authorization/registry/role/policybased/virtual_storage_test.go index a3ef6cb44d7d..f4f36bd946c7 100644 --- a/pkg/authorization/registry/role/policybased/virtual_storage_test.go +++ b/pkg/authorization/registry/role/policybased/virtual_storage_test.go @@ -4,13 +4,14 @@ import ( "reflect" "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" _ "github.com/openshift/origin/pkg/authorization/api/install" @@ -23,14 +24,14 @@ import ( func testNewClusterPolicies() []authorizationapi.ClusterPolicy { return []authorizationapi.ClusterPolicy{ { - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.ClusterRole{ "cluster-admin": { - ObjectMeta: kapi.ObjectMeta{Name: "cluster-admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "cluster-admin"}, Rules: []authorizationapi.PolicyRule{{Verbs: sets.NewString("*"), Resources: sets.NewString("*")}}, }, "admin": { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{Verbs: sets.NewString("*"), Resources: sets.NewString("*")}}, }, }, @@ -40,7 +41,7 @@ func testNewClusterPolicies() []authorizationapi.ClusterPolicy { func testNewLocalPolicies() []authorizationapi.Policy { return []authorizationapi.Policy{ { - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName, Namespace: "unittest"}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName, Namespace: "unittest"}, Roles: map[string]*authorizationapi.Role{}, }, } @@ -64,7 +65,7 @@ func TestCreateValidationError(t *testing.T) { role := &authorizationapi.Role{} - ctx := kapi.WithNamespace(kapi.NewContext(), "unittest") + ctx := apirequest.WithNamespace(apirequest.NewContext(), "unittest") _, err := storage.Create(ctx, role) if err == nil { t.Errorf("Expected validation error") @@ -75,17 +76,17 @@ func TestCreateValid(t *testing.T) { storage := makeLocalTestStorage() role := &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, } - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) obj, err := storage.Create(ctx, role) if err != nil { t.Errorf("unexpected error: %v", err) } switch r := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Got back unexpected status: %#v", r) case *authorizationapi.Role: // expected case @@ -96,9 +97,9 @@ func TestCreateValid(t *testing.T) { func TestUpdate(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) realizedRoleObj, err := storage.Create(ctx, &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, Rules: []authorizationapi.PolicyRule{ {Verbs: sets.NewString(authorizationapi.VerbAll)}, }, @@ -122,7 +123,7 @@ func TestUpdate(t *testing.T) { } switch actual := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.Role: @@ -140,9 +141,9 @@ func TestUpdate(t *testing.T) { func TestUnconditionalUpdate(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) realizedRoleObj, err := storage.Create(ctx, &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, Rules: []authorizationapi.PolicyRule{ {Verbs: sets.NewString(authorizationapi.VerbAll)}, }, @@ -167,7 +168,7 @@ func TestUnconditionalUpdate(t *testing.T) { } switch actual := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.Role: @@ -185,9 +186,9 @@ func TestUnconditionalUpdate(t *testing.T) { func TestConflictingUpdate(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) realizedRoleObj, err := storage.Create(ctx, &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, Rules: []authorizationapi.PolicyRule{ {Verbs: sets.NewString(authorizationapi.VerbAll)}, }, @@ -214,9 +215,9 @@ func TestConflictingUpdate(t *testing.T) { func TestUpdateNoOp(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) realizedRoleObj, err := storage.Create(ctx, &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, Rules: []authorizationapi.PolicyRule{ {Verbs: sets.NewString(authorizationapi.VerbAll)}, }, @@ -240,7 +241,7 @@ func TestUpdateNoOp(t *testing.T) { } switch o := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.Role: @@ -259,10 +260,10 @@ func TestUpdateError(t *testing.T) { storage := makeLocalTestStorage() role := &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, } - ctx := kapi.WithNamespace(kapi.NewContext(), "unittest") + ctx := apirequest.WithNamespace(apirequest.NewContext(), "unittest") _, _, err := storage.Update(ctx, role.Name, rest.DefaultUpdatedObjectInfo(role, kapi.Scheme)) if err == nil { t.Errorf("Missing expected error") @@ -276,8 +277,8 @@ func TestUpdateError(t *testing.T) { func TestDeleteError(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) - _, err := storage.Delete(ctx, "foo", nil) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + _, _, err := storage.Delete(ctx, "foo", nil) if err == nil { t.Errorf("expected error") @@ -289,18 +290,18 @@ func TestDeleteError(t *testing.T) { func TestDeleteValid(t *testing.T) { storage := makeLocalTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage.Create(ctx, &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{Name: "my-role"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-role"}, }) - obj, err := storage.Delete(ctx, "my-role", nil) + obj, _, err := storage.Delete(ctx, "my-role", nil) if err != nil { t.Fatalf("unexpected error: %v", err) } switch r := obj.(type) { - case *unversioned.Status: + case *metav1.Status: if r.Status != "Success" { t.Fatalf("Got back non-success status: %#v", r) } diff --git a/pkg/authorization/registry/role/registry.go b/pkg/authorization/registry/role/registry.go index 75e6348b51c8..f7fe407cfff9 100644 --- a/pkg/authorization/registry/role/registry.go +++ b/pkg/authorization/registry/role/registry.go @@ -1,8 +1,11 @@ package role import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -10,15 +13,15 @@ import ( // Registry is an interface for things that know how to store Roles. type Registry interface { // ListRoles obtains list of policyRoles that match a selector. - ListRoles(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleList, error) + ListRoles(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleList, error) // GetRole retrieves a specific policyRole. - GetRole(ctx kapi.Context, id string) (*authorizationapi.Role, error) + GetRole(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.Role, error) // CreateRole creates a new policyRole. - CreateRole(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) + CreateRole(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) // UpdateRole updates a policyRole. - UpdateRole(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) + UpdateRole(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) // DeleteRole deletes a policyRole. - DeleteRole(ctx kapi.Context, id string) error + DeleteRole(ctx apirequest.Context, id string) error } // Storage is an interface for a standard REST Storage backend @@ -29,9 +32,9 @@ type Storage interface { rest.GracefulDeleter // CreateRoleWithEscalation creates a new policyRole. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - CreateRoleWithEscalation(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) + CreateRoleWithEscalation(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, error) // UpdateRoleWithEscalation updates a policyRole. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - UpdateRoleWithEscalation(ctx kapi.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) + UpdateRoleWithEscalation(ctx apirequest.Context, policyRole *authorizationapi.Role) (*authorizationapi.Role, bool, error) } // storage puts strong typing around storage calls @@ -45,7 +48,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListRoles(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleList, error) { +func (s *storage) ListRoles(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -54,25 +57,25 @@ func (s *storage) ListRoles(ctx kapi.Context, options *kapi.ListOptions) (*autho return obj.(*authorizationapi.RoleList), nil } -func (s *storage) CreateRole(ctx kapi.Context, role *authorizationapi.Role) (*authorizationapi.Role, error) { +func (s *storage) CreateRole(ctx apirequest.Context, role *authorizationapi.Role) (*authorizationapi.Role, error) { obj, err := s.Create(ctx, role) return obj.(*authorizationapi.Role), err } -func (s *storage) UpdateRole(ctx kapi.Context, role *authorizationapi.Role) (*authorizationapi.Role, bool, error) { +func (s *storage) UpdateRole(ctx apirequest.Context, role *authorizationapi.Role) (*authorizationapi.Role, bool, error) { obj, created, err := s.Update(ctx, role.Name, rest.DefaultUpdatedObjectInfo(role, kapi.Scheme)) return obj.(*authorizationapi.Role), created, err } -func (s *storage) GetRole(ctx kapi.Context, name string) (*authorizationapi.Role, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetRole(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.Role, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.Role), nil } -func (s *storage) DeleteRole(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteRole(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/role/strategy.go b/pkg/authorization/registry/role/strategy.go index 3776fdf7acea..6cb30e4ecad5 100644 --- a/pkg/authorization/registry/role/strategy.go +++ b/pkg/authorization/registry/role/strategy.go @@ -3,12 +3,13 @@ package role import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -43,12 +44,12 @@ func (s strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { _ = obj.(*authorizationapi.Role) } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (s strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*authorizationapi.Role) } @@ -57,12 +58,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new role. -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateRole(obj.(*authorizationapi.Role), s.namespaced) } // ValidateUpdate is the default update validation for an end user. -func (s strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateRoleUpdate(obj.(*authorizationapi.Role), old.(*authorizationapi.Role), s.namespaced, nil) } diff --git a/pkg/authorization/registry/rolebinding/policybased/virtual_storage.go b/pkg/authorization/registry/rolebinding/policybased/virtual_storage.go index dae7e4b34ea6..428da177ad4b 100644 --- a/pkg/authorization/registry/rolebinding/policybased/virtual_storage.go +++ b/pkg/authorization/registry/rolebinding/policybased/virtual_storage.go @@ -5,13 +5,16 @@ import ( "fmt" "sort" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -29,11 +32,11 @@ type VirtualStorage struct { CreateStrategy rest.RESTCreateStrategy UpdateStrategy rest.RESTUpdateStrategy - Resource unversioned.GroupResource + Resource schema.GroupResource } // NewVirtualStorage creates a new REST for policies. -func NewVirtualStorage(bindingRegistry policybindingregistry.Registry, ruleResolver, cachedRuleResolver rulevalidation.AuthorizationRuleResolver, resource unversioned.GroupResource) rolebindingregistry.Storage { +func NewVirtualStorage(bindingRegistry policybindingregistry.Registry, ruleResolver, cachedRuleResolver rulevalidation.AuthorizationRuleResolver, resource schema.GroupResource) rolebindingregistry.Storage { return &VirtualStorage{ BindingRegistry: bindingRegistry, @@ -53,13 +56,13 @@ func (m *VirtualStorage) NewList() runtime.Object { return &authorizationapi.RoleBindingList{} } -func (m *VirtualStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { - policyBindingList, err := m.BindingRegistry.ListPolicyBindings(ctx, &kapi.ListOptions{}) +func (m *VirtualStorage) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { + policyBindingList, err := m.BindingRegistry.ListPolicyBindings(ctx, &metainternal.ListOptions{}) if err != nil { return nil, err } - matcher := rolebindingregistry.Matcher(oapi.ListOptionsToSelectors(options)) + matcher := rolebindingregistry.Matcher(oapi.InternalListOptionsToSelectors(options)) roleBindingList := &authorizationapi.RoleBindingList{} for _, policyBinding := range policyBindingList.Items { @@ -74,7 +77,7 @@ func (m *VirtualStorage) List(ctx kapi.Context, options *kapi.ListOptions) (runt return roleBindingList, nil } -func (m *VirtualStorage) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (m *VirtualStorage) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { policyBinding, err := m.getPolicyBindingOwningRoleBinding(ctx, name) if kapierrors.IsNotFound(err) { return nil, kapierrors.NewNotFound(m.Resource, name) @@ -90,7 +93,7 @@ func (m *VirtualStorage) Get(ctx kapi.Context, name string) (runtime.Object, err return binding, nil } -func (m *VirtualStorage) Delete(ctx kapi.Context, name string, options *kapi.DeleteOptions) (runtime.Object, error) { +func (m *VirtualStorage) Delete(ctx apirequest.Context, name string, options *metav1.DeleteOptions) (runtime.Object, bool, error) { if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { owningPolicyBinding, err := m.getPolicyBindingOwningRoleBinding(ctx, name) if kapierrors.IsNotFound(err) { @@ -105,25 +108,25 @@ func (m *VirtualStorage) Delete(ctx kapi.Context, name string, options *kapi.Del } delete(owningPolicyBinding.RoleBindings, name) - owningPolicyBinding.LastModified = unversioned.Now() + owningPolicyBinding.LastModified = metav1.Now() return m.BindingRegistry.UpdatePolicyBinding(ctx, owningPolicyBinding) }); err != nil { - return nil, err + return nil, false, err } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, true, nil } -func (m *VirtualStorage) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (m *VirtualStorage) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { return m.createRoleBinding(ctx, obj, false) } -func (m *VirtualStorage) CreateRoleBindingWithEscalation(ctx kapi.Context, obj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { +func (m *VirtualStorage) CreateRoleBindingWithEscalation(ctx apirequest.Context, obj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { return m.createRoleBinding(ctx, obj, true) } -func (m *VirtualStorage) createRoleBinding(ctx kapi.Context, obj runtime.Object, allowEscalation bool) (*authorizationapi.RoleBinding, error) { +func (m *VirtualStorage) createRoleBinding(ctx apirequest.Context, obj runtime.Object, allowEscalation bool) (*authorizationapi.RoleBinding, error) { // Copy object before passing to BeforeCreate, since it mutates objCopy, err := kapi.Scheme.DeepCopy(obj) if err != nil { @@ -157,7 +160,7 @@ func (m *VirtualStorage) createRoleBinding(ctx kapi.Context, obj runtime.Object, roleBinding.ResourceVersion = policyBinding.ResourceVersion policyBinding.RoleBindings[roleBinding.Name] = roleBinding - policyBinding.LastModified = unversioned.Now() + policyBinding.LastModified = metav1.Now() return m.BindingRegistry.UpdatePolicyBinding(ctx, policyBinding) }); err != nil { @@ -167,20 +170,20 @@ func (m *VirtualStorage) createRoleBinding(ctx kapi.Context, obj runtime.Object, return roleBinding, nil } -func (m *VirtualStorage) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (m *VirtualStorage) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return m.updateRoleBinding(ctx, name, objInfo, false) } -func (m *VirtualStorage) UpdateRoleBindingWithEscalation(ctx kapi.Context, obj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { +func (m *VirtualStorage) UpdateRoleBindingWithEscalation(ctx apirequest.Context, obj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { return m.updateRoleBinding(ctx, obj.Name, rest.DefaultUpdatedObjectInfo(obj, kapi.Scheme), true) } -func (m *VirtualStorage) updateRoleBinding(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo, allowEscalation bool) (*authorizationapi.RoleBinding, bool, error) { +func (m *VirtualStorage) updateRoleBinding(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo, allowEscalation bool) (*authorizationapi.RoleBinding, bool, error) { var updatedRoleBinding *authorizationapi.RoleBinding var roleBindingConflicted = false if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { // Do an initial fetch - old, err := m.Get(ctx, name) + old, err := m.Get(ctx, name, &metav1.GetOptions{}) if err != nil { return err } @@ -237,7 +240,7 @@ func (m *VirtualStorage) updateRoleBinding(ctx kapi.Context, name string, objInf roleBinding.ResourceVersion = policyBinding.ResourceVersion policyBinding.RoleBindings[roleBinding.Name] = roleBinding - policyBinding.LastModified = unversioned.Now() + policyBinding.LastModified = metav1.Now() if err := m.BindingRegistry.UpdatePolicyBinding(ctx, policyBinding); err != nil { return err @@ -264,7 +267,7 @@ func (m *VirtualStorage) roleForEscalationCheck(binding authorizationinterfaces. return m.RuleResolver.GetRole(binding) } -func (m *VirtualStorage) confirmNoEscalation(ctx kapi.Context, roleBinding *authorizationapi.RoleBinding) error { +func (m *VirtualStorage) confirmNoEscalation(ctx apirequest.Context, roleBinding *authorizationapi.RoleBinding) error { modifyingRole, err := m.roleForEscalationCheck(authorizationinterfaces.NewLocalRoleBindingAdapter(roleBinding)) if err != nil { return err @@ -274,15 +277,15 @@ func (m *VirtualStorage) confirmNoEscalation(ctx kapi.Context, roleBinding *auth } // ensurePolicyBindingToMaster returns a PolicyBinding object that has a PolicyRef pointing to the Policy in the passed namespace. -func (m *VirtualStorage) ensurePolicyBindingToMaster(ctx kapi.Context, policyNamespace, policyBindingName string) (*authorizationapi.PolicyBinding, error) { - policyBinding, err := m.BindingRegistry.GetPolicyBinding(ctx, policyBindingName) +func (m *VirtualStorage) ensurePolicyBindingToMaster(ctx apirequest.Context, policyNamespace, policyBindingName string) (*authorizationapi.PolicyBinding, error) { + policyBinding, err := m.BindingRegistry.GetPolicyBinding(ctx, policyBindingName, &metav1.GetOptions{}) if err != nil { if !kapierrors.IsNotFound(err) { return nil, err } // if we have no policyBinding, go ahead and make one. creating one here collapses code paths below. We only take this hit once - policyBinding = policybindingregistry.NewEmptyPolicyBinding(kapi.NamespaceValue(ctx), policyNamespace, policyBindingName) + policyBinding = policybindingregistry.NewEmptyPolicyBinding(apirequest.NamespaceValue(ctx), policyNamespace, policyBindingName) if err := m.BindingRegistry.CreatePolicyBinding(ctx, policyBinding); err != nil { // Tolerate the policybinding having been created in the meantime if !kapierrors.IsAlreadyExists(err) { @@ -290,7 +293,7 @@ func (m *VirtualStorage) ensurePolicyBindingToMaster(ctx kapi.Context, policyNam } } - policyBinding, err = m.BindingRegistry.GetPolicyBinding(ctx, policyBindingName) + policyBinding, err = m.BindingRegistry.GetPolicyBinding(ctx, policyBindingName, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -304,14 +307,14 @@ func (m *VirtualStorage) ensurePolicyBindingToMaster(ctx kapi.Context, policyNam } // getPolicyBindingForPolicy returns a PolicyBinding that points to the specified policyNamespace. It will autocreate ONLY if policyNamespace equals the master namespace -func (m *VirtualStorage) getPolicyBindingForPolicy(ctx kapi.Context, policyNamespace string, allowAutoProvision bool) (*authorizationapi.PolicyBinding, error) { +func (m *VirtualStorage) getPolicyBindingForPolicy(ctx apirequest.Context, policyNamespace string, allowAutoProvision bool) (*authorizationapi.PolicyBinding, error) { // we can autocreate a PolicyBinding object if the RoleBinding is for the master namespace OR if we've been explicitly told to create the policying binding. // the latter happens during priming if (policyNamespace == "") || allowAutoProvision { return m.ensurePolicyBindingToMaster(ctx, policyNamespace, authorizationapi.GetPolicyBindingName(policyNamespace)) } - policyBinding, err := m.BindingRegistry.GetPolicyBinding(ctx, authorizationapi.GetPolicyBindingName(policyNamespace)) + policyBinding, err := m.BindingRegistry.GetPolicyBinding(ctx, authorizationapi.GetPolicyBindingName(policyNamespace), &metav1.GetOptions{}) if err != nil { return nil, err } @@ -323,8 +326,8 @@ func (m *VirtualStorage) getPolicyBindingForPolicy(ctx kapi.Context, policyNames return policyBinding, nil } -func (m *VirtualStorage) getPolicyBindingOwningRoleBinding(ctx kapi.Context, bindingName string) (*authorizationapi.PolicyBinding, error) { - policyBindingList, err := m.BindingRegistry.ListPolicyBindings(ctx, &kapi.ListOptions{}) +func (m *VirtualStorage) getPolicyBindingOwningRoleBinding(ctx apirequest.Context, bindingName string) (*authorizationapi.PolicyBinding, error) { + policyBindingList, err := m.BindingRegistry.ListPolicyBindings(ctx, &metainternal.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/authorization/registry/rolebinding/policybased/virtual_storage_test.go b/pkg/authorization/registry/rolebinding/policybased/virtual_storage_test.go index 45589fcdc7d9..dc9e196589b9 100644 --- a/pkg/authorization/registry/rolebinding/policybased/virtual_storage_test.go +++ b/pkg/authorization/registry/rolebinding/policybased/virtual_storage_test.go @@ -6,13 +6,14 @@ import ( "strings" "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" _ "github.com/openshift/origin/pkg/authorization/api/install" @@ -25,14 +26,14 @@ import ( func testNewClusterPolicies() []authorizationapi.ClusterPolicy { return []authorizationapi.ClusterPolicy{ { - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.PolicyName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.PolicyName}, Roles: map[string]*authorizationapi.ClusterRole{ "cluster-admin": { - ObjectMeta: kapi.ObjectMeta{Name: "cluster-admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "cluster-admin"}, Rules: []authorizationapi.PolicyRule{{Verbs: sets.NewString("*"), Resources: sets.NewString("*")}}, }, "admin": { - ObjectMeta: kapi.ObjectMeta{Name: "admin"}, + ObjectMeta: metav1.ObjectMeta{Name: "admin"}, Rules: []authorizationapi.PolicyRule{{Verbs: sets.NewString("*"), Resources: sets.NewString("*")}}, }, }, @@ -43,10 +44,10 @@ func testNewClusterPolicies() []authorizationapi.ClusterPolicy { func testNewClusterBindings() []authorizationapi.ClusterPolicyBinding { return []authorizationapi.ClusterPolicyBinding{ { - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.ClusterPolicyBindingName}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.ClusterPolicyBindingName}, RoleBindings: map[string]*authorizationapi.ClusterRoleBinding{ "cluster-admins": { - ObjectMeta: kapi.ObjectMeta{Name: "cluster-admins"}, + ObjectMeta: metav1.ObjectMeta{Name: "cluster-admins"}, RoleRef: kapi.ObjectReference{Name: "cluster-admin"}, Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemUserKind, Name: "system:admin"}}, }, @@ -57,7 +58,7 @@ func testNewClusterBindings() []authorizationapi.ClusterPolicyBinding { func testNewLocalBindings() []authorizationapi.PolicyBinding { return []authorizationapi.PolicyBinding{ { - ObjectMeta: kapi.ObjectMeta{Name: authorizationapi.GetPolicyBindingName("unittest"), Namespace: "unittest"}, + ObjectMeta: metav1.ObjectMeta{Name: authorizationapi.GetPolicyBindingName("unittest"), Namespace: "unittest"}, RoleBindings: map[string]*authorizationapi.RoleBinding{}, }, } @@ -84,7 +85,7 @@ func TestCreateValidationError(t *testing.T) { storage := makeTestStorage() roleBinding := &authorizationapi.RoleBinding{} - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) _, err := storage.Create(ctx, roleBinding) if err == nil { t.Errorf("Expected validation error") @@ -94,18 +95,18 @@ func TestCreateValidationError(t *testing.T) { func TestCreateValidAutoCreateMasterPolicyBindings(t *testing.T) { storage := makeTestStorage() roleBinding := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, } - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) obj, err := storage.Create(ctx, roleBinding) if err != nil { t.Errorf("unexpected error: %v", err) } switch r := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Got back unexpected status: %#v", r) case *authorizationapi.RoleBinding: // expected case @@ -115,12 +116,12 @@ func TestCreateValidAutoCreateMasterPolicyBindings(t *testing.T) { } func TestCreateValid(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() roleBinding := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, } @@ -130,7 +131,7 @@ func TestCreateValid(t *testing.T) { } switch obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Got back unexpected status: %#v", obj) case *authorizationapi.RoleBinding: // expected case @@ -140,11 +141,11 @@ func TestCreateValid(t *testing.T) { } func TestUpdate(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -165,7 +166,7 @@ func TestUpdate(t *testing.T) { } switch actual := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.RoleBinding: @@ -182,11 +183,11 @@ func TestUpdate(t *testing.T) { } func TestUnconditionalUpdate(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -208,7 +209,7 @@ func TestUnconditionalUpdate(t *testing.T) { } switch actual := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.RoleBinding: @@ -225,11 +226,11 @@ func TestUnconditionalUpdate(t *testing.T) { } func TestConflictingUpdate(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -252,11 +253,11 @@ func TestConflictingUpdate(t *testing.T) { } func TestUpdateNoOp(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -276,7 +277,7 @@ func TestUpdateNoOp(t *testing.T) { } switch o := obj.(type) { - case *unversioned.Status: + case *metav1.Status: t.Errorf("Unexpected operation error: %v", obj) case *authorizationapi.RoleBinding: @@ -292,11 +293,11 @@ func TestUpdateNoOp(t *testing.T) { } func TestUpdateError(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-different"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-different"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -306,7 +307,7 @@ func TestUpdateError(t *testing.T) { original := obj.(*authorizationapi.RoleBinding) roleBinding := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-roleBinding", ResourceVersion: original.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{Name: "my-roleBinding", ResourceVersion: original.ResourceVersion}, RoleRef: kapi.ObjectReference{Name: "admin"}, } @@ -321,11 +322,11 @@ func TestUpdateError(t *testing.T) { } func TestUpdateCannotChangeRoleRefError(t *testing.T) { - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) storage := makeTestStorage() obj, err := storage.Create(ctx, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-different"}, + ObjectMeta: metav1.ObjectMeta{Name: "my-different"}, RoleRef: kapi.ObjectReference{Name: "admin"}, }) if err != nil { @@ -335,7 +336,7 @@ func TestUpdateCannotChangeRoleRefError(t *testing.T) { original := obj.(*authorizationapi.RoleBinding) roleBinding := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "my-different", ResourceVersion: original.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{Name: "my-different", ResourceVersion: original.ResourceVersion}, RoleRef: kapi.ObjectReference{Name: "cluster-admin"}, } @@ -355,8 +356,8 @@ func TestDeleteError(t *testing.T) { bindingRegistry.Err = errors.New("Sample Error") storage := NewVirtualStorage(bindingRegistry, rulevalidation.NewDefaultRuleResolver(&test.PolicyRegistry{}, bindingRegistry, &test.ClusterPolicyRegistry{}, &test.ClusterPolicyBindingRegistry{}), nil, authorizationapi.Resource("rolebinding")) - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) - _, err := storage.Delete(ctx, "foo", nil) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), "unittest"), &user.DefaultInfo{Name: "system:admin"}) + _, _, err := storage.Delete(ctx, "foo", nil) if err != bindingRegistry.Err { t.Errorf("unexpected error: %v", err) } @@ -365,14 +366,14 @@ func TestDeleteError(t *testing.T) { func TestDeleteValid(t *testing.T) { storage := makeClusterTestStorage() - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), ""), &user.DefaultInfo{Name: "system:admin"}) - obj, err := storage.Delete(ctx, "cluster-admins", nil) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), ""), &user.DefaultInfo{Name: "system:admin"}) + obj, _, err := storage.Delete(ctx, "cluster-admins", nil) if err != nil { t.Fatalf("unexpected error: %v", err) } switch r := obj.(type) { - case *unversioned.Status: + case *metav1.Status: if r.Status != "Success" { t.Fatalf("Got back non-success status: %#v", r) } diff --git a/pkg/authorization/registry/rolebinding/registry.go b/pkg/authorization/registry/rolebinding/registry.go index 6eb8ba8e0a2c..21a6db3aea11 100644 --- a/pkg/authorization/registry/rolebinding/registry.go +++ b/pkg/authorization/registry/rolebinding/registry.go @@ -1,8 +1,11 @@ package rolebinding import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -10,15 +13,15 @@ import ( // Registry is an interface for things that know how to store RoleBindings. type Registry interface { // ListRoleBindings obtains list of policyRoleBindings that match a selector. - ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleBindingList, error) + ListRoleBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) // GetRoleBinding retrieves a specific policyRoleBinding. - GetRoleBinding(ctx kapi.Context, id string) (*authorizationapi.RoleBinding, error) + GetRoleBinding(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.RoleBinding, error) // CreateRoleBinding creates a new policyRoleBinding. - CreateRoleBinding(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) + CreateRoleBinding(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) // UpdateRoleBinding updates a policyRoleBinding. - UpdateRoleBinding(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) + UpdateRoleBinding(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) // DeleteRoleBinding deletes a policyRoleBinding. - DeleteRoleBinding(ctx kapi.Context, id string) error + DeleteRoleBinding(ctx apirequest.Context, id string) error } // Storage is an interface for a standard REST Storage backend @@ -29,9 +32,9 @@ type Storage interface { rest.GracefulDeleter // CreateRoleBindingWithEscalation creates a new policyRoleBinding. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - CreateRoleBindingWithEscalation(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) + CreateRoleBindingWithEscalation(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) // UpdateRoleBindingWithEscalation updates a policyRoleBinding. Skipping the escalation check should only be done during bootstrapping procedures where no users are currently bound. - UpdateRoleBindingWithEscalation(ctx kapi.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) + UpdateRoleBindingWithEscalation(ctx apirequest.Context, policyRoleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) } // storage puts strong typing around storage calls @@ -45,7 +48,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.RoleBindingList, error) { +func (s *storage) ListRoleBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -54,25 +57,25 @@ func (s *storage) ListRoleBindings(ctx kapi.Context, options *kapi.ListOptions) return obj.(*authorizationapi.RoleBindingList), nil } -func (s *storage) CreateRoleBinding(ctx kapi.Context, rolebinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { +func (s *storage) CreateRoleBinding(ctx apirequest.Context, rolebinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { obj, err := s.Create(ctx, rolebinding) return obj.(*authorizationapi.RoleBinding), err } -func (s *storage) UpdateRoleBinding(ctx kapi.Context, rolebinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { +func (s *storage) UpdateRoleBinding(ctx apirequest.Context, rolebinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, bool, error) { obj, created, err := s.Update(ctx, rolebinding.Name, rest.DefaultUpdatedObjectInfo(rolebinding, kapi.Scheme)) return obj.(*authorizationapi.RoleBinding), created, err } -func (s *storage) GetRoleBinding(ctx kapi.Context, name string) (*authorizationapi.RoleBinding, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetRoleBinding(ctx apirequest.Context, name string, options *metav1.GetOptions) (*authorizationapi.RoleBinding, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*authorizationapi.RoleBinding), nil } -func (s *storage) DeleteRoleBinding(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteRoleBinding(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/authorization/registry/rolebinding/strategy.go b/pkg/authorization/registry/rolebinding/strategy.go index afec9b43b91f..b696967b2d93 100644 --- a/pkg/authorization/registry/rolebinding/strategy.go +++ b/pkg/authorization/registry/rolebinding/strategy.go @@ -3,12 +3,13 @@ package rolebinding import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -43,12 +44,12 @@ func (s strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { _ = obj.(*authorizationapi.RoleBinding) } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (s strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*authorizationapi.RoleBinding) } @@ -57,12 +58,12 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new role. -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateRoleBinding(obj.(*authorizationapi.RoleBinding), s.namespaced) } // ValidateUpdate is the default update validation for an end user. -func (s strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateRoleBindingUpdate(obj.(*authorizationapi.RoleBinding), old.(*authorizationapi.RoleBinding), s.namespaced) } diff --git a/pkg/authorization/registry/rolebindingrestriction/etcd/etcd.go b/pkg/authorization/registry/rolebindingrestriction/etcd/etcd.go index 66c00adf0863..c49b059d2693 100644 --- a/pkg/authorization/registry/rolebindingrestriction/etcd/etcd.go +++ b/pkg/authorization/registry/rolebindingrestriction/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/rolebindingrestriction" diff --git a/pkg/authorization/registry/rolebindingrestriction/strategy.go b/pkg/authorization/registry/rolebindingrestriction/strategy.go index 0468073bf443..ea7157874587 100644 --- a/pkg/authorization/registry/rolebindingrestriction/strategy.go +++ b/pkg/authorization/registry/rolebindingrestriction/strategy.go @@ -3,12 +3,14 @@ package rolebindingrestriction import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/api/validation" @@ -16,10 +18,10 @@ import ( type strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } -var Strategy = strategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = strategy{kapi.Scheme, names.SimpleNameGenerator} func (strategy) NamespaceScoped() bool { return true @@ -33,12 +35,12 @@ func (strategy) AllowUnconditionalUpdate() bool { return false } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { _ = obj.(*authorizationapi.RoleBindingRestriction) } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*authorizationapi.RoleBindingRestriction) _ = old.(*authorizationapi.RoleBindingRestriction) } @@ -47,11 +49,11 @@ func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { func (strategy) Canonicalize(obj runtime.Object) { } -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateRoleBindingRestriction(obj.(*authorizationapi.RoleBindingRestriction)) } -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateRoleBindingRestrictionUpdate(obj.(*authorizationapi.RoleBindingRestriction), old.(*authorizationapi.RoleBindingRestriction)) } diff --git a/pkg/authorization/registry/selfsubjectrulesreview/storage.go b/pkg/authorization/registry/selfsubjectrulesreview/storage.go index 5149c13cd051..c578d7dbfc35 100644 --- a/pkg/authorization/registry/selfsubjectrulesreview/storage.go +++ b/pkg/authorization/registry/selfsubjectrulesreview/storage.go @@ -3,11 +3,11 @@ package selfsubjectrulesreview import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -30,16 +30,16 @@ func (r *REST) New() runtime.Object { } // Create registers a given new ResourceAccessReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { rulesReview, ok := obj.(*authorizationapi.SelfSubjectRulesReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a SelfSubjectRulesReview: %#v", obj)) } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return nil, kapierrors.NewBadRequest(fmt.Sprintf("namespace is required on this type: %v", namespace)) } - callingUser, exists := kapi.UserFrom(ctx) + callingUser, exists := apirequest.UserFrom(ctx) if !exists { return nil, kapierrors.NewBadRequest(fmt.Sprintf("user missing from context")) } @@ -60,7 +60,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err userToCheck.Extra[authorizationapi.ScopesKey] = rulesReview.Spec.Scopes } - rules, errors := subjectrulesreview.GetEffectivePolicyRules(kapi.WithUser(ctx, userToCheck), r.ruleResolver, r.clusterPolicyGetter) + rules, errors := subjectrulesreview.GetEffectivePolicyRules(apirequest.WithUser(ctx, userToCheck), r.ruleResolver, r.clusterPolicyGetter) ret := &authorizationapi.SelfSubjectRulesReview{ Status: authorizationapi.SubjectRulesReviewStatus{ diff --git a/pkg/authorization/registry/subjectaccessreview/registry.go b/pkg/authorization/registry/subjectaccessreview/registry.go index 8960d86d4494..7374686f09c9 100644 --- a/pkg/authorization/registry/subjectaccessreview/registry.go +++ b/pkg/authorization/registry/subjectaccessreview/registry.go @@ -2,16 +2,16 @@ package subjectaccessreview import ( api "github.com/openshift/origin/pkg/authorization/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type Registry interface { - CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *api.SubjectAccessReview) (*api.SubjectAccessReviewResponse, error) + CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *api.SubjectAccessReview) (*api.SubjectAccessReviewResponse, error) } type Storage interface { - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) } type storage struct { @@ -22,7 +22,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *api.SubjectAccessReview) (*api.SubjectAccessReviewResponse, error) { +func (s *storage) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *api.SubjectAccessReview) (*api.SubjectAccessReviewResponse, error) { obj, err := s.Create(ctx, subjectAccessReview) if err != nil { return nil, err diff --git a/pkg/authorization/registry/subjectaccessreview/rest.go b/pkg/authorization/registry/subjectaccessreview/rest.go index 9502a9b72cde..6303c31e535f 100644 --- a/pkg/authorization/registry/subjectaccessreview/rest.go +++ b/pkg/authorization/registry/subjectaccessreview/rest.go @@ -4,11 +4,11 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/runtime" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authorizationvalidation "github.com/openshift/origin/pkg/authorization/api/validation" @@ -31,7 +31,7 @@ func (r *REST) New() runtime.Object { } // Create registers a given new ResourceAccessReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { subjectAccessReview, ok := obj.(*authorizationapi.SubjectAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a subjectAccessReview: %#v", obj)) @@ -40,7 +40,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return nil, kapierrors.NewInvalid(authorizationapi.Kind(subjectAccessReview.Kind), "", errs) } - requestingUser, ok := kapi.UserFrom(ctx) + requestingUser, ok := apirequest.UserFrom(ctx) if !ok { return nil, kapierrors.NewInternalError(errors.New("missing user on request")) } @@ -48,7 +48,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // if a namespace is present on the request, then the namespace on the on the SAR is overwritten. // This is to support backwards compatibility. To have gotten here in this state, it means that // the authorizer decided that a user could run an SAR against this namespace - if namespace := kapi.NamespaceValue(ctx); len(namespace) > 0 { + if namespace := apirequest.NamespaceValue(ctx); len(namespace) > 0 { subjectAccessReview.Action.Namespace = namespace } else if err := r.isAllowed(requestingUser, subjectAccessReview); err != nil { @@ -60,7 +60,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err var userToCheck *user.DefaultInfo if (len(subjectAccessReview.User) == 0) && (len(subjectAccessReview.Groups) == 0) { // if no user or group was specified, use the info from the context - ctxUser, exists := kapi.UserFrom(ctx) + ctxUser, exists := apirequest.UserFrom(ctx) if !exists { return nil, kapierrors.NewBadRequest("user missing from context") } diff --git a/pkg/authorization/registry/subjectaccessreview/rest_test.go b/pkg/authorization/registry/subjectaccessreview/rest_test.go index 58662d559ac2..bc72e4cb23b7 100644 --- a/pkg/authorization/registry/subjectaccessreview/rest_test.go +++ b/pkg/authorization/registry/subjectaccessreview/rest_test.go @@ -5,11 +5,12 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" @@ -239,11 +240,11 @@ func (r *subjectAccessTest) runTest(t *testing.T) { EvaluationError: r.authorizer.err, } - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), kapi.NamespaceAll) if r.requestingUser != nil { - ctx = kapi.WithUser(ctx, r.requestingUser) + ctx = apirequest.WithUser(ctx, r.requestingUser) } else { - ctx = kapi.WithUser(ctx, &user.DefaultInfo{Name: "dummy"}) + ctx = apirequest.WithUser(ctx, &user.DefaultInfo{Name: "dummy"}) } obj, err := storage.Create(ctx, r.reviewRequest) diff --git a/pkg/authorization/registry/subjectrulesreview/storage.go b/pkg/authorization/registry/subjectrulesreview/storage.go index 55d47929c62c..62e9cd0ad4c2 100644 --- a/pkg/authorization/registry/subjectrulesreview/storage.go +++ b/pkg/authorization/registry/subjectrulesreview/storage.go @@ -4,11 +4,11 @@ import ( "fmt" "sort" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -30,12 +30,12 @@ func (r *REST) New() runtime.Object { } // Create registers a given new ResourceAccessReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { rulesReview, ok := obj.(*authorizationapi.SubjectRulesReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a SubjectRulesReview: %#v", obj)) } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return nil, kapierrors.NewBadRequest(fmt.Sprintf("namespace is required on this type: %v", namespace)) } @@ -49,7 +49,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err userToCheck.Extra[authorizationapi.ScopesKey] = rulesReview.Spec.Scopes } - rules, errors := GetEffectivePolicyRules(kapi.WithUser(ctx, userToCheck), r.ruleResolver, r.clusterPolicyGetter) + rules, errors := GetEffectivePolicyRules(apirequest.WithUser(ctx, userToCheck), r.ruleResolver, r.clusterPolicyGetter) ret := &authorizationapi.SubjectRulesReview{ Status: authorizationapi.SubjectRulesReviewStatus{ @@ -64,12 +64,12 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return ret, nil } -func GetEffectivePolicyRules(ctx kapi.Context, ruleResolver rulevalidation.AuthorizationRuleResolver, clusterPolicyGetter client.ClusterPolicyLister) ([]authorizationapi.PolicyRule, []error) { - namespace := kapi.NamespaceValue(ctx) +func GetEffectivePolicyRules(ctx apirequest.Context, ruleResolver rulevalidation.AuthorizationRuleResolver, clusterPolicyGetter client.ClusterPolicyLister) ([]authorizationapi.PolicyRule, []error) { + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return nil, []error{kapierrors.NewBadRequest(fmt.Sprintf("namespace is required on this type: %v", namespace))} } - user, exists := kapi.UserFrom(ctx) + user, exists := apirequest.UserFrom(ctx) if !exists { return nil, []error{kapierrors.NewBadRequest(fmt.Sprintf("user missing from context"))} } diff --git a/pkg/authorization/registry/test/clusterpolicy.go b/pkg/authorization/registry/test/clusterpolicy.go index 4aa510739c05..c396f9d997c9 100644 --- a/pkg/authorization/registry/test/clusterpolicy.go +++ b/pkg/authorization/registry/test/clusterpolicy.go @@ -4,9 +4,11 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/watch" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -29,23 +31,27 @@ func NewClusterPolicyRegistry(policies []authorizationapi.ClusterPolicy, err err return &ClusterPolicyRegistry{policyMap, err} } -func (r *ClusterPolicyRegistry) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { - return r.ListClusterPolicies(kapi.NewContext(), &options) +func (r *ClusterPolicyRegistry) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyList, error) { + var internalOptions metainternal.ListOptions + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &internalOptions, nil); err != nil { + return nil, err + } + return r.ListClusterPolicies(apirequest.NewContext(), &internalOptions) } -func (r *ClusterPolicyRegistry) Get(name string) (*authorizationapi.ClusterPolicy, error) { - return r.GetClusterPolicy(kapi.NewContext(), name) +func (r *ClusterPolicyRegistry) Get(name string, options metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { + return r.GetClusterPolicy(apirequest.NewContext(), name, &options) } // ListClusterPolicies obtains list of ListClusterPolicy that match a selector. -func (r *ClusterPolicyRegistry) ListClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { +func (r *ClusterPolicyRegistry) ListClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) list := make([]authorizationapi.ClusterPolicy, 0) - if namespace == kapi.NamespaceAll { + if namespace == metav1.NamespaceAll { for _, curr := range r.clusterPolicies { for _, policy := range curr { list = append(list, policy) @@ -67,12 +73,12 @@ func (r *ClusterPolicyRegistry) ListClusterPolicies(ctx kapi.Context, options *k } // GetClusterPolicy retrieves a specific policy. -func (r *ClusterPolicyRegistry) GetClusterPolicy(ctx kapi.Context, id string) (*authorizationapi.ClusterPolicy, error) { +func (r *ClusterPolicyRegistry) GetClusterPolicy(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return nil, errors.New("invalid request. Namespace parameter disallowed.") } @@ -87,16 +93,16 @@ func (r *ClusterPolicyRegistry) GetClusterPolicy(ctx kapi.Context, id string) (* } // CreateClusterPolicy creates a new policy. -func (r *ClusterPolicyRegistry) CreateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error { +func (r *ClusterPolicyRegistry) CreateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } - if existing, _ := r.GetClusterPolicy(ctx, policy.Name); existing != nil { + if existing, _ := r.GetClusterPolicy(ctx, policy.Name, &metav1.GetOptions{}); existing != nil { return kapierrors.NewAlreadyExists(authorizationapi.Resource("ClusterPolicy"), policy.Name) } @@ -106,16 +112,16 @@ func (r *ClusterPolicyRegistry) CreateClusterPolicy(ctx kapi.Context, policy *au } // UpdateClusterPolicy updates a policy. -func (r *ClusterPolicyRegistry) UpdateClusterPolicy(ctx kapi.Context, policy *authorizationapi.ClusterPolicy) error { +func (r *ClusterPolicyRegistry) UpdateClusterPolicy(ctx apirequest.Context, policy *authorizationapi.ClusterPolicy) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } - if existing, _ := r.GetClusterPolicy(ctx, policy.Name); existing == nil { + if existing, _ := r.GetClusterPolicy(ctx, policy.Name, &metav1.GetOptions{}); existing == nil { return kapierrors.NewNotFound(authorizationapi.Resource("clusterpolicy"), policy.Name) } @@ -125,12 +131,12 @@ func (r *ClusterPolicyRegistry) UpdateClusterPolicy(ctx kapi.Context, policy *au } // DeleteClusterPolicy deletes a policy. -func (r *ClusterPolicyRegistry) DeleteClusterPolicy(ctx kapi.Context, id string) error { +func (r *ClusterPolicyRegistry) DeleteClusterPolicy(ctx apirequest.Context, id string) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } @@ -143,7 +149,7 @@ func (r *ClusterPolicyRegistry) DeleteClusterPolicy(ctx kapi.Context, id string) return nil } -func (r *ClusterPolicyRegistry) WatchClusterPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *ClusterPolicyRegistry) WatchClusterPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, errors.New("unsupported action for test registry") } diff --git a/pkg/authorization/registry/test/clusterpolicybinding.go b/pkg/authorization/registry/test/clusterpolicybinding.go index 928b98978449..21edcf781b99 100644 --- a/pkg/authorization/registry/test/clusterpolicybinding.go +++ b/pkg/authorization/registry/test/clusterpolicybinding.go @@ -4,9 +4,11 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/watch" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -27,23 +29,27 @@ func NewClusterPolicyBindingRegistry(bindings []authorizationapi.ClusterPolicyBi return &ClusterPolicyBindingRegistry{bindingMap, err} } -func (r *ClusterPolicyBindingRegistry) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { - return r.ListClusterPolicyBindings(kapi.NewContext(), &options) +func (r *ClusterPolicyBindingRegistry) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { + var internalOptions metainternal.ListOptions + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &internalOptions, nil); err != nil { + return nil, err + } + return r.ListClusterPolicyBindings(apirequest.NewContext(), &internalOptions) } -func (r *ClusterPolicyBindingRegistry) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { - return r.GetClusterPolicyBinding(kapi.NewContext(), name) +func (r *ClusterPolicyBindingRegistry) Get(name string, options metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) { + return r.GetClusterPolicyBinding(apirequest.NewContext(), name, &options) } // ListClusterPolicyBindings obtains list of clusterPolicyBindings that match a selector. -func (r *ClusterPolicyBindingRegistry) ListClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { +func (r *ClusterPolicyBindingRegistry) ListClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) list := make([]authorizationapi.ClusterPolicyBinding, 0) - if namespace == kapi.NamespaceAll { + if namespace == metav1.NamespaceAll { for _, curr := range r.clusterPolicyBindings { for _, binding := range curr { list = append(list, binding) @@ -65,12 +71,12 @@ func (r *ClusterPolicyBindingRegistry) ListClusterPolicyBindings(ctx kapi.Contex } // GetClusterPolicyBinding retrieves a specific policyBinding. -func (r *ClusterPolicyBindingRegistry) GetClusterPolicyBinding(ctx kapi.Context, id string) (*authorizationapi.ClusterPolicyBinding, error) { +func (r *ClusterPolicyBindingRegistry) GetClusterPolicyBinding(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return nil, errors.New("invalid request. Namespace parameter disallowed.") } @@ -85,16 +91,16 @@ func (r *ClusterPolicyBindingRegistry) GetClusterPolicyBinding(ctx kapi.Context, } // CreateClusterPolicyBinding creates a new policyBinding. -func (r *ClusterPolicyBindingRegistry) CreateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { +func (r *ClusterPolicyBindingRegistry) CreateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } - if existing, _ := r.GetClusterPolicyBinding(ctx, policyBinding.Name); existing != nil { + if existing, _ := r.GetClusterPolicyBinding(ctx, policyBinding.Name, &metav1.GetOptions{}); existing != nil { return kapierrors.NewAlreadyExists(authorizationapi.Resource("clusterpolicybinding"), policyBinding.Name) } @@ -104,16 +110,16 @@ func (r *ClusterPolicyBindingRegistry) CreateClusterPolicyBinding(ctx kapi.Conte } // UpdateClusterPolicyBinding updates a policyBinding. -func (r *ClusterPolicyBindingRegistry) UpdateClusterPolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { +func (r *ClusterPolicyBindingRegistry) UpdateClusterPolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.ClusterPolicyBinding) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } - if existing, _ := r.GetClusterPolicyBinding(ctx, policyBinding.Name); existing == nil { + if existing, _ := r.GetClusterPolicyBinding(ctx, policyBinding.Name, &metav1.GetOptions{}); existing == nil { return kapierrors.NewNotFound(authorizationapi.Resource("clusterpolicybinding"), policyBinding.Name) } @@ -123,12 +129,12 @@ func (r *ClusterPolicyBindingRegistry) UpdateClusterPolicyBinding(ctx kapi.Conte } // DeleteClusterPolicyBinding deletes a policyBinding. -func (r *ClusterPolicyBindingRegistry) DeleteClusterPolicyBinding(ctx kapi.Context, id string) error { +func (r *ClusterPolicyBindingRegistry) DeleteClusterPolicyBinding(ctx apirequest.Context, id string) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) != 0 { return errors.New("invalid request. Namespace parameter disallowed.") } @@ -141,7 +147,7 @@ func (r *ClusterPolicyBindingRegistry) DeleteClusterPolicyBinding(ctx kapi.Conte return nil } -func (r *ClusterPolicyBindingRegistry) WatchClusterPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *ClusterPolicyBindingRegistry) WatchClusterPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, errors.New("unsupported action for test registry") } diff --git a/pkg/authorization/registry/test/policy.go b/pkg/authorization/registry/test/policy.go index 6f014f5bb8f4..de271ebff77f 100644 --- a/pkg/authorization/registry/test/policy.go +++ b/pkg/authorization/registry/test/policy.go @@ -4,8 +4,10 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" policyregistry "github.com/openshift/origin/pkg/authorization/registry/policy" @@ -37,24 +39,28 @@ type policyLister struct { namespace string } -func (s policyLister) List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) { - return s.registry.ListPolicies(kapi.WithNamespace(kapi.NewContext(), s.namespace), &options) +func (s policyLister) List(options metav1.ListOptions) (*authorizationapi.PolicyList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.registry.ListPolicies(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), &optint) } -func (s policyLister) Get(name string) (*authorizationapi.Policy, error) { - return s.registry.GetPolicy(kapi.WithNamespace(kapi.NewContext(), s.namespace), name) +func (s policyLister) Get(name string, options metav1.GetOptions) (*authorizationapi.Policy, error) { + return s.registry.GetPolicy(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), name, &options) } // ListPolicies obtains a list of policies that match a selector. -func (r *PolicyRegistry) ListPolicies(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyList, error) { +func (r *PolicyRegistry) ListPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyList, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) list := make([]authorizationapi.Policy, 0) - if namespace == kapi.NamespaceAll { + if namespace == metav1.NamespaceAll { for _, curr := range r.policies { for _, policy := range curr { list = append(list, policy) @@ -76,12 +82,12 @@ func (r *PolicyRegistry) ListPolicies(ctx kapi.Context, options *kapi.ListOption } // GetPolicy retrieves a specific policy. -func (r *PolicyRegistry) GetPolicy(ctx kapi.Context, id string) (*authorizationapi.Policy, error) { +func (r *PolicyRegistry) GetPolicy(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.Policy, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return nil, errors.New("invalid request. Namespace parameter required.") } @@ -96,16 +102,16 @@ func (r *PolicyRegistry) GetPolicy(ctx kapi.Context, id string) (*authorizationa } // CreatePolicy creates a new policy. -func (r *PolicyRegistry) CreatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error { +func (r *PolicyRegistry) CreatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } - if existing, _ := r.GetPolicy(ctx, policy.Name); existing != nil { + if existing, _ := r.GetPolicy(ctx, policy.Name, &metav1.GetOptions{}); existing != nil { return fmt.Errorf("Policy %v::%v already exists", namespace, policy.Name) } @@ -115,16 +121,16 @@ func (r *PolicyRegistry) CreatePolicy(ctx kapi.Context, policy *authorizationapi } // UpdatePolicy updates a policy. -func (r *PolicyRegistry) UpdatePolicy(ctx kapi.Context, policy *authorizationapi.Policy) error { +func (r *PolicyRegistry) UpdatePolicy(ctx apirequest.Context, policy *authorizationapi.Policy) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } - if existing, _ := r.GetPolicy(ctx, policy.Name); existing == nil { + if existing, _ := r.GetPolicy(ctx, policy.Name, &metav1.GetOptions{}); existing == nil { return fmt.Errorf("Policy %v::%v not found", namespace, policy.Name) } @@ -134,12 +140,12 @@ func (r *PolicyRegistry) UpdatePolicy(ctx kapi.Context, policy *authorizationapi } // DeletePolicy deletes a policy. -func (r *PolicyRegistry) DeletePolicy(ctx kapi.Context, id string) error { +func (r *PolicyRegistry) DeletePolicy(ctx apirequest.Context, id string) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } @@ -152,7 +158,7 @@ func (r *PolicyRegistry) DeletePolicy(ctx kapi.Context, id string) error { return nil } -func (r *PolicyRegistry) WatchPolicies(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *PolicyRegistry) WatchPolicies(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, errors.New("unsupported action for test registry") } diff --git a/pkg/authorization/registry/test/policybinding.go b/pkg/authorization/registry/test/policybinding.go index aaba9a9bcd38..8a3c5252d172 100644 --- a/pkg/authorization/registry/test/policybinding.go +++ b/pkg/authorization/registry/test/policybinding.go @@ -4,9 +4,11 @@ import ( "errors" "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/watch" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationapi "github.com/openshift/origin/pkg/authorization/api" policybindingregistry "github.com/openshift/origin/pkg/authorization/registry/policybinding" @@ -38,24 +40,28 @@ type policyBindingLister struct { namespace string } -func (s policyBindingLister) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { - return s.registry.ListPolicyBindings(kapi.WithNamespace(kapi.NewContext(), s.namespace), &options) +func (s policyBindingLister) List(options metav1.ListOptions) (*authorizationapi.PolicyBindingList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.registry.ListPolicyBindings(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), &optint) } -func (s policyBindingLister) Get(name string) (*authorizationapi.PolicyBinding, error) { - return s.registry.GetPolicyBinding(kapi.WithNamespace(kapi.NewContext(), s.namespace), name) +func (s policyBindingLister) Get(name string, options metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { + return s.registry.GetPolicyBinding(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), name, &options) } // ListPolicyBindings obtains a list of policyBinding that match a selector. -func (r *PolicyBindingRegistry) ListPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (r *PolicyBindingRegistry) ListPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) list := make([]authorizationapi.PolicyBinding, 0) - if namespace == kapi.NamespaceAll { + if namespace == metav1.NamespaceAll { for _, curr := range r.policyBindings { for _, binding := range curr { list = append(list, binding) @@ -77,12 +83,12 @@ func (r *PolicyBindingRegistry) ListPolicyBindings(ctx kapi.Context, options *ka } // GetPolicyBinding retrieves a specific policyBinding. -func (r *PolicyBindingRegistry) GetPolicyBinding(ctx kapi.Context, id string) (*authorizationapi.PolicyBinding, error) { +func (r *PolicyBindingRegistry) GetPolicyBinding(ctx apirequest.Context, id string, options *metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { if r.Err != nil { return nil, r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return nil, errors.New("invalid request. Namespace parameter required.") } @@ -97,16 +103,16 @@ func (r *PolicyBindingRegistry) GetPolicyBinding(ctx kapi.Context, id string) (* } // CreatePolicyBinding creates a new policyBinding. -func (r *PolicyBindingRegistry) CreatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (r *PolicyBindingRegistry) CreatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } - if existing, _ := r.GetPolicyBinding(ctx, policyBinding.Name); existing != nil { + if existing, _ := r.GetPolicyBinding(ctx, policyBinding.Name, &metav1.GetOptions{}); existing != nil { return fmt.Errorf("PolicyBinding %v::%v already exists", namespace, policyBinding.Name) } @@ -116,16 +122,16 @@ func (r *PolicyBindingRegistry) CreatePolicyBinding(ctx kapi.Context, policyBind } // UpdatePolicyBinding updates a policyBinding. -func (r *PolicyBindingRegistry) UpdatePolicyBinding(ctx kapi.Context, policyBinding *authorizationapi.PolicyBinding) error { +func (r *PolicyBindingRegistry) UpdatePolicyBinding(ctx apirequest.Context, policyBinding *authorizationapi.PolicyBinding) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } - if existing, _ := r.GetPolicyBinding(ctx, policyBinding.Name); existing == nil { + if existing, _ := r.GetPolicyBinding(ctx, policyBinding.Name, &metav1.GetOptions{}); existing == nil { return kapierrors.NewNotFound(authorizationapi.Resource("policybinding"), policyBinding.Name) } @@ -135,12 +141,12 @@ func (r *PolicyBindingRegistry) UpdatePolicyBinding(ctx kapi.Context, policyBind } // DeletePolicyBinding deletes a policyBinding. -func (r *PolicyBindingRegistry) DeletePolicyBinding(ctx kapi.Context, id string) error { +func (r *PolicyBindingRegistry) DeletePolicyBinding(ctx apirequest.Context, id string) error { if r.Err != nil { return r.Err } - namespace := kapi.NamespaceValue(ctx) + namespace := apirequest.NamespaceValue(ctx) if len(namespace) == 0 { return errors.New("invalid request. Namespace parameter required.") } @@ -153,7 +159,7 @@ func (r *PolicyBindingRegistry) DeletePolicyBinding(ctx kapi.Context, id string) return nil } -func (r *PolicyBindingRegistry) WatchPolicyBindings(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *PolicyBindingRegistry) WatchPolicyBindings(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, errors.New("unsupported action for test registry") } diff --git a/pkg/authorization/rulevalidation/compact_rules.go b/pkg/authorization/rulevalidation/compact_rules.go index fbdff625705c..b5721c4d04a4 100644 --- a/pkg/authorization/rulevalidation/compact_rules.go +++ b/pkg/authorization/rulevalidation/compact_rules.go @@ -4,9 +4,9 @@ import ( "fmt" "reflect" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -16,7 +16,7 @@ import ( func CompactRules(rules []authorizationapi.PolicyRule) ([]authorizationapi.PolicyRule, error) { compacted := make([]authorizationapi.PolicyRule, 0, len(rules)) - simpleRules := map[unversioned.GroupResource]*authorizationapi.PolicyRule{} + simpleRules := map[schema.GroupResource]*authorizationapi.PolicyRule{} for _, rule := range rules { if resource, isSimple := isSimpleResourceRule(&rule); isSimple { if existingRule, ok := simpleRules[resource]; ok { @@ -53,8 +53,8 @@ func CompactRules(rules []authorizationapi.PolicyRule) ([]authorizationapi.Polic } // isSimpleResourceRule returns true if the given rule contains verbs, a single resource, a single API group, and no other values -func isSimpleResourceRule(rule *authorizationapi.PolicyRule) (unversioned.GroupResource, bool) { - resource := unversioned.GroupResource{} +func isSimpleResourceRule(rule *authorizationapi.PolicyRule) (schema.GroupResource, bool) { + resource := schema.GroupResource{} // If we have "complex" rule attributes, return early without allocations or expensive comparisons if len(rule.ResourceNames) > 0 || len(rule.NonResourceURLs) > 0 || rule.AttributeRestrictions != nil { @@ -70,6 +70,6 @@ func isSimpleResourceRule(rule *authorizationapi.PolicyRule) (unversioned.GroupR if !reflect.DeepEqual(simpleRule, rule) { return resource, false } - resource = unversioned.GroupResource{Group: rule.APIGroups[0], Resource: rule.Resources.List()[0]} + resource = schema.GroupResource{Group: rule.APIGroups[0], Resource: rule.Resources.List()[0]} return resource, true } diff --git a/pkg/authorization/rulevalidation/compact_rules_test.go b/pkg/authorization/rulevalidation/compact_rules_test.go index ed8e39dcc55c..0b88a53af48f 100644 --- a/pkg/authorization/rulevalidation/compact_rules_test.go +++ b/pkg/authorization/rulevalidation/compact_rules_test.go @@ -5,9 +5,9 @@ import ( "sort" "testing" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/authorization/api" ) @@ -142,63 +142,63 @@ func TestIsSimpleResourceRule(t *testing.T) { testcases := map[string]struct { Rule api.PolicyRule Simple bool - Resource unversioned.GroupResource + Resource schema.GroupResource }{ "simple, no verbs": { Rule: api.PolicyRule{Verbs: sets.NewString(), APIGroups: []string{""}, Resources: sets.NewString("builds")}, Simple: true, - Resource: unversioned.GroupResource{Group: "", Resource: "builds"}, + Resource: schema.GroupResource{Group: "", Resource: "builds"}, }, "simple, one verb": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString("builds")}, Simple: true, - Resource: unversioned.GroupResource{Group: "", Resource: "builds"}, + Resource: schema.GroupResource{Group: "", Resource: "builds"}, }, "simple, multi verb": { Rule: api.PolicyRule{Verbs: sets.NewString("get", "list"), APIGroups: []string{""}, Resources: sets.NewString("builds")}, Simple: true, - Resource: unversioned.GroupResource{Group: "", Resource: "builds"}, + Resource: schema.GroupResource{Group: "", Resource: "builds"}, }, "complex, empty": { Rule: api.PolicyRule{}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, no group": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{}, Resources: sets.NewString("builds")}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, multi group": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{"a", "b"}, Resources: sets.NewString("builds")}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, no resource": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString()}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, multi resource": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString("builds", "images")}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, resource names": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString("builds"), ResourceNames: sets.NewString("foo")}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, attribute restrictions": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString("builds"), AttributeRestrictions: &api.IsPersonalSubjectAccessReview{}}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, "complex, non-resource urls": { Rule: api.PolicyRule{Verbs: sets.NewString("get"), APIGroups: []string{""}, Resources: sets.NewString("builds"), NonResourceURLs: sets.NewString("/")}, Simple: false, - Resource: unversioned.GroupResource{}, + Resource: schema.GroupResource{}, }, } diff --git a/pkg/authorization/rulevalidation/find_rules.go b/pkg/authorization/rulevalidation/find_rules.go index ad38c817fef8..e64767dcb683 100644 --- a/pkg/authorization/rulevalidation/find_rules.go +++ b/pkg/authorization/rulevalidation/find_rules.go @@ -1,11 +1,11 @@ package rulevalidation import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" + kapierror "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authorizationinterfaces "github.com/openshift/origin/pkg/authorization/interfaces" @@ -34,12 +34,12 @@ type AuthorizationRuleResolver interface { } func (a *DefaultRuleResolver) GetRoleBindings(namespace string) ([]authorizationinterfaces.RoleBinding, error) { - clusterBindings, clusterErr := a.clusterBindingLister.List(kapi.ListOptions{}) + clusterBindings, clusterErr := a.clusterBindingLister.List(metav1.ListOptions{}) var namespaceBindings *authorizationapi.PolicyBindingList var namespaceErr error if a.bindingLister != nil && len(namespace) > 0 { - namespaceBindings, namespaceErr = a.bindingLister.PolicyBindings(namespace).List(kapi.ListOptions{}) + namespaceBindings, namespaceErr = a.bindingLister.PolicyBindings(namespace).List(metav1.ListOptions{}) } // return all loaded bindings @@ -83,7 +83,7 @@ func (a *DefaultRuleResolver) GetRole(roleBinding authorizationinterfaces.RoleBi name := roleBinding.RoleRef().Name if len(namespace) == 0 { - policy, err := a.clusterPolicyGetter.Get(authorizationapi.PolicyName) + policy, err := a.clusterPolicyGetter.Get(authorizationapi.PolicyName, metav1.GetOptions{}) if kapierror.IsNotFound(err) { return nil, kapierror.NewNotFound(authorizationapi.Resource("role"), name) } @@ -103,7 +103,7 @@ func (a *DefaultRuleResolver) GetRole(roleBinding authorizationinterfaces.RoleBi return nil, kapierror.NewNotFound(authorizationapi.Resource("role"), name) } - policy, err := a.policyGetter.Policies(namespace).Get(authorizationapi.PolicyName) + policy, err := a.policyGetter.Policies(namespace).Get(authorizationapi.PolicyName, metav1.GetOptions{}) if kapierror.IsNotFound(err) { return nil, kapierror.NewNotFound(authorizationapi.Resource("role"), name) } diff --git a/pkg/authorization/rulevalidation/policy_comparator.go b/pkg/authorization/rulevalidation/policy_comparator.go index 1ec84f9556b4..b25cddf9824c 100644 --- a/pkg/authorization/rulevalidation/policy_comparator.go +++ b/pkg/authorization/rulevalidation/policy_comparator.go @@ -3,7 +3,7 @@ package rulevalidation import ( "strings" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/rulevalidation/policy_comparator_test.go b/pkg/authorization/rulevalidation/policy_comparator_test.go index af086ab3765a..834bd8f2e2a8 100644 --- a/pkg/authorization/rulevalidation/policy_comparator_test.go +++ b/pkg/authorization/rulevalidation/policy_comparator_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/authorization/rulevalidation/user_covers.go b/pkg/authorization/rulevalidation/user_covers.go index 5e4e014c711a..50afd91a2ba5 100644 --- a/pkg/authorization/rulevalidation/user_covers.go +++ b/pkg/authorization/rulevalidation/user_covers.go @@ -7,21 +7,21 @@ import ( "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + apirequest "k8s.io/apiserver/pkg/endpoints/request" authorizationinterfaces "github.com/openshift/origin/pkg/authorization/interfaces" ) -func ConfirmNoEscalation(ctx kapi.Context, resource unversioned.GroupResource, name string, ruleResolver, cachedRuleResolver AuthorizationRuleResolver, role authorizationinterfaces.Role) error { +func ConfirmNoEscalation(ctx apirequest.Context, resource schema.GroupResource, name string, ruleResolver, cachedRuleResolver AuthorizationRuleResolver, role authorizationinterfaces.Role) error { var ruleResolutionErrors []error - user, ok := kapi.UserFrom(ctx) + user, ok := apirequest.UserFrom(ctx) if !ok { return kapierrors.NewForbidden(resource, name, fmt.Errorf("no user provided in context")) } - namespace, _ := kapi.NamespaceFrom(ctx) + namespace, _ := apirequest.NamespaceFrom(ctx) // if a cached resolver is provided, attempt to verify coverage against the cache, then fall back to the normal // path otherwise diff --git a/pkg/bootstrap/docker/dockermachine/helper.go b/pkg/bootstrap/docker/dockermachine/helper.go index b4a8965d1136..8e537876c39d 100644 --- a/pkg/bootstrap/docker/dockermachine/helper.go +++ b/pkg/bootstrap/docker/dockermachine/helper.go @@ -15,7 +15,7 @@ import ( docker "github.com/fsouza/go-dockerclient" "github.com/openshift/origin/pkg/bootstrap/docker/errors" "github.com/openshift/origin/pkg/bootstrap/docker/localcmd" - "k8s.io/kubernetes/pkg/util/net" + "k8s.io/apimachinery/pkg/util/net" ) const ( diff --git a/pkg/bootstrap/docker/openshift/admin.go b/pkg/bootstrap/docker/openshift/admin.go index 38dfe17976ab..843a8fa5ce48 100644 --- a/pkg/bootstrap/docker/openshift/admin.go +++ b/pkg/bootstrap/docker/openshift/admin.go @@ -9,10 +9,11 @@ import ( "path/filepath" "github.com/golang/glog" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/serviceaccount" "github.com/openshift/origin/pkg/bootstrap/docker/errors" "github.com/openshift/origin/pkg/client" @@ -34,7 +35,7 @@ const ( // InstallRegistry checks whether a registry is installed and installs one if not already installed func (h *Helper) InstallRegistry(kubeClient kclientset.Interface, f *clientcmd.Factory, configDir, images, pvDir string, out, errout io.Writer) error { - _, err := kubeClient.Core().Services(DefaultNamespace).Get(SvcDockerRegistry) + _, err := kubeClient.Core().Services(DefaultNamespace).Get(SvcDockerRegistry, metav1.GetOptions{}) if err == nil { // If there's no error, the registry already exists return nil @@ -80,7 +81,7 @@ func (h *Helper) InstallRegistry(kubeClient kclientset.Interface, f *clientcmd.F // InstallRouter installs a default router on the OpenShift server func (h *Helper) InstallRouter(kubeClient kclientset.Interface, f *clientcmd.Factory, configDir, images, hostIP string, portForwarding bool, out, errout io.Writer) error { - _, err := kubeClient.Core().Services(DefaultNamespace).Get(SvcRouter) + _, err := kubeClient.Core().Services(DefaultNamespace).Get(SvcRouter, metav1.GetOptions{}) if err == nil { // Router service already exists, nothing to do return nil @@ -100,7 +101,7 @@ func (h *Helper) InstallRouter(kubeClient kclientset.Interface, f *clientcmd.Fac } // Add router SA to privileged SCC - privilegedSCC, err := kubeClient.Core().SecurityContextConstraints().Get("privileged") + privilegedSCC, err := kubeClient.Core().SecurityContextConstraints().Get("privileged", metav1.GetOptions{}) if err != nil { return errors.NewError("cannot retrieve privileged SCC").WithCause(err).WithDetails(h.OriginLog()) } diff --git a/pkg/bootstrap/docker/openshift/helper.go b/pkg/bootstrap/docker/openshift/helper.go index 19989cd64078..b382ed3d282b 100644 --- a/pkg/bootstrap/docker/openshift/helper.go +++ b/pkg/bootstrap/docker/openshift/helper.go @@ -14,8 +14,9 @@ import ( "github.com/blang/semver" docker "github.com/fsouza/go-dockerclient" "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/util/homedir" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/homedir" "github.com/openshift/origin/pkg/bootstrap/docker/dockerhelper" "github.com/openshift/origin/pkg/bootstrap/docker/errors" @@ -427,7 +428,7 @@ func (h *Helper) Start(opt *StartOptions, out io.Writer) (string, error) { // CheckNodes determines if there is more than one node that corresponds to the // current machine and removes the one that doesn't match the default node name func (h *Helper) CheckNodes(kclient kclientset.Interface) error { - nodes, err := kclient.Core().Nodes().List(kapi.ListOptions{}) + nodes, err := kclient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { return errors.NewError("cannot retrieve nodes").WithCause(err) } diff --git a/pkg/bootstrap/docker/openshift/import.go b/pkg/bootstrap/docker/openshift/import.go index 1e73e010bd3e..effc87a484b9 100644 --- a/pkg/bootstrap/docker/openshift/import.go +++ b/pkg/bootstrap/docker/openshift/import.go @@ -4,7 +4,7 @@ import ( "bytes" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" diff --git a/pkg/bootstrap/docker/openshift/logging.go b/pkg/bootstrap/docker/openshift/logging.go index 805608701d06..9f334f7c0aa2 100644 --- a/pkg/bootstrap/docker/openshift/logging.go +++ b/pkg/bootstrap/docker/openshift/logging.go @@ -4,8 +4,9 @@ import ( "bytes" "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/bootstrap/docker/errors" "github.com/openshift/origin/pkg/client" @@ -22,7 +23,7 @@ const ( ) func instantiateTemplate(client client.Interface, mapper configcmd.Mapper, templateNamespace, templateName, targetNamespace string, params map[string]string) error { - template, err := client.Templates(templateNamespace).Get(templateName) + template, err := client.Templates(templateNamespace).Get(templateName, metav1.GetOptions{}) if err != nil { return errors.NewError("cannot retrieve template %q from namespace %q", templateName, templateNamespace).WithCause(err) } @@ -56,7 +57,7 @@ func (h *Helper) InstallLogging(f *clientcmd.Factory, publicHostname, loggerHost return errors.NewError("cannot obtain API clients").WithCause(err).WithDetails(h.OriginLog()) } - _, err = kubeClient.Core().Namespaces().Get(loggingNamespace) + _, err = kubeClient.Core().Namespaces().Get(loggingNamespace, metav1.GetOptions{}) if err == nil { // If there's no error, the logging namespace already exists and we won't initialize it return nil @@ -91,7 +92,7 @@ func (h *Helper) InstallLogging(f *clientcmd.Factory, publicHostname, loggerHost } // Label all nodes with default fluentd label - nodeList, err := kubeClient.Core().Nodes().List(kapi.ListOptions{}) + nodeList, err := kubeClient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { return errors.NewError("cannot retrieve nodes").WithCause(err).WithDetails(h.OriginLog()) } diff --git a/pkg/bootstrap/docker/openshift/login.go b/pkg/bootstrap/docker/openshift/login.go index 082f9e358613..2707f8f78f6b 100644 --- a/pkg/bootstrap/docker/openshift/login.go +++ b/pkg/bootstrap/docker/openshift/login.go @@ -9,8 +9,8 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + kclientcmd "k8s.io/client-go/tools/clientcmd" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/cmd/cli/cmd/login" "github.com/openshift/origin/pkg/cmd/cli/config" diff --git a/pkg/bootstrap/docker/openshift/metrics.go b/pkg/bootstrap/docker/openshift/metrics.go index ced58aec0192..75e6fe224d1e 100644 --- a/pkg/bootstrap/docker/openshift/metrics.go +++ b/pkg/bootstrap/docker/openshift/metrics.go @@ -3,8 +3,9 @@ package openshift import ( "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" kbatch "k8s.io/kubernetes/pkg/apis/batch" "github.com/openshift/origin/pkg/bootstrap/docker/errors" @@ -26,7 +27,7 @@ func (h *Helper) InstallMetrics(f *clientcmd.Factory, hostName, imagePrefix, ima return errors.NewError("cannot obtain API clients").WithCause(err).WithDetails(h.OriginLog()) } - _, err = kubeClient.Core().Services(infraNamespace).Get(svcMetrics) + _, err = kubeClient.Core().Services(infraNamespace).Get(svcMetrics, metav1.GetOptions{}) if err == nil { // If there's no error, the metrics service already exists return nil @@ -191,7 +192,7 @@ func metricsDeployerJob(hostName, imagePrefix, imageVersion string) *kbatch.Job deadline := int64(60 * 5) - meta := kapi.ObjectMeta{ + meta := metav1.ObjectMeta{ Name: metricsDeployerJobName, } diff --git a/pkg/bootstrap/docker/openshift/project.go b/pkg/bootstrap/docker/openshift/project.go index b37dd8b86baf..befadba634e0 100644 --- a/pkg/bootstrap/docker/openshift/project.go +++ b/pkg/bootstrap/docker/openshift/project.go @@ -4,8 +4,8 @@ import ( "io" "io/ioutil" - "k8s.io/kubernetes/pkg/api/errors" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + "k8s.io/apimachinery/pkg/api/errors" + kclientcmd "k8s.io/client-go/tools/clientcmd" "github.com/openshift/origin/pkg/cmd/cli/cmd" "github.com/openshift/origin/pkg/cmd/cli/config" diff --git a/pkg/bootstrap/docker/openshift/pvsetup.go b/pkg/bootstrap/docker/openshift/pvsetup.go index 0876aa2ecc7c..585e9a66f155 100644 --- a/pkg/bootstrap/docker/openshift/pvsetup.go +++ b/pkg/bootstrap/docker/openshift/pvsetup.go @@ -3,11 +3,12 @@ package openshift import ( "fmt" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kbatch "k8s.io/kubernetes/pkg/apis/batch" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/serviceaccount" "github.com/openshift/origin/pkg/bootstrap/docker/errors" "github.com/openshift/origin/pkg/client" @@ -85,7 +86,7 @@ func (h *Helper) SetupPersistentStorage(osclient client.Interface, kclient kclie return err } - _, err = kclient.Batch().Jobs(pvSetupNamespace).Get(pvSetupJobName) + _, err = kclient.Batch().Jobs(pvSetupNamespace).Get(pvSetupJobName, metav1.GetOptions{}) if err == nil { // Job exists, it should run to completion return nil @@ -104,7 +105,7 @@ func (h *Helper) SetupPersistentStorage(osclient client.Interface, kclient kclie func (h *Helper) ensurePVInstallerSA(osclient client.Interface, kclient kclientset.Interface) error { createSA := false - sa, err := kclient.Core().ServiceAccounts(pvSetupNamespace).Get(pvInstallerSA) + sa, err := kclient.Core().ServiceAccounts(pvSetupNamespace).Get(pvInstallerSA, metav1.GetOptions{}) if err != nil { if !kerrors.IsNotFound(err) { return errors.NewError("error retrieving installer service account (%s/%s)", pvSetupNamespace, pvInstallerSA).WithCause(err).WithDetails(h.OriginLog()) diff --git a/pkg/bootstrap/docker/up.go b/pkg/bootstrap/docker/up.go index 2fef1115fc54..c79ca42ca67d 100644 --- a/pkg/bootstrap/docker/up.go +++ b/pkg/bootstrap/docker/up.go @@ -18,11 +18,12 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + kclientcmd "k8s.io/client-go/tools/clientcmd" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/bootstrap/docker/dockerhelper" "github.com/openshift/origin/pkg/bootstrap/docker/dockermachine" @@ -677,7 +678,7 @@ func (c *ClientStartConfig) EnsureDefaultRedirectURIs(out io.Writer) error { return nil } - webConsoleOAuth, err := oc.OAuthClients().Get(defaultRedirectClient) + webConsoleOAuth, err := oc.OAuthClients().Get(defaultRedirectClient, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { fmt.Fprintf(out, "Unable to find OAuthClient %q\n", defaultRedirectClient) @@ -1250,7 +1251,7 @@ func (c *ClientStartConfig) ShouldInitializeData() bool { return true } - if _, err = kclient.Core().Services(openshift.DefaultNamespace).Get(openshift.SvcDockerRegistry); err != nil { + if _, err = kclient.Core().Services(openshift.DefaultNamespace).Get(openshift.SvcDockerRegistry, metav1.GetOptions{}); err != nil { return true } diff --git a/pkg/build/admission/buildpodutil.go b/pkg/build/admission/buildpodutil.go index 8c72c738b432..5bc5b12f7c47 100644 --- a/pkg/build/admission/buildpodutil.go +++ b/pkg/build/admission/buildpodutil.go @@ -4,33 +4,33 @@ import ( "errors" "fmt" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" ) // GetBuildFromPod returns a build object encoded in a pod's BUILD environment variable along with // its encoding version -func GetBuildFromPod(pod *kapi.Pod) (*buildapi.Build, unversioned.GroupVersion, error) { +func GetBuildFromPod(pod *kapi.Pod) (*buildapi.Build, schema.GroupVersion, error) { envVar, err := buildEnvVar(pod) if err != nil { - return nil, unversioned.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", err) + return nil, schema.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", err) } obj, groupVersionKind, err := kapi.Codecs.UniversalDecoder().Decode([]byte(envVar.Value), nil, nil) if err != nil { - return nil, unversioned.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", err) + return nil, schema.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", err) } build, ok := obj.(*buildapi.Build) if !ok { - return nil, unversioned.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", errors.New("decoded object is not of type Build")) + return nil, schema.GroupVersion{}, fmt.Errorf("unable to get build from pod: %v", errors.New("decoded object is not of type Build")) } return build, groupVersionKind.GroupVersion(), nil } // SetBuildInPod encodes a build object and sets it in a pod's BUILD environment variable -func SetBuildInPod(pod *kapi.Pod, build *buildapi.Build, groupVersion unversioned.GroupVersion) error { +func SetBuildInPod(pod *kapi.Pod, build *buildapi.Build, groupVersion schema.GroupVersion) error { envVar, err := buildEnvVar(pod) if err != nil { return fmt.Errorf("unable to set build in pod: %v", err) diff --git a/pkg/build/admission/buildpodutil_test.go b/pkg/build/admission/buildpodutil_test.go index 1666f2d9f960..a3617409676a 100644 --- a/pkg/build/admission/buildpodutil_test.go +++ b/pkg/build/admission/buildpodutil_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" u "github.com/openshift/origin/pkg/build/admission/testutil" ) @@ -31,7 +31,7 @@ func TestSetBuild(t *testing.T) { build := u.Build().WithSourceStrategy() for _, version := range []string{"v1"} { pod := u.Pod().WithEnvVar("BUILD", "foo") - groupVersion, err := unversioned.ParseGroupVersion(version) + groupVersion, err := schema.ParseGroupVersion(version) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/build/admission/config.go b/pkg/build/admission/config.go index 3bca260f6dc3..1e95bb9c2ba0 100644 --- a/pkg/build/admission/config.go +++ b/pkg/build/admission/config.go @@ -3,7 +3,7 @@ package admission import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" configapi "github.com/openshift/origin/pkg/cmd/server/api" configlatest "github.com/openshift/origin/pkg/cmd/server/api/latest" diff --git a/pkg/build/admission/config_test.go b/pkg/build/admission/config_test.go index 294541c99581..7dff45d17a62 100644 --- a/pkg/build/admission/config_test.go +++ b/pkg/build/admission/config_test.go @@ -4,7 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapiv1 "github.com/openshift/origin/pkg/cmd/server/api/v1" @@ -13,33 +14,33 @@ import ( ) type TestConfig struct { - unversioned.TypeMeta + metav1.TypeMeta Item1 string `json:"item1"` Item2 []string `json:"item2"` } type TestConfigV1 struct { - unversioned.TypeMeta + metav1.TypeMeta Item1 string `json:"item1"` Item2 []string `json:"item2"` } type OtherTestConfig2 struct { - unversioned.TypeMeta + metav1.TypeMeta Thing string `json:"thing"` } type OtherTestConfig2V2 struct { - unversioned.TypeMeta + metav1.TypeMeta Thing string `json:"thing"` } -func (obj *TestConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } -func (obj *TestConfigV1) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } -func (obj *OtherTestConfig2) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } -func (obj *OtherTestConfig2V2) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *TestConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } +func (obj *TestConfigV1) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } +func (obj *OtherTestConfig2) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } +func (obj *OtherTestConfig2V2) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } func TestReadPluginConfig(t *testing.T) { configapi.Scheme.AddKnownTypes(configapi.SchemeGroupVersion, &TestConfig{}) diff --git a/pkg/build/admission/defaults/admission_test.go b/pkg/build/admission/defaults/admission_test.go index d9e232a63dfe..b8aa3cc781e0 100644 --- a/pkg/build/admission/defaults/admission_test.go +++ b/pkg/build/admission/defaults/admission_test.go @@ -4,6 +4,7 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/api/resource" kapi "k8s.io/kubernetes/pkg/api" buildadmission "github.com/openshift/origin/pkg/build/admission" @@ -12,7 +13,6 @@ import ( buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/api/install" - "k8s.io/kubernetes/pkg/api/resource" ) func TestProxyDefaults(t *testing.T) { diff --git a/pkg/build/admission/defaults/api/install/install.go b/pkg/build/admission/defaults/api/install/install.go index 13724b43bca1..490eee0ffd6a 100644 --- a/pkg/build/admission/defaults/api/install/install.go +++ b/pkg/build/admission/defaults/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/build/admission/defaults/api" "github.com/openshift/origin/pkg/build/admission/defaults/api/v1" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/build/admission/defaults/a var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/build/admission/defaults/api/register.go b/pkg/build/admission/defaults/api/register.go index a6e6078d0433..7b8077368e4b 100644 --- a/pkg/build/admission/defaults/api/register.go +++ b/pkg/build/admission/defaults/api/register.go @@ -1,20 +1,20 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -31,4 +31,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *BuildDefaultsConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *BuildDefaultsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/build/admission/defaults/api/types.go b/pkg/build/admission/defaults/api/types.go index 46a8049bfc31..92eac1923036 100644 --- a/pkg/build/admission/defaults/api/types.go +++ b/pkg/build/admission/defaults/api/types.go @@ -1,8 +1,8 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -11,7 +11,7 @@ const BuildDefaultsPlugin = "BuildDefaults" // BuildDefaultsConfig controls the default information for Builds type BuildDefaultsConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // gitHTTPProxy is the location of the HTTPProxy for Git source GitHTTPProxy string diff --git a/pkg/build/admission/defaults/api/v1/register.go b/pkg/build/admission/defaults/api/v1/register.go index e9202107d438..4d34706bcd76 100644 --- a/pkg/build/admission/defaults/api/v1/register.go +++ b/pkg/build/admission/defaults/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -21,4 +21,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *BuildDefaultsConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *BuildDefaultsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/build/admission/defaults/api/v1/types.go b/pkg/build/admission/defaults/api/v1/types.go index 9c04f6a358e7..496e9dd93cf9 100644 --- a/pkg/build/admission/defaults/api/v1/types.go +++ b/pkg/build/admission/defaults/api/v1/types.go @@ -1,15 +1,15 @@ package v1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" buildapi "github.com/openshift/origin/pkg/build/api/v1" ) // BuildDefaultsConfig controls the default information for Builds type BuildDefaultsConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // gitHTTPProxy is the location of the HTTPProxy for Git source GitHTTPProxy string `json:"gitHTTPProxy,omitempty"` diff --git a/pkg/build/admission/defaults/api/validation/validation.go b/pkg/build/admission/defaults/api/validation/validation.go index 465c49221d57..4a2855f1840a 100644 --- a/pkg/build/admission/defaults/api/validation/validation.go +++ b/pkg/build/admission/defaults/api/validation/validation.go @@ -1,8 +1,8 @@ package validation import ( + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/build/admission/defaults/api" buildvalidation "github.com/openshift/origin/pkg/build/api/validation" diff --git a/pkg/build/admission/defaults/api/validation/validation_test.go b/pkg/build/admission/defaults/api/validation/validation_test.go index 03692e696f21..14aa81c2bb7d 100644 --- a/pkg/build/admission/defaults/api/validation/validation_test.go +++ b/pkg/build/admission/defaults/api/validation/validation_test.go @@ -3,8 +3,8 @@ package validation import ( "testing" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation/field" defaultsapi "github.com/openshift/origin/pkg/build/admission/defaults/api" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/admission/jenkinsbootstrapper/admission.go b/pkg/build/admission/jenkinsbootstrapper/admission.go index bae91b248706..de792da3d532 100644 --- a/pkg/build/admission/jenkinsbootstrapper/admission.go +++ b/pkg/build/admission/jenkinsbootstrapper/admission.go @@ -5,18 +5,19 @@ import ( "io" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/admission" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" kclient "k8s.io/kubernetes/pkg/client/unversioned" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/api/latest" authenticationclient "github.com/openshift/origin/pkg/auth/client" @@ -79,7 +80,7 @@ func (a *jenkinsBootstrapper) Admit(attributes admission.Attributes) error { } // TODO pull this from a cache. - if _, err := a.serviceClient.Services(namespace).Get(svcName); !kapierrors.IsNotFound(err) { + if _, err := a.serviceClient.Services(namespace).Get(svcName, metav1.GetOptions{}); !kapierrors.IsNotFound(err) { // if it isn't a "not found" error, return the error. Either its nil and there's nothing to do or something went really wrong return err } @@ -100,7 +101,7 @@ func (a *jenkinsBootstrapper) Admit(attributes admission.Attributes) error { bulk := &cmd.Bulk{ Mapper: &resource.Mapper{ - RESTMapper: registered.RESTMapper(), + RESTMapper: kapi.Registry.RESTMapper(), ObjectTyper: kapi.Scheme, ClientMapper: resource.ClientMapperFunc(func(mapping *meta.RESTMapping) (resource.RESTClient, error) { // TODO this is a nasty copy&paste from pkg/cmd/util/clientcmd/factory_object_mapping.go#ClientForMapping diff --git a/pkg/build/admission/jenkinsbootstrapper/admission_test.go b/pkg/build/admission/jenkinsbootstrapper/admission_test.go index 37403b8d6442..0dff5fe3140e 100644 --- a/pkg/build/admission/jenkinsbootstrapper/admission_test.go +++ b/pkg/build/admission/jenkinsbootstrapper/admission_test.go @@ -5,12 +5,13 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client/testclient" @@ -31,40 +32,40 @@ func TestAdmission(t *testing.T) { }{ { name: "disabled", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(false), validateClients: noAction, }, { name: "not a jenkins build", - attributes: admission.NewAttributesRecord(&buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Strategy: buildapi.BuildStrategy{}}}}, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(&buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Strategy: buildapi.BuildStrategy{}}}}, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), validateClients: noAction, }, { name: "not a build kind", - attributes: admission.NewAttributesRecord(&kapi.Service{}, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(&kapi.Service{}, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), validateClients: noAction, }, { name: "not a build resource", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("notbuilds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("notbuilds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), validateClients: noAction, }, { name: "subresource", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "subresource", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "subresource", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), validateClients: noAction, }, { name: "service present", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), objects: []runtime.Object{ - &kapi.Service{ObjectMeta: kapi.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, + &kapi.Service{ObjectMeta: metav1.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, }, validateClients: func(kubeClient *fake.Clientset, originClient *testclient.Fake) string { if len(kubeClient.Actions()) == 1 && kubeClient.Actions()[0].Matches("get", "services") { @@ -75,9 +76,9 @@ func TestAdmission(t *testing.T) { }, { name: "works on true", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), objects: []runtime.Object{ - &kapi.Service{ObjectMeta: kapi.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, + &kapi.Service{ObjectMeta: metav1.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, }, jenkinsEnabled: boolptr(true), validateClients: func(kubeClient *fake.Clientset, originClient *testclient.Fake) string { @@ -89,9 +90,9 @@ func TestAdmission(t *testing.T) { }, { name: "enabled default", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), objects: []runtime.Object{ - &kapi.Service{ObjectMeta: kapi.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, + &kapi.Service{ObjectMeta: metav1.ObjectMeta{Namespace: "namespace", Name: "jenkins"}}, }, validateClients: func(kubeClient *fake.Clientset, originClient *testclient.Fake) string { if len(kubeClient.Actions()) == 1 && kubeClient.Actions()[0].Matches("get", "services") { @@ -102,7 +103,7 @@ func TestAdmission(t *testing.T) { }, { name: "service missing", - attributes: admission.NewAttributesRecord(enableBuild, nil, unversioned.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), + attributes: admission.NewAttributesRecord(enableBuild, nil, schema.GroupVersionKind{}, "namespace", "name", buildapi.LegacySchemeGroupVersion.WithResource("builds"), "", admission.Create, &user.DefaultInfo{}), jenkinsEnabled: boolptr(true), objects: []runtime.Object{}, validateClients: func(kubeClient *fake.Clientset, originClient *testclient.Fake) string { diff --git a/pkg/build/admission/overrides/admission_test.go b/pkg/build/admission/overrides/admission_test.go index d1976d91aa95..8c16f5ab0b3a 100644 --- a/pkg/build/admission/overrides/admission_test.go +++ b/pkg/build/admission/overrides/admission_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" overridesapi "github.com/openshift/origin/pkg/build/admission/overrides/api" diff --git a/pkg/build/admission/overrides/api/install/install.go b/pkg/build/admission/overrides/api/install/install.go index 9256a5fe3b9f..2bba27aa5928 100644 --- a/pkg/build/admission/overrides/api/install/install.go +++ b/pkg/build/admission/overrides/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/build/admission/overrides/api" "github.com/openshift/origin/pkg/build/admission/overrides/api/v1" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/build/admission/overrides/ var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/build/admission/overrides/api/register.go b/pkg/build/admission/overrides/api/register.go index 4ae44b8fa1d3..f199f09e5541 100644 --- a/pkg/build/admission/overrides/api/register.go +++ b/pkg/build/admission/overrides/api/register.go @@ -1,20 +1,20 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -31,4 +31,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *BuildOverridesConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *BuildOverridesConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/build/admission/overrides/api/types.go b/pkg/build/admission/overrides/api/types.go index b2e127d08de1..8f492777787a 100644 --- a/pkg/build/admission/overrides/api/types.go +++ b/pkg/build/admission/overrides/api/types.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -10,7 +10,7 @@ const BuildOverridesPlugin = "BuildOverrides" // BuildOverridesConfig controls override settings for builds type BuildOverridesConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // forcePull indicates whether the build strategy should always be set to ForcePull=true ForcePull bool diff --git a/pkg/build/admission/overrides/api/v1/register.go b/pkg/build/admission/overrides/api/v1/register.go index 981280499590..604cfbab0a1b 100644 --- a/pkg/build/admission/overrides/api/v1/register.go +++ b/pkg/build/admission/overrides/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -21,4 +21,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *BuildOverridesConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *BuildOverridesConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/build/admission/overrides/api/v1/types.go b/pkg/build/admission/overrides/api/v1/types.go index 3c3732976186..30c0f013843d 100644 --- a/pkg/build/admission/overrides/api/v1/types.go +++ b/pkg/build/admission/overrides/api/v1/types.go @@ -1,14 +1,14 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" buildapi "github.com/openshift/origin/pkg/build/api/v1" ) // BuildOverridesConfig controls override settings for builds type BuildOverridesConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // forcePull indicates whether the build strategy should always be set to ForcePull=true ForcePull bool `json:"forcePull"` diff --git a/pkg/build/admission/overrides/api/validation/validation.go b/pkg/build/admission/overrides/api/validation/validation.go index 774f17f347ee..3018113feec9 100644 --- a/pkg/build/admission/overrides/api/validation/validation.go +++ b/pkg/build/admission/overrides/api/validation/validation.go @@ -1,8 +1,8 @@ package validation import ( + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/build/admission/overrides/api" buildvalidation "github.com/openshift/origin/pkg/build/api/validation" diff --git a/pkg/build/admission/overrides/api/validation/validation_test.go b/pkg/build/admission/overrides/api/validation/validation_test.go index 830715b86bf0..be850cd77d50 100644 --- a/pkg/build/admission/overrides/api/validation/validation_test.go +++ b/pkg/build/admission/overrides/api/validation/validation_test.go @@ -3,7 +3,7 @@ package validation import ( "testing" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" overridesapi "github.com/openshift/origin/pkg/build/admission/overrides/api" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/admission/secretinjector/admission.go b/pkg/build/admission/secretinjector/admission.go index bb0ddf09885d..1a0b365ce1a8 100644 --- a/pkg/build/admission/secretinjector/admission.go +++ b/pkg/build/admission/secretinjector/admission.go @@ -7,10 +7,10 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/admission" + restclient "k8s.io/client-go/rest" "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" authclient "github.com/openshift/origin/pkg/auth/client" buildapi "github.com/openshift/origin/pkg/build/api" @@ -57,7 +57,7 @@ func (si *secretInjector) Admit(attr admission.Attributes) (err error) { return nil } - secrets, err := client.Core().Secrets(namespace).List(api.ListOptions{}) + secrets, err := client.Core().Secrets(namespace).List(metav1.ListOptions{}) if err != nil { glog.V(2).Infof("secretinjector: failed to list Secrets: %v", err) return nil diff --git a/pkg/build/admission/strategyrestrictions/admission.go b/pkg/build/admission/strategyrestrictions/admission.go index 373eaca392a6..31c3c9bde2da 100644 --- a/pkg/build/admission/strategyrestrictions/admission.go +++ b/pkg/build/admission/strategyrestrictions/admission.go @@ -4,10 +4,10 @@ import ( "fmt" "io" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -16,7 +16,7 @@ import ( ) func init() { - admission.RegisterPlugin("BuildByStrategy", func(c clientset.Interface, config io.Reader) (admission.Interface, error) { + admission.RegisterPlugin("BuildByStrategy", func(config io.Reader) (admission.Interface, error) { return NewBuildByStrategy(), nil }) } @@ -69,7 +69,7 @@ func (a *buildByStrategy) Validate() error { return nil } -func resourceForStrategyType(strategy buildapi.BuildStrategy) (unversioned.GroupResource, error) { +func resourceForStrategyType(strategy buildapi.BuildStrategy) (schema.GroupResource, error) { switch { case strategy.DockerStrategy != nil && strategy.DockerStrategy.ImageOptimizationPolicy != nil && *strategy.DockerStrategy.ImageOptimizationPolicy != buildapi.ImageOptimizationNone: return buildapi.Resource(authorizationapi.OptimizedDockerBuildResource), nil @@ -82,11 +82,11 @@ func resourceForStrategyType(strategy buildapi.BuildStrategy) (unversioned.Group case strategy.JenkinsPipelineStrategy != nil: return buildapi.Resource(authorizationapi.JenkinsPipelineBuildResource), nil default: - return unversioned.GroupResource{}, fmt.Errorf("unrecognized build strategy: %#v", strategy) + return schema.GroupResource{}, fmt.Errorf("unrecognized build strategy: %#v", strategy) } } -func resourceName(objectMeta kapi.ObjectMeta) string { +func resourceName(objectMeta metav1.ObjectMeta) string { if len(objectMeta.GenerateName) > 0 { return objectMeta.GenerateName } @@ -135,13 +135,13 @@ func (a *buildByStrategy) checkBuildRequestAuthorization(req *buildapi.BuildRequ gr := attr.GetResource().GroupResource() switch { case buildapi.IsResourceOrLegacy("builds", gr): - build, err := a.client.Builds(attr.GetNamespace()).Get(req.Name) + build, err := a.client.Builds(attr.GetNamespace()).Get(req.Name, metav1.GetOptions{}) if err != nil { return admission.NewForbidden(attr, err) } return a.checkBuildAuthorization(build, attr) case buildapi.IsResourceOrLegacy("buildconfigs", gr): - build, err := a.client.BuildConfigs(attr.GetNamespace()).Get(req.Name) + build, err := a.client.BuildConfigs(attr.GetNamespace()).Get(req.Name, metav1.GetOptions{}) if err != nil { return admission.NewForbidden(attr, err) } diff --git a/pkg/build/admission/strategyrestrictions/admission_test.go b/pkg/build/admission/strategyrestrictions/admission_test.go index dc3a042a2fcf..9cf3d1ff6d83 100644 --- a/pkg/build/admission/strategyrestrictions/admission_test.go +++ b/pkg/build/admission/strategyrestrictions/admission_test.go @@ -4,13 +4,13 @@ import ( "fmt" "testing" - "k8s.io/kubernetes/pkg/admission" - kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -22,8 +22,8 @@ import ( func TestBuildAdmission(t *testing.T) { tests := []struct { name string - kind unversioned.GroupKind - resource unversioned.GroupResource + kind schema.GroupKind + resource schema.GroupResource subResource string object runtime.Object oldObject runtime.Object @@ -186,7 +186,7 @@ func TestBuildAdmission(t *testing.T) { type fakeObject struct{} -func (*fakeObject) GetObjectKind() unversioned.ObjectKind { return nil } +func (*fakeObject) GetObjectKind() schema.ObjectKind { return nil } func fakeUser() user.Info { return &user.DefaultInfo{ @@ -198,8 +198,8 @@ func fakeClient(expectedResource string, reviewResponse *authorizationapi.Subjec emptyResponse := &authorizationapi.SubjectAccessReviewResponse{} fake := &testclient.Fake{} - fake.AddReactor("create", "localsubjectaccessreviews", func(action core.Action) (handled bool, ret runtime.Object, err error) { - review, ok := action.(core.CreateAction).GetObject().(*authorizationapi.LocalSubjectAccessReview) + fake.AddReactor("create", "localsubjectaccessreviews", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + review, ok := action.(clientgotesting.CreateAction).GetObject().(*authorizationapi.LocalSubjectAccessReview) if !ok { return true, emptyResponse, fmt.Errorf("unexpected object received: %#v", review) } @@ -209,10 +209,10 @@ func fakeClient(expectedResource string, reviewResponse *authorizationapi.Subjec } return true, reviewResponse, nil }) - fake.AddReactor("get", "buildconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("get", "buildconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, obj, nil }) - fake.AddReactor("get", "builds", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("get", "builds", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, obj, nil }) @@ -221,7 +221,7 @@ func fakeClient(expectedResource string, reviewResponse *authorizationapi.Subjec func testBuild(strategy buildapi.BuildStrategy) *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", }, Spec: buildapi.BuildSpec{ @@ -234,7 +234,7 @@ func testBuild(strategy buildapi.BuildStrategy) *buildapi.Build { func testBuildConfig(strategy buildapi.BuildStrategy) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-buildconfig", }, Spec: buildapi.BuildConfigSpec{ @@ -254,7 +254,7 @@ func reviewResponse(allowed bool, msg string) *authorizationapi.SubjectAccessRev func testBuildRequest(name string) runtime.Object { return &buildapi.BuildRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, } diff --git a/pkg/build/admission/testutil/pod.go b/pkg/build/admission/testutil/pod.go index 7d74fdace477..b236ce53bdf1 100644 --- a/pkg/build/admission/testutil/pod.go +++ b/pkg/build/admission/testutil/pod.go @@ -3,10 +3,10 @@ package test import ( "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -38,7 +38,7 @@ func (p *TestPod) WithEnvVar(name, value string) *TestPod { } func (p *TestPod) WithBuild(t *testing.T, build *buildapi.Build, version string) *TestPod { - gv, err := unversioned.ParseGroupVersion(version) + gv, err := schema.ParseGroupVersion(version) if err != nil { t.Fatalf("%v", err) } diff --git a/pkg/build/api/fields.go b/pkg/build/api/fields.go index f2521569f85d..06dbf8f58646 100644 --- a/pkg/build/api/fields.go +++ b/pkg/build/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // BuildToSelectableFields returns a label set that represents the object // changes to the returned keys require registering conversions for existing versions using Scheme.AddFieldLabelConversionFunc diff --git a/pkg/build/api/helpers_test.go b/pkg/build/api/helpers_test.go index 54921cd86572..445def4c92d1 100644 --- a/pkg/build/api/helpers_test.go +++ b/pkg/build/api/helpers_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "strings" ) @@ -16,12 +16,12 @@ func TestFilterBuilds_withEmptyArray(t *testing.T) { func TestFilterBuilds_withAllElementsAccepted(t *testing.T) { expected := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", }, }, @@ -38,17 +38,17 @@ func TestFilterBuilds_withAllElementsAccepted(t *testing.T) { func TestFilterBuilds_withFilteredElements(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "skip1-abc", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "skip3-abc", }, }, @@ -67,13 +67,13 @@ func TestFilterBuilds_withFilteredElements(t *testing.T) { func TestByBuildConfigPredicate_withBuildConfigAnnotation(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", Annotations: map[string]string{BuildConfigAnnotation: "foo"}, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", Labels: map[string]string{"bar": "baz"}, }, @@ -92,13 +92,13 @@ func TestByBuildConfigPredicate_withBuildConfigAnnotation(t *testing.T) { func TestByBuildConfigPredicate_withBuildConfigLabel(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", Labels: map[string]string{BuildConfigLabel: "foo"}, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", Labels: map[string]string{"bar": "baz"}, }, @@ -117,13 +117,13 @@ func TestByBuildConfigPredicate_withBuildConfigLabel(t *testing.T) { func TestByBuildConfigPredicate_withBuildConfigLabelDeprecated(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", Labels: map[string]string{BuildConfigLabelDeprecated: "foo"}, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", Labels: map[string]string{"bar": "baz"}, }, @@ -142,19 +142,19 @@ func TestByBuildConfigPredicate_withBuildConfigLabelDeprecated(t *testing.T) { func TestByBuildConfigPredicate_withBothBuildConfigLabels(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", Labels: map[string]string{BuildConfigLabel: "foo"}, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build2-abc", Labels: map[string]string{"bar": "baz"}, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build3-abc", Labels: map[string]string{BuildConfigLabelDeprecated: "foo"}, }, @@ -173,7 +173,7 @@ func TestByBuildConfigPredicate_withBothBuildConfigLabels(t *testing.T) { func TestByBuildConfigPredicate_withoutBuildConfigLabels(t *testing.T) { input := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "build1-abc", Labels: map[string]string{"bar": "baz"}, }, diff --git a/pkg/build/api/install/apigroup.go b/pkg/build/api/install/apigroup.go index 62bc3f40e624..f0faa53c99b5 100644 --- a/pkg/build/api/install/apigroup.go +++ b/pkg/build/api/install/apigroup.go @@ -1,7 +1,7 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/announced" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/v1" diff --git a/pkg/build/api/install/install.go b/pkg/build/api/install/install.go index 78c5f5ced4c6..67fc33ec0fe2 100644 --- a/pkg/build/api/install/install.go +++ b/pkg/build/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/build/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -51,7 +50,7 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/build/api/register.go b/pkg/build/api/register.go index 82062bf13f13..dcbc862b13e6 100644 --- a/pkg/build/api/register.go +++ b/pkg/build/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +13,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -24,22 +24,22 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } // LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -69,10 +69,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/build/api/sort_test.go b/pkg/build/api/sort_test.go index 1cea162e3bf3..ba052db94668 100644 --- a/pkg/build/api/sort_test.go +++ b/pkg/build/api/sort_test.go @@ -5,22 +5,21 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestSortBuildSliceByCreationTimestamp(t *testing.T) { - present := unversioned.Now() - past := unversioned.NewTime(present.Add(-time.Minute)) + present := metav1.Now() + past := metav1.NewTime(present.Add(-time.Minute)) builds := []Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "present", CreationTimestamp: present, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "past", CreationTimestamp: past, }, @@ -33,17 +32,17 @@ func TestSortBuildSliceByCreationTimestamp(t *testing.T) { } func TestSortBuildPtrSliceByCreationTimestamp(t *testing.T) { - present := unversioned.Now() - past := unversioned.NewTime(present.Add(-time.Minute)) + present := metav1.Now() + past := metav1.NewTime(present.Add(-time.Minute)) builds := []*Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "present", CreationTimestamp: present, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "past", CreationTimestamp: past, }, diff --git a/pkg/build/api/types.go b/pkg/build/api/types.go index 74f373fafe70..caf58543a2bd 100644 --- a/pkg/build/api/types.go +++ b/pkg/build/api/types.go @@ -3,9 +3,9 @@ package api import ( "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" ) const ( @@ -91,8 +91,8 @@ var WhitelistEnvVarNames = [2]string{"BUILD_LOGLEVEL", "GIT_SSL_NO_VERIFY"} // Build encapsulates the inputs needed to produce a new deployable image, as well as // the status of the execution and a reference to the Pod which executed the build. type Build struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec is all the inputs used to execute the build. Spec BuildSpec @@ -265,13 +265,13 @@ type BuildStatus struct { // StartTimestamp is a timestamp representing the server time when this Build started // running in a Pod. // It is represented in RFC3339 form and is in UTC. - StartTimestamp *unversioned.Time + StartTimestamp *metav1.Time // CompletionTimestamp is a timestamp representing the server time when this Build was // finished, whether that build failed or succeeded. It reflects the time at which // the Pod running the Build terminated. // It is represented in RFC3339 form and is in UTC. - CompletionTimestamp *unversioned.Time + CompletionTimestamp *metav1.Time // Duration contains time.Duration object describing build time. Duration time.Duration @@ -965,8 +965,8 @@ type ImageLabel struct { // BuildConfig is a template which can be used to create new builds. type BuildConfig struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec holds all the input necessary to produce a new build, and the conditions when // to trigger them. @@ -1105,8 +1105,8 @@ const ( // BuildList is a collection of Builds. type BuildList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of builds Items []Build @@ -1114,8 +1114,8 @@ type BuildList struct { // BuildConfigList is a collection of BuildConfigs. type BuildConfigList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of build configs Items []BuildConfig @@ -1154,7 +1154,7 @@ type GitRefInfo struct { // BuildLog is the (unused) resource associated with the build log redirector type BuildLog struct { - unversioned.TypeMeta + metav1.TypeMeta } // DockerStrategyOptions contains extra strategy options for Docker builds @@ -1166,10 +1166,10 @@ type DockerStrategyOptions struct { // BuildRequest is the resource used to pass parameters to build generator type BuildRequest struct { - unversioned.TypeMeta + metav1.TypeMeta // TODO: build request should allow name generation via Name and GenerateName, build config // name should be provided as a separate field - kapi.ObjectMeta + metav1.ObjectMeta // Revision is the information from the source for a specific repo snapshot. Revision *SourceRevision @@ -1201,8 +1201,8 @@ type BuildRequest struct { } type BinaryBuildRequestOptions struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta AsFile string @@ -1229,7 +1229,7 @@ type BinaryBuildRequestOptions struct { // BuildLogOptions is the REST options for a build log type BuildLogOptions struct { - unversioned.TypeMeta + metav1.TypeMeta // Container for which to return logs Container string @@ -1247,7 +1247,7 @@ type BuildLogOptions struct { // precedes the time a pod was started, only logs since the pod start will be returned. // If this value is in the future, no logs will be returned. // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *unversioned.Time + SinceTime *metav1.Time // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line // of log output. Timestamps bool diff --git a/pkg/build/api/util.go b/pkg/build/api/util.go index e1272fef38d0..ce39a1176277 100644 --- a/pkg/build/api/util.go +++ b/pkg/build/api/util.go @@ -1,8 +1,8 @@ package api import ( + "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation" "github.com/openshift/origin/pkg/util/namer" ) diff --git a/pkg/build/api/util_test.go b/pkg/build/api/util_test.go index af20c32a1b67..6e93aec893c1 100644 --- a/pkg/build/api/util_test.go +++ b/pkg/build/api/util_test.go @@ -3,11 +3,11 @@ package api import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestGetBuildPodName(t *testing.T) { - if expected, actual := "mybuild-build", GetBuildPodName(&Build{ObjectMeta: kapi.ObjectMeta{Name: "mybuild"}}); expected != actual { + if expected, actual := "mybuild-build", GetBuildPodName(&Build{ObjectMeta: metav1.ObjectMeta{Name: "mybuild"}}); expected != actual { t.Errorf("Expected %s, got %s", expected, actual) } } diff --git a/pkg/build/api/v1/conversion.go b/pkg/build/api/v1/conversion.go index 51351e07473a..ef3c7cf1e429 100644 --- a/pkg/build/api/v1/conversion.go +++ b/pkg/build/api/v1/conversion.go @@ -1,8 +1,8 @@ package v1 import ( - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" newer "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/api/v1/conversion_test.go b/pkg/build/api/v1/conversion_test.go index 70989554a53a..0be63cf6f50e 100644 --- a/pkg/build/api/v1/conversion_test.go +++ b/pkg/build/api/v1/conversion_test.go @@ -3,9 +3,10 @@ package v1_test import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion/queryparams" knewer "k8s.io/kubernetes/pkg/api" kolder "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/conversion/queryparams" newer "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -56,7 +57,7 @@ func TestBinaryBuildRequestOptions(t *testing.T) { func TestV1APIBuildConfigConversion(t *testing.T) { buildConfigs := []*older.BuildConfig{ { - ObjectMeta: kolder.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: older.BuildConfigSpec{ CommonSpec: older.CommonSpec{ Source: older.BuildSource{ @@ -96,7 +97,7 @@ func TestV1APIBuildConfigConversion(t *testing.T) { }, }, { - ObjectMeta: kolder.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: older.BuildConfigSpec{ CommonSpec: older.CommonSpec{ Source: older.BuildSource{ @@ -136,7 +137,7 @@ func TestV1APIBuildConfigConversion(t *testing.T) { }, }, { - ObjectMeta: kolder.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: older.BuildConfigSpec{ CommonSpec: older.CommonSpec{ Source: older.BuildSource{ @@ -227,7 +228,7 @@ func TestV1APIBuildConfigConversion(t *testing.T) { func TestAPIV1NoSourceBuildConfigConversion(t *testing.T) { buildConfigs := []*newer.BuildConfig{ { - ObjectMeta: knewer.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: newer.BuildConfigSpec{ CommonSpec: newer.CommonSpec{ Source: newer.BuildSource{}, @@ -243,7 +244,7 @@ func TestAPIV1NoSourceBuildConfigConversion(t *testing.T) { }, }, { - ObjectMeta: knewer.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: newer.BuildConfigSpec{ CommonSpec: newer.CommonSpec{ Source: newer.BuildSource{}, @@ -259,7 +260,7 @@ func TestAPIV1NoSourceBuildConfigConversion(t *testing.T) { }, }, { - ObjectMeta: knewer.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: newer.BuildConfigSpec{ CommonSpec: newer.CommonSpec{ Source: newer.BuildSource{}, @@ -289,7 +290,7 @@ func TestAPIV1NoSourceBuildConfigConversion(t *testing.T) { func TestInvalidImageChangeTriggerRemoval(t *testing.T) { buildConfig := older.BuildConfig{ - ObjectMeta: kolder.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: older.BuildConfigSpec{ CommonSpec: older.CommonSpec{ Strategy: older.BuildStrategy{ @@ -334,7 +335,7 @@ func TestInvalidImageChangeTriggerRemoval(t *testing.T) { func TestImageChangeTriggerNilImageChangePointer(t *testing.T) { buildConfig := older.BuildConfig{ - ObjectMeta: kolder.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: older.BuildConfigSpec{ CommonSpec: older.CommonSpec{ Strategy: older.BuildStrategy{ diff --git a/pkg/build/api/v1/defaults.go b/pkg/build/api/v1/defaults.go index e98dcbd8e244..abd48a99e480 100644 --- a/pkg/build/api/v1/defaults.go +++ b/pkg/build/api/v1/defaults.go @@ -1,6 +1,6 @@ package v1 -import "k8s.io/kubernetes/pkg/runtime" +import "k8s.io/apimachinery/pkg/runtime" func SetDefaults_BuildConfigSpec(config *BuildConfigSpec) { if len(config.RunPolicy) == 0 { diff --git a/pkg/build/api/v1/defaults_test.go b/pkg/build/api/v1/defaults_test.go index 63c439dea37f..6573d796d534 100644 --- a/pkg/build/api/v1/defaults_test.go +++ b/pkg/build/api/v1/defaults_test.go @@ -4,9 +4,9 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/build/api/v1" diff --git a/pkg/build/api/v1/register.go b/pkg/build/api/v1/register.go index 4526a606e2e3..d50fead3079a 100644 --- a/pkg/build/api/v1/register.go +++ b/pkg/build/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -11,8 +11,8 @@ const GroupName = "build.openshift.io" const LegacyGroupName = "" var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -35,10 +35,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/build/api/v1/types.go b/pkg/build/api/v1/types.go index 7ac0c4101083..707ddea2425c 100644 --- a/pkg/build/api/v1/types.go +++ b/pkg/build/api/v1/types.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api/v1" ) @@ -13,9 +13,9 @@ import ( // Build encapsulates the inputs needed to produce a new deployable image, as well as // the status of the execution and a reference to the Pod which executed the build. type Build struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec is all the inputs used to execute the build. Spec BuildSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` @@ -186,13 +186,13 @@ type BuildStatus struct { // startTimestamp is a timestamp representing the server time when this Build started // running in a Pod. // It is represented in RFC3339 form and is in UTC. - StartTimestamp *unversioned.Time `json:"startTimestamp,omitempty" protobuf:"bytes,5,opt,name=startTimestamp"` + StartTimestamp *metav1.Time `json:"startTimestamp,omitempty" protobuf:"bytes,5,opt,name=startTimestamp"` // completionTimestamp is a timestamp representing the server time when this Build was // finished, whether that build failed or succeeded. It reflects the time at which // the Pod running the Build terminated. // It is represented in RFC3339 form and is in UTC. - CompletionTimestamp *unversioned.Time `json:"completionTimestamp,omitempty" protobuf:"bytes,6,opt,name=completionTimestamp"` + CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty" protobuf:"bytes,6,opt,name=completionTimestamp"` // duration contains time.Duration object describing build time. Duration time.Duration `json:"duration,omitempty" protobuf:"varint,7,opt,name=duration,casttype=time.Duration"` @@ -843,9 +843,9 @@ type ImageLabel struct { // // Each build created by a build configuration is numbered and refers back to its parent configuration. Multiple builds can be triggered at once. Builds that do not have "output" set can be used to test code or run a verification build. type BuildConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for BuildConfig. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec holds all the input necessary to produce a new build, and the conditions when // to trigger them. @@ -975,9 +975,9 @@ const ( // BuildList is a collection of Builds. type BuildList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for BuildList. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is a list of builds Items []Build `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -985,9 +985,9 @@ type BuildList struct { // BuildConfigList is a collection of BuildConfigs. type BuildConfigList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for BuildConfigList. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is a list of build configs Items []BuildConfig `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -1018,7 +1018,7 @@ type GitInfo struct { // BuildLog is the (unused) resource associated with the build log redirector type BuildLog struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` } // DockerStrategyOptions contains extra strategy options for Docker builds @@ -1030,9 +1030,9 @@ type DockerStrategyOptions struct { // BuildRequest is the resource used to pass parameters to build generator type BuildRequest struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for BuildRequest. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // revision is the information from the source for a specific repo snapshot. Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,2,opt,name=revision"` @@ -1065,9 +1065,9 @@ type BuildRequest struct { // BinaryBuildRequestOptions are the options required to fully speficy a binary build request type BinaryBuildRequestOptions struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for BinaryBuildRequestOptions. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // asFile determines if the binary should be created as a file within the source rather than extracted as an archive AsFile string `json:"asFile,omitempty" protobuf:"bytes,2,opt,name=asFile"` @@ -1095,7 +1095,7 @@ type BinaryBuildRequestOptions struct { // BuildLogOptions is the REST options for a build log type BuildLogOptions struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // cointainer for which to stream logs. Defaults to only container if there is one container in the pod. Container string `json:"container,omitempty" protobuf:"bytes,1,opt,name=container"` @@ -1113,7 +1113,7 @@ type BuildLogOptions struct { // precedes the time a pod was started, only logs since the pod start will be returned. // If this value is in the future, no logs will be returned. // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *unversioned.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` + SinceTime *metav1.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` // timestamps, If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line // of log output. Defaults to false. Timestamps bool `json:"timestamps,omitempty" protobuf:"varint,6,opt,name=timestamps"` diff --git a/pkg/build/api/v1/zz_generated.conversion.go b/pkg/build/api/v1/zz_generated.conversion.go index b70c777b91b5..1c28647603bb 100644 --- a/pkg/build/api/v1/zz_generated.conversion.go +++ b/pkg/build/api/v1/zz_generated.conversion.go @@ -5,14 +5,14 @@ package v1 import ( + time "time" + unsafe "unsafe" + api "github.com/openshift/origin/pkg/build/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - time "time" - unsafe "unsafe" ) func init() { @@ -429,7 +429,7 @@ func autoConvert_v1_BuildLogOptions_To_api_BuildLogOptions(in *BuildLogOptions, out.Follow = in.Follow out.Previous = in.Previous out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*unversioned.Time)(unsafe.Pointer(in.SinceTime)) + out.SinceTime = (*metav1.Time)(unsafe.Pointer(in.SinceTime)) out.Timestamps = in.Timestamps out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) @@ -447,7 +447,7 @@ func autoConvert_api_BuildLogOptions_To_v1_BuildLogOptions(in *api.BuildLogOptio out.Follow = in.Follow out.Previous = in.Previous out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*unversioned.Time)(unsafe.Pointer(in.SinceTime)) + out.SinceTime = (*metav1.Time)(unsafe.Pointer(in.SinceTime)) out.Timestamps = in.Timestamps out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) @@ -806,8 +806,8 @@ func autoConvert_v1_BuildStatus_To_api_BuildStatus(in *BuildStatus, out *api.Bui out.Cancelled = in.Cancelled out.Reason = api.StatusReason(in.Reason) out.Message = in.Message - out.StartTimestamp = (*unversioned.Time)(unsafe.Pointer(in.StartTimestamp)) - out.CompletionTimestamp = (*unversioned.Time)(unsafe.Pointer(in.CompletionTimestamp)) + out.StartTimestamp = (*metav1.Time)(unsafe.Pointer(in.StartTimestamp)) + out.CompletionTimestamp = (*metav1.Time)(unsafe.Pointer(in.CompletionTimestamp)) out.Duration = time.Duration(in.Duration) out.OutputDockerImageReference = in.OutputDockerImageReference if in.Config != nil { @@ -835,8 +835,8 @@ func autoConvert_api_BuildStatus_To_v1_BuildStatus(in *api.BuildStatus, out *Bui out.Cancelled = in.Cancelled out.Reason = StatusReason(in.Reason) out.Message = in.Message - out.StartTimestamp = (*unversioned.Time)(unsafe.Pointer(in.StartTimestamp)) - out.CompletionTimestamp = (*unversioned.Time)(unsafe.Pointer(in.CompletionTimestamp)) + out.StartTimestamp = (*metav1.Time)(unsafe.Pointer(in.StartTimestamp)) + out.CompletionTimestamp = (*metav1.Time)(unsafe.Pointer(in.CompletionTimestamp)) out.Duration = time.Duration(in.Duration) out.OutputDockerImageReference = in.OutputDockerImageReference if in.Config != nil { diff --git a/pkg/build/api/v1/zz_generated.deepcopy.go b/pkg/build/api/v1/zz_generated.deepcopy.go index c29bf39e7347..e6e84efdfd86 100644 --- a/pkg/build/api/v1/zz_generated.deepcopy.go +++ b/pkg/build/api/v1/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -245,7 +245,7 @@ func DeepCopy_v1_BuildLogOptions(in interface{}, out interface{}, c *conversion. } if in.SinceTime != nil { in, out := &in.SinceTime, &out.SinceTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.SinceTime = nil @@ -503,14 +503,14 @@ func DeepCopy_v1_BuildStatus(in interface{}, out interface{}, c *conversion.Clon out.Message = in.Message if in.StartTimestamp != nil { in, out := &in.StartTimestamp, &out.StartTimestamp - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.StartTimestamp = nil } if in.CompletionTimestamp != nil { in, out := &in.CompletionTimestamp, &out.CompletionTimestamp - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.CompletionTimestamp = nil diff --git a/pkg/build/api/v1/zz_generated.defaults.go b/pkg/build/api/v1/zz_generated.defaults.go index a4de5d68b899..4a510b413b8f 100644 --- a/pkg/build/api/v1/zz_generated.defaults.go +++ b/pkg/build/api/v1/zz_generated.defaults.go @@ -5,8 +5,8 @@ package v1 import ( + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - runtime "k8s.io/kubernetes/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/build/api/validation/validation.go b/pkg/build/api/validation/validation.go index 679a835de13d..087136f1a111 100644 --- a/pkg/build/api/validation/validation.go +++ b/pkg/build/api/validation/validation.go @@ -10,13 +10,13 @@ import ( "github.com/golang/glog" "github.com/openshift/origin/pkg/util/labelselector" + kpath "k8s.io/apimachinery/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/strategicpatch" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" - kpath "k8s.io/kubernetes/pkg/api/validation/path" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/strategicpatch" - kvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/v1" diff --git a/pkg/build/api/validation/validation_test.go b/pkg/build/api/validation/validation_test.go index a65da7f10925..57a0462b88ec 100644 --- a/pkg/build/api/validation/validation_test.go +++ b/pkg/build/api/validation/validation_test.go @@ -5,8 +5,9 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" @@ -15,7 +16,7 @@ import ( func TestBuildValidationSuccess(t *testing.T) { build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "buildid", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -56,7 +57,7 @@ func checkDockerStrategyEmptySourceError(result field.ErrorList) bool { func TestBuildEmptySource(t *testing.T) { builds := []buildapi.Build{ { - ObjectMeta: kapi.ObjectMeta{Name: "buildid", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{}, @@ -81,7 +82,7 @@ func TestBuildEmptySource(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "buildid", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{}, @@ -113,7 +114,7 @@ func TestBuildEmptySource(t *testing.T) { } badBuild := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "buildid", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{}, @@ -145,7 +146,7 @@ func TestBuildEmptySource(t *testing.T) { func TestBuildConfigEmptySource(t *testing.T) { buildConfigs := []buildapi.BuildConfig{ { - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -168,7 +169,7 @@ func TestBuildConfigEmptySource(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -198,7 +199,7 @@ func TestBuildConfigEmptySource(t *testing.T) { } badBuildConfig := buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -227,7 +228,7 @@ func TestBuildConfigEmptySource(t *testing.T) { func TestBuildValidationFailure(t *testing.T) { build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: ""}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -286,14 +287,14 @@ func newNonDefaultParameters() buildapi.BuildSpec { func TestValidateBuildUpdate(t *testing.T) { old := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseRunning}, } errs := ValidateBuildUpdate( &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseComplete}, }, @@ -311,11 +312,11 @@ func TestValidateBuildUpdate(t *testing.T) { }{ "changed spec": { Old: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), }, Update: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newNonDefaultParameters(), }, T: field.ErrorTypeInvalid, @@ -323,12 +324,12 @@ func TestValidateBuildUpdate(t *testing.T) { }, "update from terminal1": { Old: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseComplete}, }, Update: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseRunning}, }, @@ -337,12 +338,12 @@ func TestValidateBuildUpdate(t *testing.T) { }, "update from terminal2": { Old: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseCancelled}, }, Update: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseRunning}, }, @@ -351,12 +352,12 @@ func TestValidateBuildUpdate(t *testing.T) { }, "update from terminal3": { Old: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseError}, }, Update: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseRunning}, }, @@ -365,12 +366,12 @@ func TestValidateBuildUpdate(t *testing.T) { }, "update from terminal4": { Old: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseFailed}, }, Update: &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "my-build", ResourceVersion: "1"}, Spec: newDefaultParameters(), Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseRunning}, }, @@ -401,7 +402,7 @@ func TestValidateBuildUpdate(t *testing.T) { // neither DockerStrategy.From nor ImageChange.From are defined. func TestBuildConfigDockerStrategyImageChangeTrigger(t *testing.T) { buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -445,7 +446,7 @@ func TestBuildConfigDockerStrategyImageChangeTrigger(t *testing.T) { func TestBuildConfigValidationFailureRequiredName(t *testing.T) { buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "", Namespace: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "foo"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -717,7 +718,7 @@ func TestBuildConfigImageChangeTriggers(t *testing.T) { for _, tc := range tests { buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "bar", Namespace: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "foo"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -762,7 +763,7 @@ func TestBuildConfigImageChangeTriggers(t *testing.T) { func TestBuildConfigValidationOutputFailure(t *testing.T) { buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: ""}, + ObjectMeta: metav1.ObjectMeta{Name: ""}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, CommonSpec: buildapi.CommonSpec{ @@ -792,8 +793,8 @@ func TestBuildConfigValidationOutputFailure(t *testing.T) { func TestValidateBuildRequest(t *testing.T) { testCases := map[string]*buildapi.BuildRequest{ - string(field.ErrorTypeRequired) + "metadata.namespace": {ObjectMeta: kapi.ObjectMeta{Name: "requestName"}}, - string(field.ErrorTypeRequired) + "metadata.name": {ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}}, + string(field.ErrorTypeRequired) + "metadata.namespace": {ObjectMeta: metav1.ObjectMeta{Name: "requestName"}}, + string(field.ErrorTypeRequired) + "metadata.name": {ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}}, } for desc, tc := range testCases { @@ -2884,7 +2885,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "valid docker build", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -2906,7 +2907,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "valid s2i build w/ runtimeImage", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -2932,7 +2933,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "docker build with ImageStreamTag in from", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -2954,7 +2955,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "s2i build with valid source image references", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -2990,7 +2991,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "image with sources uses ImageStreamTag", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -3038,7 +3039,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "s2i build with ImageStreamTag runtimeImage", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -3064,7 +3065,7 @@ func TestValidateBuildImageRefs(t *testing.T) { { name: "custom build with ImageStreamTag in from", build: buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "build", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "build", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ diff --git a/pkg/build/api/zz_generated.deepcopy.go b/pkg/build/api/zz_generated.deepcopy.go index 45b74b607a25..1bfc6599392a 100644 --- a/pkg/build/api/zz_generated.deepcopy.go +++ b/pkg/build/api/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { @@ -246,7 +246,7 @@ func DeepCopy_api_BuildLogOptions(in interface{}, out interface{}, c *conversion } if in.SinceTime != nil { in, out := &in.SinceTime, &out.SinceTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.SinceTime = nil @@ -503,14 +503,14 @@ func DeepCopy_api_BuildStatus(in interface{}, out interface{}, c *conversion.Clo out.Message = in.Message if in.StartTimestamp != nil { in, out := &in.StartTimestamp, &out.StartTimestamp - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.StartTimestamp = nil } if in.CompletionTimestamp != nil { in, out := &in.CompletionTimestamp, &out.CompletionTimestamp - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.CompletionTimestamp = nil diff --git a/pkg/build/builder/cmd/builder.go b/pkg/build/builder/cmd/builder.go index 0d12e158dc7e..0e11ccf28a6b 100644 --- a/pkg/build/builder/cmd/builder.go +++ b/pkg/build/builder/cmd/builder.go @@ -11,11 +11,11 @@ import ( docker "github.com/fsouza/go-dockerclient" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/runtime" s2iapi "github.com/openshift/source-to-image/pkg/api" @@ -55,7 +55,7 @@ func newBuilderConfigFromEnvironment(out io.Writer) (*builderConfig, error) { return nil, fmt.Errorf("unable to parse build: %v", err) } if errs := validation.ValidateBuild(cfg.build); len(errs) > 0 { - return nil, errors.NewInvalid(unversioned.GroupKind{Kind: "Build"}, cfg.build.Name, errs) + return nil, errors.NewInvalid(schema.GroupKind{Kind: "Build"}, cfg.build.Name, errs) } glog.V(4).Infof("Build: %#v", cfg.build) diff --git a/pkg/build/builder/common.go b/pkg/build/builder/common.go index 81945b138f2c..4ac6ca9a9cd9 100644 --- a/pkg/build/builder/common.go +++ b/pkg/build/builder/common.go @@ -7,6 +7,7 @@ import ( "os" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/client/retry" "github.com/docker/distribution/reference" @@ -176,7 +177,7 @@ func updateBuildRevision(build *api.Build, sourceInfo *git.SourceInfo) *api.Sour func retryBuildStatusUpdate(build *api.Build, client client.BuildInterface, sourceRev *api.SourceRevision) error { return retry.RetryOnConflict(retry.DefaultBackoff, func() error { // before updating, make sure we are using the latest version of the build - latestBuild, err := client.Get(build.Name) + latestBuild, err := client.Get(build.Name, metav1.GetOptions{}) if err != nil { // usually this means we failed to get resources due to the missing // privilleges diff --git a/pkg/build/builder/common_test.go b/pkg/build/builder/common_test.go index 8a69e8284b68..f7b7cf701360 100644 --- a/pkg/build/builder/common_test.go +++ b/pkg/build/builder/common_test.go @@ -6,6 +6,7 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/openshift/origin/pkg/build/api" @@ -14,7 +15,7 @@ import ( func TestBuildInfo(t *testing.T) { b := &api.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "sample-app", Namespace: "default", }, diff --git a/pkg/build/builder/dockerutil.go b/pkg/build/builder/dockerutil.go index 8f75e5528916..a8a677193d62 100644 --- a/pkg/build/builder/dockerutil.go +++ b/pkg/build/builder/dockerutil.go @@ -15,9 +15,9 @@ import ( dockertypes "github.com/docker/engine-api/types" docker "github.com/fsouza/go-dockerclient" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/credentialprovider" "k8s.io/kubernetes/pkg/util/interrupt" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" "github.com/openshift/source-to-image/pkg/tar" diff --git a/pkg/build/client/clients.go b/pkg/build/client/clients.go index ca07bee6541d..a6a939ec0211 100644 --- a/pkg/build/client/clients.go +++ b/pkg/build/client/clients.go @@ -3,7 +3,7 @@ package client import ( buildapi "github.com/openshift/origin/pkg/build/api" osclient "github.com/openshift/origin/pkg/client" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // BuildConfigGetter provides methods for getting BuildConfigs @@ -27,8 +27,8 @@ func NewOSClientBuildConfigClient(client osclient.Interface) *OSClientBuildConfi } // Get returns a BuildConfig using the OpenShift client. -func (c OSClientBuildConfigClient) Get(namespace, name string) (*buildapi.BuildConfig, error) { - return c.Client.BuildConfigs(namespace).Get(name) +func (c OSClientBuildConfigClient) Get(namespace, name string, options metav1.GetOptions) (*buildapi.BuildConfig, error) { + return c.Client.BuildConfigs(namespace).Get(name, options) } // Update updates a BuildConfig using the OpenShift client. @@ -44,7 +44,7 @@ type BuildUpdater interface { // BuildLister provides methods for listing the Builds. type BuildLister interface { - List(namespace string, opts kapi.ListOptions) (*buildapi.BuildList, error) + List(namespace string, opts metav1.ListOptions) (*buildapi.BuildList, error) } // OSClientBuildClient delegates build create and update operations to the OpenShift client interface @@ -64,7 +64,7 @@ func (c OSClientBuildClient) Update(namespace string, build *buildapi.Build) err } // List lists the builds using the OpenShift client. -func (c OSClientBuildClient) List(namespace string, opts kapi.ListOptions) (*buildapi.BuildList, error) { +func (c OSClientBuildClient) List(namespace string, opts metav1.ListOptions) (*buildapi.BuildList, error) { return c.Client.Builds(namespace).List(opts) } diff --git a/pkg/build/client/clientset_generated/internalclientset/clientset.go b/pkg/build/client/clientset_generated/internalclientset/clientset.go index 19ffde139dfc..7439b435b4f4 100644 --- a/pkg/build/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/build/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/build/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/build/client/clientset_generated/internalclientset/fake/clientset_generated.go index aa7ab9c6b103..1525cbadf06f 100644 --- a/pkg/build/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/build/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/build/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/build.go b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/build.go index ff1794188ac7..bccab4cba7cc 100644 --- a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/build.go +++ b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/build.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/build/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // BuildsGetter has a method to return a BuildInterface. diff --git a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index efb61c2b4f50..06bae6952845 100644 --- a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { BuildsGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_build.go b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_build.go index 86a79751b16a..9d3da4a243e9 100644 --- a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_build.go +++ b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_build.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/build/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeBuilds implements BuildInterface @@ -15,7 +15,7 @@ type FakeBuilds struct { ns string } -var buildsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "builds"} +var buildsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "builds"} func (c *FakeBuilds) Create(build *api.Build) (result *api.Build, err error) { obj, err := c.Fake. diff --git a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index 4c654a4d123c..ad89faa2ee00 100644 --- a/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/build/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/build/client/clientset_generated/release_v1_5/clientset.go b/pkg/build/client/clientset_generated/release_v1_5/clientset.go index ec2222b45e3d..6bde56c0c268 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/build/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/build/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/build/client/clientset_generated/release_v1_5/fake/clientset_generated.go index b725e22ae856..ae4f26021296 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/build/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/build/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/build.go b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/build.go index 0f67bb58d65f..ca02de40593e 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/build.go +++ b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/build.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/build/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // BuildsGetter has a method to return a BuildInterface. diff --git a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 4509d772fb0f..a388f824a0c4 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { BuildsGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_build.go b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_build.go index d206d09fa421..536a9b236f96 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_build.go +++ b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_build.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/build/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeBuilds implements BuildInterface @@ -16,7 +16,7 @@ type FakeBuilds struct { ns string } -var buildsResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "builds"} +var buildsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "builds"} func (c *FakeBuilds) Create(build *v1.Build) (result *v1.Build, err error) { obj, err := c.Fake. diff --git a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index b4942d63d39a..c758c47212c8 100644 --- a/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/build/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/build/cmd/reaper.go b/pkg/build/cmd/reaper.go index 402521c2ec36..003294f72ea8 100644 --- a/pkg/build/cmd/reaper.go +++ b/pkg/build/cmd/reaper.go @@ -6,12 +6,12 @@ import ( "time" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + ktypes "k8s.io/apimachinery/pkg/types" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/kubernetes/pkg/client/retry" "k8s.io/kubernetes/pkg/kubectl" - ktypes "k8s.io/kubernetes/pkg/types" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" buildapi "github.com/openshift/origin/pkg/build/api" buildutil "github.com/openshift/origin/pkg/build/util" @@ -31,8 +31,8 @@ type BuildConfigReaper struct { } // Stop deletes the build configuration and all of the associated builds. -func (reaper *BuildConfigReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { - _, err := reaper.oc.BuildConfigs(namespace).Get(name) +func (reaper *BuildConfigReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { + _, err := reaper.oc.BuildConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err @@ -41,7 +41,7 @@ func (reaper *BuildConfigReaper) Stop(namespace, name string, timeout time.Durat var bcPotentialBuilds []buildapi.Build // Collect builds related to the config. - builds, err := reaper.oc.Builds(namespace).List(kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelector(name)}) + builds, err := reaper.oc.Builds(namespace).List(metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelector(name).String()}) if err != nil { return err } @@ -50,7 +50,7 @@ func (reaper *BuildConfigReaper) Stop(namespace, name string, timeout time.Durat // Collect deprecated builds related to the config. // TODO: Delete this block after BuildConfigLabelDeprecated is removed. - builds, err = reaper.oc.Builds(namespace).List(kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(name)}) + builds, err = reaper.oc.Builds(namespace).List(metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(name).String()}) if err != nil { return err } @@ -86,7 +86,7 @@ func (reaper *BuildConfigReaper) Stop(namespace, name string, timeout time.Durat // Add paused annotation to the build config pending the deletion err = retry.RetryOnConflict(retry.DefaultRetry, func() error { - bc, err := reaper.oc.BuildConfigs(namespace).Get(name) + bc, err := reaper.oc.BuildConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err } diff --git a/pkg/build/cmd/reaper_test.go b/pkg/build/cmd/reaper_test.go index d9afc51129c7..e2c8677959b0 100644 --- a/pkg/build/cmd/reaper_test.go +++ b/pkg/build/cmd/reaper_test.go @@ -7,14 +7,14 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - ktypes "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/validation" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + ktypes "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/validation" + clientgotesting "k8s.io/client-go/testing" buildapi "github.com/openshift/origin/pkg/build/api" buildutil "github.com/openshift/origin/pkg/build/util" @@ -25,13 +25,13 @@ var ( configName = strings.Repeat("a", validation.DNS1123LabelMaxLength) longConfigNameA = strings.Repeat("0", 250) + "a" longConfigNameB = strings.Repeat("0", 250) + "b" - buildsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "builds"} - buildConfigsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "buildconfigs"} + buildsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "builds"} + buildConfigsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "buildconfigs"} ) func makeBuildConfig(configName string, version int64, deleting bool) *buildapi.BuildConfig { ret := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: configName, Namespace: "default", Annotations: make(map[string]string), @@ -49,7 +49,7 @@ func makeBuildConfig(configName string, version int64, deleting bool) *buildapi. func makeBuild(configName string, version int) buildapi.Build { return buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("build-%s-%d", configName, version), UID: ktypes.UID(fmt.Sprintf("build-%s-%d", configName, version)), Namespace: "default", @@ -61,7 +61,7 @@ func makeBuild(configName string, version int) buildapi.Build { func makeDeprecatedBuild(configName string, version int) buildapi.Build { return buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("build-%s-%d", configName, version), UID: ktypes.UID(fmt.Sprintf("build-%s-%d", configName, version)), Namespace: "default", @@ -86,8 +86,8 @@ func makeBuildList(configName string, version int) *buildapi.BuildList { func newBuildListFake(objects ...runtime.Object) *testclient.Fake { fake := testclient.NewSimpleFake(objects...) - fake.PrependReactor("list", "builds", func(action core.Action) (handled bool, ret runtime.Object, err error) { - selector := action.(core.ListAction).GetListRestrictions().Labels + fake.PrependReactor("list", "builds", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + selector := action.(clientgotesting.ListAction).GetListRestrictions().Labels retList := &buildapi.BuildList{} for _, obj := range objects { list, ok := obj.(*buildapi.BuildList) @@ -105,7 +105,7 @@ func newBuildListFake(objects ...runtime.Object) *testclient.Fake { return fake } -func actionsAreEqual(a, b core.Action) bool { +func actionsAreEqual(a, b clientgotesting.Action) bool { if reflect.DeepEqual(a, b) { return true } @@ -114,7 +114,7 @@ func actionsAreEqual(a, b core.Action) bool { a.GetNamespace() == b.GetNamespace() && a.GetResource() == b.GetResource() && a.GetSubresource() == b.GetSubresource() { - ret := reflect.DeepEqual(a.(core.UpdateAction).GetObject(), b.(core.UpdateAction).GetObject()) + ret := reflect.DeepEqual(a.(clientgotesting.UpdateAction).GetObject(), b.(clientgotesting.UpdateAction).GetObject()) return ret } return false @@ -122,78 +122,78 @@ func actionsAreEqual(a, b core.Action) bool { func TestStop(t *testing.T) { notFoundClient := &testclient.Fake{} //(notFound(), makeBuildList(configName, 2)) - notFoundClient.AddReactor("*", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { + notFoundClient.AddReactor("*", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kerrors.NewNotFound(buildapi.Resource("BuildConfig"), configName) }) tests := map[string]struct { targetBC string oc *testclient.Fake - expected []core.Action + expected []clientgotesting.Action err bool }{ "simple stop": { targetBC: configName, oc: newBuildListFake(makeBuildConfig(configName, 0, false)), - expected: []core.Action{ - core.NewGetAction(buildConfigsResource, "default", configName), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(buildConfigsResource, "default", configName), // Since there are no builds associated with this build config, do not expect an update - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName)}), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName)}), - core.NewDeleteAction(buildConfigsResource, "default", configName), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName).String()}), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName).String()}), + clientgotesting.NewDeleteAction(buildConfigsResource, "default", configName), }, err: false, }, "multiple builds": { targetBC: configName, oc: newBuildListFake(makeBuildConfig(configName, 4, false), makeBuildList(configName, 4)), - expected: []core.Action{ - core.NewGetAction(buildConfigsResource, "default", configName), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName)}), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName)}), - core.NewGetAction(buildConfigsResource, "default", configName), // Second GET to enable conflict retry logic - core.NewUpdateAction(buildConfigsResource, "default", makeBuildConfig(configName, 4, true)), // Because this bc has builds, it is paused - core.NewDeleteAction(buildsResource, "default", "build-"+configName+"-1"), - core.NewDeleteAction(buildsResource, "default", "build-"+configName+"-2"), - core.NewDeleteAction(buildsResource, "default", "build-"+configName+"-3"), - core.NewDeleteAction(buildsResource, "default", "build-"+configName+"-4"), - core.NewDeleteAction(buildConfigsResource, "default", configName), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(buildConfigsResource, "default", configName), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName).String()}), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName).String()}), + clientgotesting.NewGetAction(buildConfigsResource, "default", configName), // Second GET to enable conflict retry logic + clientgotesting.NewUpdateAction(buildConfigsResource, "default", makeBuildConfig(configName, 4, true)), // Because this bc has builds, it is paused + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+configName+"-1"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+configName+"-2"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+configName+"-3"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+configName+"-4"), + clientgotesting.NewDeleteAction(buildConfigsResource, "default", configName), }, err: false, }, "long name builds": { targetBC: longConfigNameA, oc: newBuildListFake(makeBuildConfig(longConfigNameA, 4, false), makeBuildList(longConfigNameA, 4), makeBuildList(longConfigNameB, 4)), - expected: []core.Action{ - core.NewGetAction(buildConfigsResource, "default", longConfigNameA), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelector(longConfigNameA)}), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(longConfigNameA)}), - core.NewGetAction(buildConfigsResource, "default", longConfigNameA), // Second GET to enable conflict retry logic - core.NewUpdateAction(buildConfigsResource, "default", makeBuildConfig(longConfigNameA, 4, true)), // Because this bc has builds, it is paused - core.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-1"), - core.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-2"), - core.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-3"), - core.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-4"), - core.NewDeleteAction(buildConfigsResource, "default", longConfigNameA), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(buildConfigsResource, "default", longConfigNameA), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelector(longConfigNameA).String()}), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(longConfigNameA).String()}), + clientgotesting.NewGetAction(buildConfigsResource, "default", longConfigNameA), // Second GET to enable conflict retry logic + clientgotesting.NewUpdateAction(buildConfigsResource, "default", makeBuildConfig(longConfigNameA, 4, true)), // Because this bc has builds, it is paused + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-1"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-2"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-3"), + clientgotesting.NewDeleteAction(buildsResource, "default", "build-"+longConfigNameA+"-4"), + clientgotesting.NewDeleteAction(buildConfigsResource, "default", longConfigNameA), }, err: false, }, "no config, no or some builds": { targetBC: configName, oc: notFoundClient, - expected: []core.Action{ - core.NewGetAction(buildConfigsResource, "default", configName), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(buildConfigsResource, "default", configName), }, err: true, }, "config, no builds": { targetBC: configName, oc: testclient.NewSimpleFake(makeBuildConfig(configName, 0, false)), - expected: []core.Action{ - core.NewGetAction(buildConfigsResource, "default", configName), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName)}), - core.NewListAction(buildsResource, "default", kapi.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName)}), - core.NewDeleteAction(buildConfigsResource, "default", configName), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(buildConfigsResource, "default", configName), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelector(configName).String()}), + clientgotesting.NewListAction(buildsResource, "default", metav1.ListOptions{LabelSelector: buildutil.BuildConfigSelectorDeprecated(configName).String()}), + clientgotesting.NewDeleteAction(buildConfigsResource, "default", configName), }, err: false, }, diff --git a/pkg/build/controller/buildpod/controller.go b/pkg/build/controller/buildpod/controller.go index a5fa08922ce5..4f32d9f2704e 100644 --- a/pkg/build/controller/buildpod/controller.go +++ b/pkg/build/controller/buildpod/controller.go @@ -5,17 +5,21 @@ import ( "time" "github.com/golang/glog" + errors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" + clientv1 "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" + kexternalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" + kcoreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion" kcontroller "k8s.io/kubernetes/pkg/controller" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -138,7 +142,7 @@ func (bc *BuildPodController) HandlePod(pod *kapi.Pod) error { build.Status.Message = "" nextStatus = buildapi.BuildPhasePending if secret := build.Spec.Output.PushSecret; secret != nil && currentReason != buildapi.StatusReasonMissingPushSecret { - if _, err := bc.secretClient.Secrets(build.Namespace).Get(secret.Name); err != nil && errors.IsNotFound(err) { + if _, err := bc.secretClient.Secrets(build.Namespace).Get(secret.Name, metav1.GetOptions{}); err != nil && errors.IsNotFound(err) { build.Status.Reason = buildapi.StatusReasonMissingPushSecret build.Status.Message = buildapi.StatusMessageMissingPushSecret glog.V(4).Infof("Setting reason for pending build to %q due to missing secret %s/%s", build.Status.Reason, build.Namespace, secret.Name) @@ -202,7 +206,7 @@ func (bc *BuildPodController) HandlePod(pod *kapi.Pod) error { glog.V(4).Infof("Updating build %s/%s status %s -> %s%s", build.Namespace, build.Name, build.Status.Phase, nextStatus, reason) build.Status.Phase = nextStatus if build.Status.Phase == buildapi.BuildPhaseRunning { - now := unversioned.Now() + now := metav1.Now() build.Status.StartTimestamp = &now bc.recorder.Eventf(build, kapi.EventTypeNormal, buildapi.BuildStartedEventReason, fmt.Sprintf(buildapi.BuildStartedEventMessage, build.Namespace, build.Name)) } diff --git a/pkg/build/controller/buildpod/controller_test.go b/pkg/build/controller/buildpod/controller_test.go index d418f93ef815..a05679203e23 100644 --- a/pkg/build/controller/buildpod/controller_test.go +++ b/pkg/build/controller/buildpod/controller_test.go @@ -6,10 +6,12 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" + kfakeexternal "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" + kinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -33,7 +35,7 @@ func (c *customBuildUpdater) Update(namespace string, build *buildapi.Build) err func mockPod(status kapi.PodPhase, exitCode int) *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "data-build-build", Namespace: "namespace", Annotations: map[string]string{ @@ -55,7 +57,7 @@ func mockPod(status kapi.PodPhase, exitCode int) *kapi.Pod { func mockBuild(phase buildapi.BuildPhase, output buildapi.BuildOutput) *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "data-build", Namespace: "namespace", Annotations: map[string]string{ @@ -115,14 +117,14 @@ func TestHandlePod(t *testing.T) { matchID bool inStatus buildapi.BuildPhase outStatus buildapi.BuildPhase - startTimestamp *unversioned.Time - completionTimestamp *unversioned.Time + startTimestamp *metav1.Time + completionTimestamp *metav1.Time podStatus kapi.PodPhase exitCode int buildUpdater buildclient.BuildUpdater } - dummy := unversioned.Now() + dummy := metav1.Now() curtime := &dummy tests := []handlePodTest{ { // 0 diff --git a/pkg/build/controller/common/util.go b/pkg/build/controller/common/util.go index afd3841a7e91..46c02bdcbc03 100644 --- a/pkg/build/controller/common/util.go +++ b/pkg/build/controller/common/util.go @@ -3,12 +3,12 @@ package common import ( "fmt" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/controller/policy" buildutil "github.com/openshift/origin/pkg/build/util" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" ) // SetBuildCompletionTimeAndDuration will set the build completion timestamp @@ -19,7 +19,7 @@ func SetBuildCompletionTimeAndDuration(build *buildapi.Build) bool { if build.Status.CompletionTimestamp != nil { return false } - now := unversioned.Now() + now := metav1.Now() build.Status.CompletionTimestamp = &now // apparently this build completed so fast we didn't see the pod running event, // so just use the completion time as the start time. diff --git a/pkg/build/controller/config_controller.go b/pkg/build/controller/config_controller.go index b649f4b286f4..b89c4945d7e2 100644 --- a/pkg/build/controller/config_controller.go +++ b/pkg/build/controller/config_controller.go @@ -4,10 +4,11 @@ import ( "fmt" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/record" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/record" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -62,7 +63,7 @@ func (c *BuildConfigController) HandleBuildConfig(bc *buildapi.BuildConfig) erro buildapi.BuildTriggerCause{ Message: buildapi.BuildTriggerCauseConfigMsg, }), - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: bc.Name, Namespace: bc.Namespace, }, diff --git a/pkg/build/controller/config_controller_test.go b/pkg/build/controller/config_controller_test.go index 5e7cab99f2b9..c9c7606a07c5 100644 --- a/pkg/build/controller/config_controller_test.go +++ b/pkg/build/controller/config_controller_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "k8s.io/kubernetes/pkg/client/record" + "k8s.io/client-go/tools/record" buildapi "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/build/controller/controller.go b/pkg/build/controller/controller.go index 3455a4ccb939..558c0043d773 100644 --- a/pkg/build/controller/controller.go +++ b/pkg/build/controller/controller.go @@ -5,10 +5,11 @@ import ( "github.com/golang/glog" + errors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/record" kapi "k8s.io/kubernetes/pkg/api" - errors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/record" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" builddefaults "github.com/openshift/origin/pkg/build/admission/defaults" buildoverrides "github.com/openshift/origin/pkg/build/admission/overrides" @@ -318,7 +319,7 @@ func (bc *BuildDeleteController) HandleBuildDeletion(build *buildapi.Build) erro // in the cache store, given a pod for the build func buildKey(pod *kapi.Pod) *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildutil.GetBuildName(pod), Namespace: pod.Namespace, }, diff --git a/pkg/build/controller/controller_test.go b/pkg/build/controller/controller_test.go index ac69779b9d48..c1b1eaf60318 100644 --- a/pkg/build/controller/controller_test.go +++ b/pkg/build/controller/controller_test.go @@ -5,10 +5,10 @@ import ( "reflect" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/record" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/record" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -24,7 +24,7 @@ func (okc *okBuildUpdater) Update(namespace string, build *buildapi.Build) error type okBuildLister struct{} -func (okc *okBuildLister) List(namespace string, opts kapi.ListOptions) (*buildapi.BuildList, error) { +func (okc *okBuildLister) List(namespace string, opts metav1.ListOptions) (*buildapi.BuildList, error) { return &buildapi.BuildList{Items: []buildapi.Build{}}, nil } @@ -95,7 +95,7 @@ type okImageStreamClient struct{} func (*okImageStreamClient) GetImageStream(namespace, name string) (*imageapi.ImageStream, error) { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: namespace}, + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, Status: imageapi.ImageStreamStatus{ DockerImageRepository: "image/repo", }, @@ -116,7 +116,7 @@ func (*errNotFoundImageStreamClient) GetImageStream(namespace, name string) (*im func mockBuild(phase buildapi.BuildPhase, output buildapi.BuildOutput) *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "data-build", Namespace: "namespace", Annotations: map[string]string{ @@ -163,7 +163,7 @@ func mockBuildController() *BuildController { func mockPod(status kapi.PodPhase, exitCode int) *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "data-build-build", Annotations: map[string]string{ buildapi.BuildAnnotation: "data-build", @@ -436,10 +436,10 @@ func TestCancelBuild(t *testing.T) { exitCode int buildUpdater buildclient.BuildUpdater podManager podManager - startTimestamp *unversioned.Time - completionTimestamp *unversioned.Time + startTimestamp *metav1.Time + completionTimestamp *metav1.Time } - dummy := unversioned.Now() + dummy := metav1.Now() curtime := &dummy tests := []handleCancelBuildTest{ @@ -584,7 +584,7 @@ func TestHandleHandleBuildDeletionOK(t *testing.T) { build := mockBuild(buildapi.BuildPhaseComplete, buildapi.BuildOutput{}) ctrl := BuildDeleteController{&customPodManager{ GetPodFunc: func(namespace, names string) (*kapi.Pod, error) { - return &kapi.Pod{ObjectMeta: kapi.ObjectMeta{ + return &kapi.Pod{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{buildapi.BuildLabel: buildapi.LabelValue(build.Name)}, Annotations: map[string]string{buildapi.BuildAnnotation: build.Name}, }}, nil @@ -610,7 +610,7 @@ func TestHandleHandlePipelineBuildDeletionOK(t *testing.T) { build.Spec.Strategy.JenkinsPipelineStrategy = &buildapi.JenkinsPipelineBuildStrategy{} ctrl := BuildDeleteController{&customPodManager{ GetPodFunc: func(namespace, names string) (*kapi.Pod, error) { - return &kapi.Pod{ObjectMeta: kapi.ObjectMeta{ + return &kapi.Pod{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{buildapi.BuildLabel: buildapi.LabelValue(build.Name)}, Annotations: map[string]string{buildapi.BuildAnnotation: build.Name}, }}, nil @@ -635,7 +635,7 @@ func TestHandleHandleBuildDeletionOKDeprecatedLabel(t *testing.T) { build := mockBuild(buildapi.BuildPhaseComplete, buildapi.BuildOutput{}) ctrl := BuildDeleteController{&customPodManager{ GetPodFunc: func(namespace, names string) (*kapi.Pod, error) { - return &kapi.Pod{ObjectMeta: kapi.ObjectMeta{ + return &kapi.Pod{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{buildapi.BuildLabel: buildapi.LabelValue(build.Name)}, Annotations: map[string]string{buildapi.BuildAnnotation: build.Name}, }}, nil @@ -717,7 +717,7 @@ func TestHandleHandleBuildDeletionDeletePodError(t *testing.T) { build := mockBuild(buildapi.BuildPhaseComplete, buildapi.BuildOutput{}) ctrl := BuildDeleteController{&customPodManager{ GetPodFunc: func(namespace, names string) (*kapi.Pod, error) { - return &kapi.Pod{ObjectMeta: kapi.ObjectMeta{ + return &kapi.Pod{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{buildapi.BuildLabel: buildapi.LabelValue(build.Name)}, Annotations: map[string]string{buildapi.BuildAnnotation: build.Name}, }}, nil diff --git a/pkg/build/controller/factory/factory.go b/pkg/build/controller/factory/factory.go index 6a7804c1afed..6d6410290e00 100644 --- a/pkg/build/controller/factory/factory.go +++ b/pkg/build/controller/factory/factory.go @@ -6,18 +6,20 @@ import ( "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + kclientv1 "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/flowcontrol" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" builddefaults "github.com/openshift/origin/pkg/build/admission/defaults" buildoverrides "github.com/openshift/origin/pkg/build/admission/overrides" @@ -55,7 +57,7 @@ func limitedLogAndRetry(buildupdater buildclient.BuildUpdater, maxTimeout time.D build.Status.Message = buildapi.StatusMessageExceededRetryTimeout } build.Status.Message = errors.ErrorToSentence(err) - now := unversioned.Now() + now := metav1.Now() build.Status.CompletionTimestamp = &now glog.V(3).Infof("Giving up retrying Build %s/%s: %v", build.Namespace, build.Name, err) utilruntime.HandleError(err) @@ -353,7 +355,7 @@ type podLW struct { } // List lists all Pods that have a build label. -func (lw *podLW) List(options kapi.ListOptions) (runtime.Object, error) { +func (lw *podLW) List(options metav1.ListOptions) (runtime.Object, error) { return listPods(lw.client) } @@ -363,7 +365,7 @@ func listPods(client kclientset.Interface) (*kapi.PodList, error) { if err != nil { return nil, err } - listNew, err := client.Core().Pods(kapi.NamespaceAll).List(kapi.ListOptions{LabelSelector: sel}) + listNew, err := client.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{LabelSelector: sel.String()}) if err != nil { return nil, err } @@ -371,17 +373,17 @@ func listPods(client kclientset.Interface) (*kapi.PodList, error) { } // Watch watches all Pods that have a build label. -func (lw *podLW) Watch(options kapi.ListOptions) (watch.Interface, error) { +func (lw *podLW) Watch(options metav1.ListOptions) (watch.Interface, error) { // FIXME: since we cannot have OR on label name we'll just get builds with new label sel, err := labels.Parse(buildapi.BuildLabel) if err != nil { return nil, err } - opts := kapi.ListOptions{ - LabelSelector: sel, + opts := metav1.ListOptions{ + LabelSelector: sel.String(), ResourceVersion: options.ResourceVersion, } - return lw.client.Core().Pods(kapi.NamespaceAll).Watch(opts) + return lw.client.Core().Pods(metav1.NamespaceAll).Watch(opts) } // buildLW is a ListWatcher implementation for Builds. @@ -390,13 +392,13 @@ type buildLW struct { } // List lists all Builds. -func (lw *buildLW) List(options kapi.ListOptions) (runtime.Object, error) { - return lw.client.Builds(kapi.NamespaceAll).List(options) +func (lw *buildLW) List(options metainternal.ListOptions) (runtime.Object, error) { + return lw.client.Builds(metav1.NamespaceAll).List(options) } // Watch watches all Builds. -func (lw *buildLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - return lw.client.Builds(kapi.NamespaceAll).Watch(options) +func (lw *buildLW) Watch(options metainternal.ListOptions) (watch.Interface, error) { + return lw.client.Builds(metav1.NamespaceAll).Watch(options) } // buildDeleteLW is a ListWatcher implementation that watches for builds being deleted @@ -406,7 +408,7 @@ type buildDeleteLW struct { } // List returns an empty list but adds delete events to the store for all Builds that have been deleted but still have pods. -func (lw *buildDeleteLW) List(options kapi.ListOptions) (runtime.Object, error) { +func (lw *buildDeleteLW) List(options metav1.ListOptions) (runtime.Object, error) { glog.V(5).Info("Checking for deleted builds") podList, err := listPods(lw.KubeClient) if err != nil { @@ -421,7 +423,7 @@ func (lw *buildDeleteLW) List(options kapi.ListOptions) (runtime.Object, error) } glog.V(5).Infof("Found build pod %s/%s", pod.Namespace, pod.Name) - build, err := lw.Client.Builds(pod.Namespace).Get(buildName) + build, err := lw.Client.Builds(pod.Namespace).Get(buildName, metav1.GetOptions{}) if err != nil && !kerrors.IsNotFound(err) { glog.V(4).Infof("Error getting build for pod %s/%s: %v", pod.Namespace, pod.Name, err) return nil, err @@ -431,7 +433,7 @@ func (lw *buildDeleteLW) List(options kapi.ListOptions) (runtime.Object, error) } if build == nil { deletedBuild := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildName, Namespace: pod.Namespace, }, @@ -449,8 +451,8 @@ func (lw *buildDeleteLW) List(options kapi.ListOptions) (runtime.Object, error) } // Watch watches all Builds. -func (lw *buildDeleteLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - return lw.Client.Builds(kapi.NamespaceAll).Watch(options) +func (lw *buildDeleteLW) Watch(options metainternal.ListOptions) (watch.Interface, error) { + return lw.Client.Builds(metav1.NamespaceAll).Watch(options) } // buildConfigLW is a ListWatcher implementation for BuildConfigs. @@ -459,13 +461,13 @@ type buildConfigLW struct { } // List lists all BuildConfigs. -func (lw *buildConfigLW) List(options kapi.ListOptions) (runtime.Object, error) { - return lw.client.BuildConfigs(kapi.NamespaceAll).List(options) +func (lw *buildConfigLW) List(options metainternal.ListOptions) (runtime.Object, error) { + return lw.client.BuildConfigs(metav1.NamespaceAll).List(options) } // Watch watches all BuildConfigs. -func (lw *buildConfigLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - return lw.client.BuildConfigs(kapi.NamespaceAll).Watch(options) +func (lw *buildConfigLW) Watch(options metainternal.ListOptions) (watch.Interface, error) { + return lw.client.BuildConfigs(metav1.NamespaceAll).Watch(options) } // imageStreamLW is a ListWatcher for ImageStreams. @@ -474,13 +476,13 @@ type imageStreamLW struct { } // List lists all ImageStreams. -func (lw *imageStreamLW) List(options kapi.ListOptions) (runtime.Object, error) { - return lw.client.ImageStreams(kapi.NamespaceAll).List(options) +func (lw *imageStreamLW) List(options metainternal.ListOptions) (runtime.Object, error) { + return lw.client.ImageStreams(metav1.NamespaceAll).List(options) } // Watch watches all ImageStreams. -func (lw *imageStreamLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - return lw.client.ImageStreams(kapi.NamespaceAll).Watch(options) +func (lw *imageStreamLW) Watch(options metainternal.ListOptions) (watch.Interface, error) { + return lw.client.ImageStreams(metav1.NamespaceAll).Watch(options) } // ControllerClient implements the common interfaces needed for build controllers @@ -501,10 +503,10 @@ func (c ControllerClient) DeletePod(namespace string, pod *kapi.Pod) error { // GetPod gets a pod using the Kubernetes client. func (c ControllerClient) GetPod(namespace, name string) (*kapi.Pod, error) { - return c.KubeClient.Core().Pods(namespace).Get(name) + return c.KubeClient.Core().Pods(namespace).Get(name, metav1.GetOptions{}) } // GetImageStream retrieves an image repository by namespace and name func (c ControllerClient) GetImageStream(namespace, name string) (*imageapi.ImageStream, error) { - return c.Client.ImageStreams(namespace).Get(name) + return c.Client.ImageStreams(namespace).Get(name, metav1.GetOptions{}) } diff --git a/pkg/build/controller/factory/factory_test.go b/pkg/build/controller/factory/factory_test.go index 4a0a9ed87f19..7ca244459512 100644 --- a/pkg/build/controller/factory/factory_test.go +++ b/pkg/build/controller/factory/factory_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" buildapi "github.com/openshift/origin/pkg/build/api" controller "github.com/openshift/origin/pkg/controller" @@ -27,10 +27,10 @@ func TestLimitedLogAndRetryFinish(t *testing.T) { updater := &buildUpdater{} err := errors.New("funky error") - now := unversioned.Now() + now := metav1.Now() retry := controller.Retry{ Count: 0, - StartTimestamp: unversioned.Date(now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute()-31, now.Second(), now.Nanosecond(), now.Location()), + StartTimestamp: metav1.Date(now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute()-31, now.Second(), now.Nanosecond(), now.Location()), } if limitedLogAndRetry(updater, 30*time.Minute)(&buildapi.Build{Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseNew}}, err, retry) { t.Error("Expected no more retries after reaching timeout!") @@ -53,10 +53,10 @@ func TestLimitedLogAndRetryProcessing(t *testing.T) { updater := &buildUpdater{} err := errors.New("funky error") - now := unversioned.Now() + now := metav1.Now() retry := controller.Retry{ Count: 0, - StartTimestamp: unversioned.Date(now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute()-10, now.Second(), now.Nanosecond(), now.Location()), + StartTimestamp: metav1.Date(now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute()-10, now.Second(), now.Nanosecond(), now.Location()), } if !limitedLogAndRetry(updater, 30*time.Minute)(&buildapi.Build{Status: buildapi.BuildStatus{Phase: buildapi.BuildPhaseNew}}, err, retry) { t.Error("Expected more retries!") diff --git a/pkg/build/controller/image_change_controller.go b/pkg/build/controller/image_change_controller.go index 0701d531cd2e..f4f06bee135d 100644 --- a/pkg/build/controller/image_change_controller.go +++ b/pkg/build/controller/image_change_controller.go @@ -5,10 +5,11 @@ import ( "strings" "github.com/golang/glog" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" kapi "k8s.io/kubernetes/pkg/api" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -115,7 +116,7 @@ func (c *ImageChangeController) HandleImageStream(stream *imageapi.ImageStream) buildCauses := []buildapi.BuildTriggerCause{} // instantiate new build request := &buildapi.BuildRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: config.Name, Namespace: config.Namespace, }, diff --git a/pkg/build/controller/image_change_controller_test.go b/pkg/build/controller/image_change_controller_test.go index fb0e23de61da..18448962ce07 100644 --- a/pkg/build/controller/image_change_controller_test.go +++ b/pkg/build/controller/image_change_controller_test.go @@ -6,8 +6,10 @@ import ( "strings" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" buildapi "github.com/openshift/origin/pkg/build/api" @@ -304,9 +306,9 @@ func (m *mockBuildConfigUpdater) Update(buildcfg *buildapi.BuildConfig) error { func mockBuildConfig(baseImage, triggerImage, repoName, repoTag string) *buildapi.BuildConfig { dockerfile := "FROM foo" return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testBuildCfg", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ @@ -346,9 +348,9 @@ func mockImageStream(repoName, dockerImageRepo string, tags map[string]string) * } return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: repoName, - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Status: imageapi.ImageStreamStatus{ DockerImageRepository: dockerImageRepo, @@ -359,7 +361,7 @@ func mockImageStream(repoName, dockerImageRepo string, tags map[string]string) * func mockImage(name, dockerSpec string) *imageapi.Image { return &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: dockerSpec, @@ -376,12 +378,12 @@ type buildConfigInstantiator struct { func (i *buildConfigInstantiator) Instantiate(namespace string, request *buildapi.BuildRequest) (*buildapi.Build, error) { i.name = request.Name - return i.generator.Instantiate(kapi.WithNamespace(kapi.NewContext(), namespace), request) + return i.generator.Instantiate(apirequest.WithNamespace(apirequest.NewContext(), namespace), request) } func mockBuildConfigInstantiator(buildcfg *buildapi.BuildConfig, imageStream *imageapi.ImageStream, image *imageapi.Image) *buildConfigInstantiator { builderAccount := kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{Name: bootstrappolicy.BuilderServiceAccountName, Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: bootstrappolicy.BuilderServiceAccountName, Namespace: metav1.NamespaceDefault}, Secrets: []kapi.ObjectReference{}, } instantiator := &buildConfigInstantiator{} @@ -390,26 +392,26 @@ func mockBuildConfigInstantiator(buildcfg *buildapi.BuildConfig, imageStream *im Secrets: fake.NewSimpleClientset().Core(), ServiceAccounts: fake.NewSimpleClientset(&builderAccount).Core(), Client: buildgenerator.Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return buildcfg, nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return instantiator.buildConfigUpdater.Update(buildConfig) }, - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { instantiator.newBuild = build return instantiator.err }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return instantiator.newBuild, nil }, - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return imageStream, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{Image: *image}, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{Image: *image}, nil }, }} diff --git a/pkg/build/controller/jenkins/jenkins.go b/pkg/build/controller/jenkins/jenkins.go index 4430ae841ed8..6df26a8ff4ee 100644 --- a/pkg/build/controller/jenkins/jenkins.go +++ b/pkg/build/controller/jenkins/jenkins.go @@ -5,11 +5,11 @@ import ( "github.com/golang/glog" + kerrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" serverapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -38,7 +38,7 @@ func NewPipelineTemplate(ns string, conf serverapi.JenkinsPipelineConfig, osClie // Process processes the Jenkins template. If an error occurs func (t *PipelineTemplate) Process() (*kapi.List, []error) { var errors []error - jenkinsTemplate, err := t.osClient.Templates(t.Config.TemplateNamespace).Get(t.Config.TemplateName) + jenkinsTemplate, err := t.osClient.Templates(t.Config.TemplateNamespace).Get(t.Config.TemplateName, metav1.GetOptions{}) if err != nil { if kerrs.IsNotFound(err) { errors = append(errors, fmt.Errorf("Jenkins pipeline template %s/%s not found", t.Config.TemplateNamespace, t.Config.TemplateName)) @@ -64,7 +64,7 @@ func (t *PipelineTemplate) Process() (*kapi.List, []error) { } } glog.V(4).Infof("Processed Jenkins pipeline jenkinsTemplate %s/%s", pTemplate.Namespace, pTemplate.Namespace) - return &kapi.List{ListMeta: unversioned.ListMeta{}, Items: items}, errors + return &kapi.List{ListMeta: metav1.ListMeta{}, Items: items}, errors } // HasJenkinsService searches the template items and return true if the expected diff --git a/pkg/build/controller/policy/policy.go b/pkg/build/controller/policy/policy.go index e7b163299688..5b70ee86ae15 100644 --- a/pkg/build/controller/policy/policy.go +++ b/pkg/build/controller/policy/policy.go @@ -6,8 +6,8 @@ import ( "github.com/golang/glog" "github.com/pborman/uuid" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/wait" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/wait" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" diff --git a/pkg/build/controller/policy/policy_test.go b/pkg/build/controller/policy/policy_test.go index deac7cf5f1e3..4a0527a6df77 100644 --- a/pkg/build/controller/policy/policy_test.go +++ b/pkg/build/controller/policy/policy_test.go @@ -7,8 +7,9 @@ import ( "errors" buildapi "github.com/openshift/origin/pkg/build/api" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) type fakeBuildClient struct { @@ -20,7 +21,7 @@ func newTestClient(builds []buildapi.Build) *fakeBuildClient { return &fakeBuildClient{builds: &buildapi.BuildList{Items: builds}} } -func (f *fakeBuildClient) List(namespace string, opts kapi.ListOptions) (*buildapi.BuildList, error) { +func (f *fakeBuildClient) List(namespace string, opts metav1.ListOptions) (*buildapi.BuildList, error) { return f.builds, nil } @@ -45,7 +46,7 @@ func addBuild(name, bcName string, phase buildapi.BuildPhase, policy buildapi.Bu parts := strings.Split(name, "-") return buildapi.Build{ Spec: buildapi.BuildSpec{}, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: "test", Labels: map[string]string{ @@ -107,7 +108,7 @@ func TestHandleCompleteSerial(t *testing.T) { t.Errorf("unexpected error %v", err) } - resultBuilds, err := client.List("test", kapi.ListOptions{}) + resultBuilds, err := client.List("test", metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -134,7 +135,7 @@ func TestHandleCompleteParallel(t *testing.T) { t.Errorf("unexpected error %v", err) } - resultBuilds, err := client.List("test", kapi.ListOptions{}) + resultBuilds, err := client.List("test", metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/pkg/build/controller/policy/serial_latest_only.go b/pkg/build/controller/policy/serial_latest_only.go index c5fc009b2d77..8877fbcc0479 100644 --- a/pkg/build/controller/policy/serial_latest_only.go +++ b/pkg/build/controller/policy/serial_latest_only.go @@ -3,10 +3,10 @@ package policy import ( "time" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/wait" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/wait" "github.com/golang/glog" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/controller/policy/serial_latest_only_test.go b/pkg/build/controller/policy/serial_latest_only_test.go index b085edf0bbab..b3431ef52a63 100644 --- a/pkg/build/controller/policy/serial_latest_only_test.go +++ b/pkg/build/controller/policy/serial_latest_only_test.go @@ -4,7 +4,7 @@ import ( "testing" buildapi "github.com/openshift/origin/pkg/build/api" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestSerialLatestOnlyIsRunnableNewBuilds(t *testing.T) { @@ -41,7 +41,7 @@ func TestSerialLatestOnlyIsRunnableNewBuilds(t *testing.T) { t.Errorf("%s should be runnable, it is not", build.Name) } } - builds, err := client.List("test", kapi.ListOptions{}) + builds, err := client.List("test", metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -68,7 +68,7 @@ func TestSerialLatestOnlyIsRunnableMixed(t *testing.T) { t.Errorf("%s should not be runnable", build.Name) } } - builds, err := client.List("test", kapi.ListOptions{}) + builds, err := client.List("test", metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/pkg/build/controller/strategy/custom.go b/pkg/build/controller/strategy/custom.go index d365b986f2f4..6474b9b176f5 100644 --- a/pkg/build/controller/strategy/custom.go +++ b/pkg/build/controller/strategy/custom.go @@ -5,9 +5,10 @@ import ( "fmt" "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -29,7 +30,7 @@ func (bs *CustomBuildStrategy) CreateBuildPod(build *buildapi.Build) (*kapi.Pod, codec := bs.Codec if len(strategy.BuildAPIVersion) != 0 { - gv, err := unversioned.ParseGroupVersion(strategy.BuildAPIVersion) + gv, err := schema.ParseGroupVersion(strategy.BuildAPIVersion) if err != nil { return nil, &FatalError{fmt.Sprintf("failed to parse buildAPIVersion specified in custom build strategy (%q): %v", strategy.BuildAPIVersion, err)} } @@ -70,7 +71,7 @@ func (bs *CustomBuildStrategy) CreateBuildPod(build *buildapi.Build) (*kapi.Pod, privileged := true pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildapi.GetBuildPodName(build), Namespace: build.Namespace, Labels: getPodLabels(build), diff --git a/pkg/build/controller/strategy/custom_test.go b/pkg/build/controller/strategy/custom_test.go index 2aa28382c53c..7a908165e60f 100644 --- a/pkg/build/controller/strategy/custom_test.go +++ b/pkg/build/controller/strategy/custom_test.go @@ -6,11 +6,11 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation" buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -129,7 +129,7 @@ func TestCustomCreateBuildPodWithCustomCodec(t *testing.T) { Codec: kapi.Codecs.LegacyCodec(buildapi.LegacySchemeGroupVersion), } - for _, version := range registered.GroupOrDie(buildapi.LegacyGroupName).GroupVersions { + for _, version := range kapi.Registry.GroupOrDie(buildapi.LegacyGroupName).GroupVersions { // Create new Build specification and modify Spec API version build := mockCustomBuild(false, false) build.Spec.Strategy.CustomStrategy.BuildAPIVersion = fmt.Sprintf("%s/%s", version.Group, version.Version) @@ -183,7 +183,7 @@ func mockCustomBuild(forcePull, emptySource bool) *buildapi.Build { } } return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "customBuild", Labels: map[string]string{ "name": "customBuild", diff --git a/pkg/build/controller/strategy/docker.go b/pkg/build/controller/strategy/docker.go index a6026fcd8277..1055e570240e 100644 --- a/pkg/build/controller/strategy/docker.go +++ b/pkg/build/controller/strategy/docker.go @@ -3,8 +3,9 @@ package strategy import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/util" @@ -42,7 +43,7 @@ func (bs *DockerBuildStrategy) CreateBuildPod(build *buildapi.Build) (*kapi.Pod, } pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildapi.GetBuildPodName(build), Namespace: build.Namespace, Labels: getPodLabels(build), diff --git a/pkg/build/controller/strategy/docker_test.go b/pkg/build/controller/strategy/docker_test.go index 91fb0141c361..38ef78b1bab4 100644 --- a/pkg/build/controller/strategy/docker_test.go +++ b/pkg/build/controller/strategy/docker_test.go @@ -5,10 +5,11 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation" buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -120,7 +121,7 @@ func TestDockerBuildLongName(t *testing.T) { func mockDockerBuild() *buildapi.Build { timeout := int64(60) return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dockerBuild", Labels: map[string]string{ "name": "dockerBuild", diff --git a/pkg/build/controller/strategy/sti.go b/pkg/build/controller/strategy/sti.go index 360902ff9aea..88f67a50b0a7 100644 --- a/pkg/build/controller/strategy/sti.go +++ b/pkg/build/controller/strategy/sti.go @@ -5,9 +5,10 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/serviceaccount" buildapi "github.com/openshift/origin/pkg/build/api" @@ -65,7 +66,7 @@ func (bs *SourceBuildStrategy) CreateBuildPod(build *buildapi.Build) (*kapi.Pod, privileged := true pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildapi.GetBuildPodName(build), Namespace: build.Namespace, Labels: getPodLabels(build), @@ -110,7 +111,7 @@ func (bs *SourceBuildStrategy) canRunAsRoot(build *buildapi.Build) bool { var rootUser int64 rootUser = 0 pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildapi.GetBuildPodName(build), Namespace: build.Namespace, }, diff --git a/pkg/build/controller/strategy/sti_test.go b/pkg/build/controller/strategy/sti_test.go index 4f01319f8d77..f02e8e0591e3 100644 --- a/pkg/build/controller/strategy/sti_test.go +++ b/pkg/build/controller/strategy/sti_test.go @@ -6,11 +6,12 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation" buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -175,7 +176,7 @@ func TestS2IBuildLongName(t *testing.T) { func mockSTIBuild() *buildapi.Build { timeout := int64(60) return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "stiBuild", Labels: map[string]string{ "name": "stiBuild", diff --git a/pkg/build/controller/strategy/util.go b/pkg/build/controller/strategy/util.go index fc9820a2b8fe..c5b70da22619 100644 --- a/pkg/build/controller/strategy/util.go +++ b/pkg/build/controller/strategy/util.go @@ -11,8 +11,8 @@ import ( imageapi "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/util/namer" "github.com/openshift/origin/pkg/version" + kvalidation "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - kvalidation "k8s.io/kubernetes/pkg/util/validation" ) const ( diff --git a/pkg/build/controller/test/fake_build_store.go b/pkg/build/controller/test/fake_build_store.go index 527977421bbb..80092a873c70 100644 --- a/pkg/build/controller/test/fake_build_store.go +++ b/pkg/build/controller/test/fake_build_store.go @@ -2,7 +2,7 @@ package test import ( buildapi "github.com/openshift/origin/pkg/build/api" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) type FakeBuildStore struct { diff --git a/pkg/build/generator/generator.go b/pkg/build/generator/generator.go index 9ab51305051e..b5914ed33464 100644 --- a/pkg/build/generator/generator.go +++ b/pkg/build/generator/generator.go @@ -9,12 +9,15 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/credentialprovider" - kvalidation "k8s.io/kubernetes/pkg/util/validation" buildapi "github.com/openshift/origin/pkg/build/api" buildutil "github.com/openshift/origin/pkg/build/util" @@ -53,66 +56,66 @@ type BuildGenerator struct { // GeneratorClient is the API client used by the generator type GeneratorClient interface { - GetBuildConfig(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) - UpdateBuildConfig(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error - GetBuild(ctx kapi.Context, name string) (*buildapi.Build, error) - CreateBuild(ctx kapi.Context, build *buildapi.Build) error - UpdateBuild(ctx kapi.Context, build *buildapi.Build) error - GetImageStream(ctx kapi.Context, name string) (*imageapi.ImageStream, error) - GetImageStreamImage(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) - GetImageStreamTag(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) + GetBuildConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) + UpdateBuildConfig(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error + GetBuild(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) + CreateBuild(ctx apirequest.Context, build *buildapi.Build) error + UpdateBuild(ctx apirequest.Context, build *buildapi.Build) error + GetImageStream(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) + GetImageStreamImage(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) + GetImageStreamTag(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) } // Client is an implementation of the GeneratorClient interface type Client struct { - GetBuildConfigFunc func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) - UpdateBuildConfigFunc func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error - GetBuildFunc func(ctx kapi.Context, name string) (*buildapi.Build, error) - CreateBuildFunc func(ctx kapi.Context, build *buildapi.Build) error - UpdateBuildFunc func(ctx kapi.Context, build *buildapi.Build) error - GetImageStreamFunc func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) - GetImageStreamImageFunc func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) - GetImageStreamTagFunc func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) + GetBuildConfigFunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) + UpdateBuildConfigFunc func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error + GetBuildFunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) + CreateBuildFunc func(ctx apirequest.Context, build *buildapi.Build) error + UpdateBuildFunc func(ctx apirequest.Context, build *buildapi.Build) error + GetImageStreamFunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) + GetImageStreamImageFunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) + GetImageStreamTagFunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) } // GetBuildConfig retrieves a named build config -func (c Client) GetBuildConfig(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { - return c.GetBuildConfigFunc(ctx, name) +func (c Client) GetBuildConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { + return c.GetBuildConfigFunc(ctx, name, options) } // UpdateBuildConfig updates a named build config -func (c Client) UpdateBuildConfig(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { +func (c Client) UpdateBuildConfig(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return c.UpdateBuildConfigFunc(ctx, buildConfig) } // GetBuild retrieves a build -func (c Client) GetBuild(ctx kapi.Context, name string) (*buildapi.Build, error) { - return c.GetBuildFunc(ctx, name) +func (c Client) GetBuild(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { + return c.GetBuildFunc(ctx, name, options) } // CreateBuild creates a new build -func (c Client) CreateBuild(ctx kapi.Context, build *buildapi.Build) error { +func (c Client) CreateBuild(ctx apirequest.Context, build *buildapi.Build) error { return c.CreateBuildFunc(ctx, build) } // UpdateBuild updates a build -func (c Client) UpdateBuild(ctx kapi.Context, build *buildapi.Build) error { +func (c Client) UpdateBuild(ctx apirequest.Context, build *buildapi.Build) error { return c.UpdateBuildFunc(ctx, build) } // GetImageStream retrieves a named image stream -func (c Client) GetImageStream(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { - return c.GetImageStreamFunc(ctx, name) +func (c Client) GetImageStream(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { + return c.GetImageStreamFunc(ctx, name, options) } // GetImageStreamImage retrieves an image stream image -func (c Client) GetImageStreamImage(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { - return c.GetImageStreamImageFunc(ctx, name) +func (c Client) GetImageStreamImage(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { + return c.GetImageStreamImageFunc(ctx, name, options) } // GetImageStreamTag retrieves and image stream tag -func (c Client) GetImageStreamTag(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { - return c.GetImageStreamTagFunc(ctx, name) +func (c Client) GetImageStreamTag(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { + return c.GetImageStreamTagFunc(ctx, name, options) } type streamRef struct { @@ -124,12 +127,12 @@ type streamRef struct { // images from private Docker registries. func (g *BuildGenerator) FetchServiceAccountSecrets(namespace, serviceAccount string) ([]kapi.Secret, error) { var result []kapi.Secret - sa, err := g.ServiceAccounts.ServiceAccounts(namespace).Get(serviceAccount) + sa, err := g.ServiceAccounts.ServiceAccounts(namespace).Get(serviceAccount, metav1.GetOptions{}) if err != nil { return result, fmt.Errorf("Error getting push/pull secrets for service account %s/%s: %v", namespace, serviceAccount, err) } for _, ref := range sa.Secrets { - secret, err := g.Secrets.Secrets(namespace).Get(ref.Name) + secret, err := g.Secrets.Secrets(namespace).Get(ref.Name, metav1.GetOptions{}) if err != nil { continue } @@ -244,9 +247,9 @@ func updateBuildArgs(oldArgs *[]kapi.EnvVar, newArgs []kapi.EnvVar) []kapi.EnvVa } // Instantiate returns a new Build object based on a BuildRequest object -func (g *BuildGenerator) Instantiate(ctx kapi.Context, request *buildapi.BuildRequest) (*buildapi.Build, error) { +func (g *BuildGenerator) Instantiate(ctx apirequest.Context, request *buildapi.BuildRequest) (*buildapi.Build, error) { glog.V(4).Infof("Generating Build from %s", describeBuildRequest(request)) - bc, err := g.Client.GetBuildConfig(ctx, request.Name) + bc, err := g.Client.GetBuildConfig(ctx, request.Name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -327,7 +330,7 @@ func (g *BuildGenerator) checkLastVersion(bc *buildapi.BuildConfig, lastVersion // updateImageTriggers sets the LastTriggeredImageID on all the ImageChangeTriggers on the BuildConfig and // updates the From reference of the strategy if the strategy uses an ImageStream or ImageStreamTag reference -func (g *BuildGenerator) updateImageTriggers(ctx kapi.Context, bc *buildapi.BuildConfig, from, triggeredBy *kapi.ObjectReference) error { +func (g *BuildGenerator) updateImageTriggers(ctx apirequest.Context, bc *buildapi.BuildConfig, from, triggeredBy *kapi.ObjectReference) error { var requestTrigger *buildapi.ImageChangeTrigger if from != nil { requestTrigger = findImageChangeTrigger(bc, from) @@ -370,16 +373,16 @@ func (g *BuildGenerator) updateImageTriggers(ctx kapi.Context, bc *buildapi.Buil } // Clone returns clone of a Build -func (g *BuildGenerator) Clone(ctx kapi.Context, request *buildapi.BuildRequest) (*buildapi.Build, error) { +func (g *BuildGenerator) Clone(ctx apirequest.Context, request *buildapi.BuildRequest) (*buildapi.Build, error) { glog.V(4).Infof("Generating build from build %s/%s", request.Namespace, request.Name) - build, err := g.Client.GetBuild(ctx, request.Name) + build, err := g.Client.GetBuild(ctx, request.Name, &metav1.GetOptions{}) if err != nil { return nil, err } var buildConfig *buildapi.BuildConfig if build.Status.Config != nil { - buildConfig, err = g.Client.GetBuildConfig(ctx, build.Status.Config.Name) + buildConfig, err = g.Client.GetBuildConfig(ctx, build.Status.Config.Name, &metav1.GetOptions{}) if err != nil && !errors.IsNotFound(err) { return nil, err } @@ -421,16 +424,16 @@ func (g *BuildGenerator) Clone(ctx kapi.Context, request *buildapi.BuildRequest) } // createBuild is responsible for validating build object and saving it and returning newly created object -func (g *BuildGenerator) createBuild(ctx kapi.Context, build *buildapi.Build) (*buildapi.Build, error) { - if !kapi.ValidNamespace(ctx, &build.ObjectMeta) { +func (g *BuildGenerator) createBuild(ctx apirequest.Context, build *buildapi.Build) (*buildapi.Build, error) { + if !rest.ValidNamespace(ctx, &build.ObjectMeta) { return nil, errors.NewConflict(buildapi.Resource("build"), build.Namespace, fmt.Errorf("Build.Namespace does not match the provided context")) } - kapi.FillObjectMetaSystemFields(ctx, &build.ObjectMeta) + rest.FillObjectMetaSystemFields(ctx, &build.ObjectMeta) err := g.Client.CreateBuild(ctx, build) if err != nil { return nil, err } - return g.Client.GetBuild(ctx, build.Name) + return g.Client.GetBuild(ctx, build.Name, &metav1.GetOptions{}) } // generateBuildFromConfig generates a build definition based on the current imageid @@ -438,7 +441,7 @@ func (g *BuildGenerator) createBuild(ctx kapi.Context, build *buildapi.Build) (* // the Strategy, or uses the Image field of the Strategy. If binary is provided, override // the current build strategy with a binary artifact for this specific build. // Takes a BuildConfig to base the build on, and an optional SourceRevision to build. -func (g *BuildGenerator) generateBuildFromConfig(ctx kapi.Context, bc *buildapi.BuildConfig, revision *buildapi.SourceRevision, binary *buildapi.BinaryBuildSource) (*buildapi.Build, error) { +func (g *BuildGenerator) generateBuildFromConfig(ctx apirequest.Context, bc *buildapi.BuildConfig, revision *buildapi.SourceRevision, binary *buildapi.BinaryBuildSource) (*buildapi.Build, error) { // Need to copy the buildConfig here so that it doesn't share pointers with // the build object which could be (will be) modified later. @@ -460,10 +463,10 @@ func (g *BuildGenerator) generateBuildFromConfig(ctx kapi.Context, bc *buildapi. NodeSelector: bcCopy.Spec.NodeSelector, }, }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: buildName, Labels: bcCopy.Labels, - OwnerReferences: []kapi.OwnerReference{ + OwnerReferences: []metav1.OwnerReference{ { APIVersion: "v1", // BuildConfig.APIVersion is not populated Kind: "BuildConfig", // BuildConfig.Kind is not populated @@ -504,7 +507,7 @@ func (g *BuildGenerator) generateBuildFromConfig(ctx kapi.Context, bc *buildapi. } // setBuildSourceImage set BuildSource Image item for new build -func (g *BuildGenerator) setBuildSourceImage(ctx kapi.Context, builderSecrets []kapi.Secret, bcCopy *buildapi.BuildConfig, Source *buildapi.BuildSource) error { +func (g *BuildGenerator) setBuildSourceImage(ctx apirequest.Context, builderSecrets []kapi.Secret, bcCopy *buildapi.BuildConfig, Source *buildapi.BuildSource) error { var err error strategyImageChangeTrigger := getStrategyImageChangeTrigger(bcCopy) @@ -544,7 +547,7 @@ func (g *BuildGenerator) setBuildSourceImage(ctx kapi.Context, builderSecrets [] } // setBaseImageAndPullSecretForBuildStrategy sets base image and pullSecret items used in buildStragety for new builds -func (g *BuildGenerator) setBaseImageAndPullSecretForBuildStrategy(ctx kapi.Context, builderSecrets []kapi.Secret, bcCopy *buildapi.BuildConfig, strategy *buildapi.BuildStrategy) error { +func (g *BuildGenerator) setBaseImageAndPullSecretForBuildStrategy(ctx apirequest.Context, builderSecrets []kapi.Secret, bcCopy *buildapi.BuildConfig, strategy *buildapi.BuildStrategy) error { var err error var image string @@ -625,7 +628,7 @@ func (g *BuildGenerator) setBaseImageAndPullSecretForBuildStrategy(ctx kapi.Cont // resolveImageStreamReference looks up the ImageStream[Tag/Image] and converts it to a // docker pull spec that can be used in an Image field. -func (g *BuildGenerator) resolveImageStreamReference(ctx kapi.Context, from kapi.ObjectReference, defaultNamespace string) (string, error) { +func (g *BuildGenerator) resolveImageStreamReference(ctx apirequest.Context, from kapi.ObjectReference, defaultNamespace string) (string, error) { var namespace string if len(from.Namespace) != 0 { namespace = from.Namespace @@ -642,7 +645,7 @@ func (g *BuildGenerator) resolveImageStreamReference(ctx kapi.Context, from kapi glog.V(2).Info(err) return "", err } - stream, err := g.Client.GetImageStream(kapi.WithNamespace(ctx, namespace), name) + stream, err := g.Client.GetImageStream(apirequest.WithNamespace(ctx, namespace), name, &metav1.GetOptions{}) if err != nil { err = resolveError(from.Kind, namespace, from.Name, err) glog.V(2).Info(err) @@ -664,7 +667,7 @@ func (g *BuildGenerator) resolveImageStreamReference(ctx kapi.Context, from kapi glog.V(2).Info(err) return "", err } - stream, err := g.Client.GetImageStream(kapi.WithNamespace(ctx, namespace), name) + stream, err := g.Client.GetImageStream(apirequest.WithNamespace(ctx, namespace), name, &metav1.GetOptions{}) if err != nil { err = resolveError(from.Kind, namespace, from.Name, err) glog.V(2).Info(err) @@ -687,7 +690,7 @@ func (g *BuildGenerator) resolveImageStreamReference(ctx kapi.Context, from kapi // resolveImageStreamDockerRepository looks up the ImageStream[Tag/Image] and converts it to a // the docker repository reference with no tag information -func (g *BuildGenerator) resolveImageStreamDockerRepository(ctx kapi.Context, from kapi.ObjectReference, defaultNamespace string) (string, error) { +func (g *BuildGenerator) resolveImageStreamDockerRepository(ctx apirequest.Context, from kapi.ObjectReference, defaultNamespace string) (string, error) { namespace := defaultNamespace if len(from.Namespace) > 0 { namespace = from.Namespace @@ -696,7 +699,7 @@ func (g *BuildGenerator) resolveImageStreamDockerRepository(ctx kapi.Context, fr glog.V(4).Infof("Resolving ImageStreamReference %s of Kind %s in namespace %s", from.Name, from.Kind, namespace) switch from.Kind { case "ImageStreamImage": - imageStreamImage, err := g.Client.GetImageStreamImage(kapi.WithNamespace(ctx, namespace), from.Name) + imageStreamImage, err := g.Client.GetImageStreamImage(apirequest.WithNamespace(ctx, namespace), from.Name, &metav1.GetOptions{}) if err != nil { err = resolveError(from.Kind, namespace, from.Name, err) glog.V(2).Info(err) @@ -707,7 +710,7 @@ func (g *BuildGenerator) resolveImageStreamDockerRepository(ctx kapi.Context, fr return image.DockerImageReference, nil case "ImageStreamTag": name := strings.Split(from.Name, ":")[0] - is, err := g.Client.GetImageStream(kapi.WithNamespace(ctx, namespace), name) + is, err := g.Client.GetImageStream(apirequest.WithNamespace(ctx, namespace), name, &metav1.GetOptions{}) if err != nil { err = resolveError("ImageStream", namespace, from.Name, err) glog.V(2).Info(err) @@ -729,7 +732,7 @@ func (g *BuildGenerator) resolveImageStreamDockerRepository(ctx kapi.Context, fr // resolveImageSecret looks up the Secrets provided by the Service Account and // attempt to find a best match for given image. -func (g *BuildGenerator) resolveImageSecret(ctx kapi.Context, secrets []kapi.Secret, imageRef *kapi.ObjectReference, buildNamespace string) *kapi.LocalObjectReference { +func (g *BuildGenerator) resolveImageSecret(ctx apirequest.Context, secrets []kapi.Secret, imageRef *kapi.ObjectReference, buildNamespace string) *kapi.LocalObjectReference { if len(secrets) == 0 || imageRef == nil { return nil } @@ -741,7 +744,13 @@ func (g *BuildGenerator) resolveImageSecret(ctx kapi.Context, secrets []kapi.Sec return nil } for _, secret := range secrets { - keyring, err := credentialprovider.MakeDockerKeyring([]kapi.Secret{secret}, &emptyKeyring) + secretsv1 := make([]kapiv1.Secret, 1) + err := kapiv1.Convert_api_Secret_To_v1_Secret(&secret, &secretsv1[0], nil) + if err != nil { + glog.V(2).Infof("Unable to make the Docker keyring for %s/%s secret: %v", secret.Name, secret.Namespace, err) + continue + } + keyring, err := credentialprovider.MakeDockerKeyring(secretsv1, &emptyKeyring) if err != nil { glog.V(2).Infof("Unable to make the Docker keyring for %s/%s secret: %v", secret.Name, secret.Namespace, err) continue @@ -756,15 +765,15 @@ func (g *BuildGenerator) resolveImageSecret(ctx kapi.Context, secrets []kapi.Sec func resolveError(kind string, namespace string, name string, err error) error { msg := fmt.Sprintf("Error resolving %s %s in namespace %s: %v", kind, name, namespace, err) - return &errors.StatusError{ErrStatus: unversioned.Status{ - Status: unversioned.StatusFailure, + return &errors.StatusError{ErrStatus: metav1.Status{ + Status: metav1.StatusFailure, Code: errors.StatusUnprocessableEntity, - Reason: unversioned.StatusReasonInvalid, + Reason: metav1.StatusReasonInvalid, Message: msg, - Details: &unversioned.StatusDetails{ + Details: &metav1.StatusDetails{ Kind: kind, Name: name, - Causes: []unversioned.StatusCause{{ + Causes: []metav1.StatusCause{{ Field: "from", Message: msg, }}, @@ -808,7 +817,7 @@ func generateBuildFromBuild(build *buildapi.Build, buildConfig *buildapi.BuildCo newBuild := &buildapi.Build{ Spec: buildCopy.Spec, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: getNextBuildNameFromBuild(buildCopy, buildConfig), Labels: buildCopy.ObjectMeta.Labels, Annotations: buildCopy.ObjectMeta.Annotations, @@ -859,7 +868,7 @@ func getNextBuildNameFromBuild(build *buildapi.Build, buildConfig *buildapi.Buil nameElems := strings.Split(buildName, "-") buildName = strings.Join(nameElems[:len(nameElems)-1], "-") } - suffix := fmt.Sprintf("%v", unversioned.Now().UnixNano()) + suffix := fmt.Sprintf("%v", metav1.Now().UnixNano()) if len(suffix) > 10 { suffix = suffix[len(suffix)-10:] } diff --git a/pkg/build/generator/generator_test.go b/pkg/build/generator/generator_test.go index e85f5c092b7e..5a55db43778a 100644 --- a/pkg/build/generator/generator_test.go +++ b/pkg/build/generator/generator_test.go @@ -7,11 +7,13 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/validation" @@ -42,7 +44,7 @@ const ( func TestInstantiate(t *testing.T) { generator := mockBuildGenerator() - _, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -50,14 +52,14 @@ func TestInstantiate(t *testing.T) { func TestInstantiateBinary(t *testing.T) { generator := mockBuildGenerator() - build, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{Binary: &buildapi.BinaryBuildSource{}}) + build, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{Binary: &buildapi.BinaryBuildSource{}}) if err != nil { t.Errorf("Unexpected error %v", err) } if build.Spec.Source.Binary == nil { t.Errorf("build should have a binary source value, has nil") } - build, err = generator.Clone(kapi.NewDefaultContext(), &buildapi.BuildRequest{Binary: &buildapi.BinaryBuildSource{}}) + build, err = generator.Clone(apirequest.NewDefaultContext(), &buildapi.BuildRequest{Binary: &buildapi.BinaryBuildSource{}}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -85,16 +87,16 @@ func TestInstantiateRetry(t *testing.T) { Secrets: testclient.NewSimpleFake(fakeSecrets...), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForImageRepository(), mocks.MockOutput()), nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { instantiationCalls++ return fmt.Errorf("update-error") }, }} - _, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "update-error") { t.Errorf("Expected update-error, got different %v", err) } @@ -104,9 +106,9 @@ func TestInstantiateRetry(t *testing.T) { func TestInstantiateDeletingError(t *testing.T) { source := mocks.MockSource() generator := BuildGenerator{Client: Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ buildapi.BuildConfigPausedAnnotation: "true", }, @@ -124,7 +126,7 @@ func TestInstantiateDeletingError(t *testing.T) { } return bc, nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { build := &buildapi.Build{ Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ @@ -145,11 +147,11 @@ func TestInstantiateDeletingError(t *testing.T) { return build, nil }, }} - _, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "BuildConfig is paused") { t.Errorf("Expected error, got different %v", err) } - _, err = generator.Clone(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err = generator.Clone(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "BuildConfig is paused") { t.Errorf("Expected error, got different %v", err) } @@ -161,9 +163,9 @@ func TestInstantiateDeletingError(t *testing.T) { func TestInstantiateBinaryRemoved(t *testing.T) { generator := mockBuildGenerator() client := generator.Client.(Client) - client.GetBuildConfigFunc = func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + client.GetBuildConfigFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{}, }, Spec: buildapi.BuildConfigSpec{ @@ -176,7 +178,7 @@ func TestInstantiateBinaryRemoved(t *testing.T) { } return bc, nil } - client.GetBuildFunc = func(ctx kapi.Context, name string) (*buildapi.Build, error) { + client.GetBuildFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { build := &buildapi.Build{ Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ @@ -194,14 +196,14 @@ func TestInstantiateBinaryRemoved(t *testing.T) { return build, nil } - build, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + build, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err != nil { t.Errorf("Unexpected error %v", err) } if build.Spec.Source.Binary != nil { t.Errorf("build should not have a binary source value, has %v", build.Spec.Source.Binary) } - build, err = generator.Clone(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + build, err = generator.Clone(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -212,21 +214,21 @@ func TestInstantiateBinaryRemoved(t *testing.T) { func TestInstantiateGetBuildConfigError(t *testing.T) { generator := BuildGenerator{Client: Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return nil, fmt.Errorf("get-error") }, - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return nil, fmt.Errorf("get-error") }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return nil, fmt.Errorf("get-error") }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return nil, fmt.Errorf("get-error") }, }} - _, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "get-error") { t.Errorf("Expected get-error, got different %v", err) } @@ -241,12 +243,12 @@ func TestInstantiateGenerateBuildError(t *testing.T) { Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return nil, fmt.Errorf("get-error") }, }} - _, err := generator.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "get-error") { t.Errorf("Expected get-error, got different %v", err) } @@ -338,7 +340,7 @@ func TestInstantiateWithImageTrigger(t *testing.T) { source := mocks.MockSource() for _, tc := range tests { bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault}, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ Strategy: buildapi.BuildStrategy{ @@ -362,18 +364,18 @@ func TestInstantiateWithImageTrigger(t *testing.T) { generator := mockBuildGeneratorForInstantiate() client := generator.Client.(Client) client.GetBuildConfigFunc = - func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return bc, nil } client.UpdateBuildConfigFunc = - func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { bc = buildConfig return nil } client.GetImageStreamFunc = - func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Status: imageapi.ImageStreamStatus{ DockerImageRepository: originalImage, Tags: map[string]imageapi.TagEventList{ @@ -411,7 +413,7 @@ func TestInstantiateWithImageTrigger(t *testing.T) { }, From: tc.reqFrom, } - _, err := generator.Instantiate(kapi.NewDefaultContext(), req) + _, err := generator.Instantiate(apirequest.NewDefaultContext(), req) if err != nil && !tc.errorExpected { t.Errorf("%s: unexpected error %v", tc.name, err) continue @@ -452,61 +454,61 @@ func TestInstantiateWithBuildRequestEnvs(t *testing.T) { buildRequestWithoutEnv := buildapi.BuildRequest{} tests := []struct { - bcfunc func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) + bcfunc func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) req buildapi.BuildRequest expectedEnvValue string }{ { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithEnv, expectedEnvValue: "BAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockDockerStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithEnv, expectedEnvValue: "BAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockCustomStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithEnv, expectedEnvValue: "BAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockJenkinsStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithEnv, expectedEnvValue: "BAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithoutEnv, expectedEnvValue: "VAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockDockerStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithoutEnv, expectedEnvValue: "VAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockCustomStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithoutEnv, expectedEnvValue: "VAR", }, { - bcfunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + bcfunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockJenkinsStrategyForEnvs(), mocks.MockOutput()), nil }, req: buildRequestWithoutEnv, @@ -519,7 +521,7 @@ func TestInstantiateWithBuildRequestEnvs(t *testing.T) { client := generator.Client.(Client) client.GetBuildConfigFunc = tc.bcfunc generator.Client = client - build, err := generator.Instantiate(kapi.NewDefaultContext(), &tc.req) + build, err := generator.Instantiate(apirequest.NewDefaultContext(), &tc.req) if err != nil { t.Errorf("unexpected error %v", err) } else { @@ -566,7 +568,7 @@ func TestInstantiateWithBuildRequestEnvs(t *testing.T) { func TestInstantiateWithLastVersion(t *testing.T) { g := mockBuildGenerator() c := g.Client.(Client) - c.GetBuildConfigFunc = func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + c.GetBuildConfigFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { bc := mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForImageRepository(), mocks.MockOutput()) bc.Status.LastVersion = 1 return bc, nil @@ -574,21 +576,21 @@ func TestInstantiateWithLastVersion(t *testing.T) { g.Client = c // Version not specified - _, err := g.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := g.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err != nil { t.Errorf("Unexpected error %v", err) } // Version specified and it matches lastVersion := int64(1) - _, err = g.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{LastVersion: &lastVersion}) + _, err = g.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{LastVersion: &lastVersion}) if err != nil { t.Errorf("Unexpected error %v", err) } // Version specified, but doesn't match lastVersion = 0 - _, err = g.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{LastVersion: &lastVersion}) + _, err = g.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{LastVersion: &lastVersion}) if err == nil { t.Errorf("Expected an error and did not get one") } @@ -597,12 +599,12 @@ func TestInstantiateWithLastVersion(t *testing.T) { func TestInstantiateWithMissingImageStream(t *testing.T) { g := mockBuildGenerator() c := g.Client.(Client) - c.GetImageStreamFunc = func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + c.GetImageStreamFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return nil, errors.NewNotFound(imageapi.Resource("imagestreams"), "testRepo") } g.Client = c - _, err := g.Instantiate(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := g.Instantiate(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) se, ok := err.(*errors.StatusError) if !ok { @@ -621,7 +623,7 @@ func TestInstantiateWithMissingImageStream(t *testing.T) { func TestInstantiateWithLabelsAndAnnotations(t *testing.T) { g := mockBuildGenerator() c := g.Client.(Client) - c.GetBuildConfigFunc = func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + c.GetBuildConfigFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { bc := mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForImageRepository(), mocks.MockOutput()) bc.Status.LastVersion = 1 return bc, nil @@ -629,7 +631,7 @@ func TestInstantiateWithLabelsAndAnnotations(t *testing.T) { g.Client = c req := &buildapi.BuildRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ "a_1": "a_value1", // build number is set as an annotation on the generated build, so we @@ -645,7 +647,7 @@ func TestInstantiateWithLabelsAndAnnotations(t *testing.T) { }, } - build, err := g.Instantiate(kapi.NewDefaultContext(), req) + build, err := g.Instantiate(apirequest.NewDefaultContext(), req) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -682,7 +684,7 @@ func TestFindImageTrigger(t *testing.T) { }, } bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testbc", Namespace: "bcnamespace", }, @@ -793,20 +795,20 @@ func TestFindImageTrigger(t *testing.T) { func TestClone(t *testing.T) { generator := BuildGenerator{Client: Client{ - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { return nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build-1", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, nil }, }} - _, err := generator.Clone(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := generator.Clone(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -814,12 +816,12 @@ func TestClone(t *testing.T) { func TestCloneError(t *testing.T) { generator := BuildGenerator{Client: Client{ - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return nil, fmt.Errorf("get-error") }, }} - _, err := generator.Clone(kapi.NewContext(), &buildapi.BuildRequest{}) + _, err := generator.Clone(apirequest.NewContext(), &buildapi.BuildRequest{}) if err == nil || !strings.Contains(err.Error(), "get-error") { t.Errorf("Expected get-error, got different %v", err) } @@ -827,21 +829,21 @@ func TestCloneError(t *testing.T) { func TestCreateBuild(t *testing.T) { build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, } generator := BuildGenerator{Client: Client{ - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { return nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return build, nil }, }} - build, err := generator.createBuild(kapi.NewDefaultContext(), build) + build, err := generator.createBuild(apirequest.NewDefaultContext(), build) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -852,13 +854,13 @@ func TestCreateBuild(t *testing.T) { func TestCreateBuildNamespaceError(t *testing.T) { build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", }, } generator := mockBuildGenerator() - _, err := generator.createBuild(kapi.NewContext(), build) + _, err := generator.createBuild(apirequest.NewContext(), build) if err == nil || !strings.Contains(err.Error(), "Build.Namespace") { t.Errorf("Expected namespace error, got different %v", err) } @@ -866,18 +868,18 @@ func TestCreateBuildNamespaceError(t *testing.T) { func TestCreateBuildCreateError(t *testing.T) { build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, } generator := BuildGenerator{Client: Client{ - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { return fmt.Errorf("create-error") }, }} - _, err := generator.createBuild(kapi.NewDefaultContext(), build) + _, err := generator.createBuild(apirequest.NewDefaultContext(), build) if err == nil || !strings.Contains(err.Error(), "create-error") { t.Errorf("Expected create-error, got different %v", err) } @@ -885,14 +887,14 @@ func TestCreateBuildCreateError(t *testing.T) { func TestGenerateBuildFromConfig(t *testing.T) { source := mocks.MockSource() - strategy := mockDockerStrategyForDockerImage(originalImage) + strategy := mockDockerStrategyForDockerImage(originalImage, &metav1.GetOptions{}) output := mocks.MockOutput() resources := mockResources() bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ UID: "test-uid", Name: "test-build-config", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, Labels: map[string]string{"testlabel": "testvalue"}, }, Spec: buildapi.BuildConfigSpec{ @@ -919,7 +921,7 @@ func TestGenerateBuildFromConfig(t *testing.T) { } generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, revision, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, revision, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -966,7 +968,7 @@ func TestGenerateBuildFromConfig(t *testing.T) { // Test long name bc.Name = strings.Repeat("a", 100) - build, err = generator.generateBuildFromConfig(kapi.NewContext(), bc, revision, nil) + build, err = generator.generateBuildFromConfig(apirequest.NewContext(), bc, revision, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -982,9 +984,9 @@ func TestGenerateBuildWithImageTagForSourceStrategyImageRepository(t *testing.T) strategy := mocks.MockSourceStrategyForImageRepository() output := mocks.MockOutput() bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build-config", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ @@ -1007,9 +1009,9 @@ func TestGenerateBuildWithImageTagForSourceStrategyImageRepository(t *testing.T) Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName}, Status: imageapi.ImageStreamStatus{ DockerImageRepository: originalImage, Tags: map[string]imageapi.TagEventList{ @@ -1025,29 +1027,29 @@ func TestGenerateBuildWithImageTagForSourceStrategyImageRepository(t *testing.T) }, }, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":" + newTag}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":" + newTag}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":@id"}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":@id"}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return nil }, }} - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1061,9 +1063,9 @@ func TestGenerateBuildWithImageTagForDockerStrategyImageRepository(t *testing.T) strategy := mockDockerStrategyForImageRepository() output := mocks.MockOutput() bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build-config", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ @@ -1086,9 +1088,9 @@ func TestGenerateBuildWithImageTagForDockerStrategyImageRepository(t *testing.T) Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName}, Status: imageapi.ImageStreamStatus{ DockerImageRepository: originalImage, Tags: map[string]imageapi.TagEventList{ @@ -1104,28 +1106,28 @@ func TestGenerateBuildWithImageTagForDockerStrategyImageRepository(t *testing.T) }, }, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":" + newTag}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":" + newTag}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":@id"}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":@id"}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return nil }, }} - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1139,9 +1141,9 @@ func TestGenerateBuildWithImageTagForCustomStrategyImageRepository(t *testing.T) strategy := mockCustomStrategyForImageRepository() output := mocks.MockOutput() bc := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build-config", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: buildapi.BuildConfigSpec{ CommonSpec: buildapi.CommonSpec{ @@ -1164,9 +1166,9 @@ func TestGenerateBuildWithImageTagForCustomStrategyImageRepository(t *testing.T) Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName}, Status: imageapi.ImageStreamStatus{ DockerImageRepository: originalImage, Tags: map[string]imageapi.TagEventList{ @@ -1182,28 +1184,28 @@ func TestGenerateBuildWithImageTagForCustomStrategyImageRepository(t *testing.T) }, }, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":" + newTag}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":" + newTag}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":@id"}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":@id"}, DockerImageReference: originalImage + ":" + newTag, }, }, nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return nil }, }} - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1217,7 +1219,7 @@ func TestGenerateBuildFromBuild(t *testing.T) { strategy := mockDockerStrategyForImageRepository() output := mocks.MockOutput() build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", Annotations: map[string]string{ buildapi.BuildJenkinsStatusJSONAnnotation: "foo", @@ -1227,7 +1229,7 @@ func TestGenerateBuildFromBuild(t *testing.T) { buildapi.BuildJenkinsBuildURIAnnotation: "baz", buildapi.BuildPodNameAnnotation: "ruby-sample-build-1-build", }, - OwnerReferences: []kapi.OwnerReference{ + OwnerReferences: []metav1.OwnerReference{ { Name: "test-owner", Kind: "BuildConfig", @@ -1286,7 +1288,7 @@ func TestGenerateBuildFromBuildWithBuildConfig(t *testing.T) { strategy := mockDockerStrategyForImageRepository() output := mocks.MockOutput() annotatedBuild := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "annotatedBuild", Annotations: map[string]string{ buildapi.BuildCloneAnnotation: "sourceOfBuild", @@ -1306,7 +1308,7 @@ func TestGenerateBuildFromBuildWithBuildConfig(t *testing.T) { }, } nonAnnotatedBuild := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "nonAnnotatedBuild", }, Spec: buildapi.BuildSpec{ @@ -1324,7 +1326,7 @@ func TestGenerateBuildFromBuildWithBuildConfig(t *testing.T) { } buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildConfigName", }, Status: buildapi.BuildConfigStatus{ @@ -1365,11 +1367,11 @@ func TestGenerateBuildFromBuildWithBuildConfig(t *testing.T) { func TestSubstituteImageCustomAllMatch(t *testing.T) { source := mocks.MockSource() - strategy := mockCustomStrategyForDockerImage(originalImage) + strategy := mockCustomStrategyForDockerImage(originalImage, &metav1.GetOptions{}) output := mocks.MockOutput() bc := mocks.MockBuildConfig(source, strategy, output) generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1399,11 +1401,11 @@ func TestSubstituteImageCustomAllMatch(t *testing.T) { func TestSubstituteImageCustomAllMismatch(t *testing.T) { source := mocks.MockSource() - strategy := mockCustomStrategyForDockerImage(originalImage) + strategy := mockCustomStrategyForDockerImage(originalImage, &metav1.GetOptions{}) output := mocks.MockOutput() bc := mocks.MockBuildConfig(source, strategy, output) generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1422,7 +1424,7 @@ func TestSubstituteImageCustomBaseMatchEnvMismatch(t *testing.T) { output := mocks.MockOutput() bc := mocks.MockBuildConfig(source, strategy, output) generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1450,7 +1452,7 @@ func TestSubstituteImageCustomBaseMatchEnvMissing(t *testing.T) { output := mocks.MockOutput() bc := mocks.MockBuildConfig(source, strategy, output) generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1478,7 +1480,7 @@ func TestSubstituteImageCustomBaseMatchEnvNil(t *testing.T) { output := mocks.MockOutput() bc := mocks.MockBuildConfig(source, strategy, output) generator := mockBuildGenerator() - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, nil, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, nil, nil) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -1522,7 +1524,7 @@ func TestGetNextBuildNameFromBuild(t *testing.T) { } for i, tc := range testCases { - buildName := getNextBuildNameFromBuild(&buildapi.Build{ObjectMeta: kapi.ObjectMeta{Name: tc.value}}, nil) + buildName := getNextBuildNameFromBuild(&buildapi.Build{ObjectMeta: metav1.ObjectMeta{Name: tc.value}}, nil) if matched, err := regexp.MatchString(tc.expected, buildName); !matched || err != nil { t.Errorf("(%d) Unexpected build name, got %s expected %s", i, buildName, tc.expected) } @@ -1539,7 +1541,7 @@ func TestGetNextBuildNameFromBuildWithBuildConfig(t *testing.T) { { "mybuild-1", &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildConfigName", }, Status: buildapi.BuildConfigStatus{ @@ -1552,7 +1554,7 @@ func TestGetNextBuildNameFromBuildWithBuildConfig(t *testing.T) { { "mybuild-1-1426794070", &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildConfigName", }, Status: buildapi.BuildConfigStatus{ @@ -1564,7 +1566,7 @@ func TestGetNextBuildNameFromBuildWithBuildConfig(t *testing.T) { } for i, tc := range testCases { - buildName := getNextBuildNameFromBuild(&buildapi.Build{ObjectMeta: kapi.ObjectMeta{Name: tc.value}}, tc.buildConfig) + buildName := getNextBuildNameFromBuild(&buildapi.Build{ObjectMeta: metav1.ObjectMeta{Name: tc.value}}, tc.buildConfig) if matched, err := regexp.MatchString(tc.expected, buildName); !matched || err != nil { t.Errorf("(%d) Unexpected build name, got %s expected %s", i, buildName, tc.expected) } @@ -1609,7 +1611,7 @@ func TestResolveImageStreamRef(t *testing.T) { }, } for i, test := range tests { - ref, error := generator.resolveImageStreamReference(kapi.NewDefaultContext(), test.streamRef, "") + ref, error := generator.resolveImageStreamReference(apirequest.NewDefaultContext(), test.streamRef, "") if error != nil { if test.expectedSuccess { t.Errorf("Scenario %d: Unexpected error %v", i, error) @@ -1640,7 +1642,7 @@ func mockDockerStrategyForNilImage() buildapi.BuildStrategy { } } -func mockDockerStrategyForDockerImage(name string) buildapi.BuildStrategy { +func mockDockerStrategyForDockerImage(name string, options *metav1.GetOptions) buildapi.BuildStrategy { return buildapi.BuildStrategy{ DockerStrategy: &buildapi.DockerBuildStrategy{ NoCache: true, @@ -1665,7 +1667,7 @@ func mockDockerStrategyForImageRepository() buildapi.BuildStrategy { } } -func mockCustomStrategyForDockerImage(name string) buildapi.BuildStrategy { +func mockCustomStrategyForDockerImage(name string, options *metav1.GetOptions) buildapi.BuildStrategy { return buildapi.BuildStrategy{ CustomStrategy: &buildapi.CustomBuildStrategy{ From: kapi.ObjectReference{ @@ -1688,7 +1690,7 @@ func mockCustomStrategyForImageRepository() buildapi.BuildStrategy { } } -func mockOutputWithImageName(name string) buildapi.BuildOutput { +func mockOutputWithImageName(name string, options *metav1.GetOptions) buildapi.BuildOutput { return buildapi.BuildOutput{ To: &kapi.ObjectReference{ Kind: "DockerImage", @@ -1699,7 +1701,7 @@ func mockOutputWithImageName(name string) buildapi.BuildOutput { func mockBuild(source buildapi.BuildSource, strategy buildapi.BuildStrategy, output buildapi.BuildOutput) *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build", }, Spec: buildapi.BuildSpec{ @@ -1720,10 +1722,10 @@ func mockBuild(source buildapi.BuildSource, strategy buildapi.BuildStrategy, out func mockBuildGeneratorForInstantiate() *BuildGenerator { g := mockBuildGenerator() c := g.Client.(Client) - c.GetImageStreamTagFunc = func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + c.GetImageStreamTagFunc = func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":" + newTag}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":" + newTag}, DockerImageReference: "ref@" + name, }, }, nil @@ -1741,28 +1743,28 @@ func mockBuildGenerator() *BuildGenerator { Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForImageRepository(), mocks.MockOutput()), nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return nil }, - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { b = build return nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { if b == nil { return &buildapi.Build{}, nil } return b, nil }, - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { if name != imageRepoName { return &imageapi.ImageStream{}, nil } return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imageRepoName, Namespace: imageRepoNamespace, }, @@ -1783,18 +1785,18 @@ func mockBuildGenerator() *BuildGenerator { }, }, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":" + newTag}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":" + newTag}, DockerImageReference: latestDockerReference, }, }, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{ Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: imageRepoName + ":@id"}, + ObjectMeta: metav1.ObjectMeta{Name: imageRepoName + ":@id"}, DockerImageReference: latestDockerReference, }, }, nil @@ -1819,11 +1821,11 @@ func TestGenerateBuildFromConfigWithSecrets(t *testing.T) { } for imageName := range dockerCfgTable { // Setup the BuildGenerator - strategy := mockDockerStrategyForDockerImage(imageName) - output := mockOutputWithImageName(imageName) + strategy := mockDockerStrategyForDockerImage(imageName, &metav1.GetOptions{}) + output := mockOutputWithImageName(imageName, &metav1.GetOptions{}) generator := mockBuildGenerator() bc := mocks.MockBuildConfig(source, strategy, output) - build, err := generator.generateBuildFromConfig(kapi.NewContext(), bc, revision, nil) + build, err := generator.generateBuildFromConfig(apirequest.NewContext(), bc, revision, nil) if build.Spec.Output.PushSecret == nil { t.Errorf("Expected PushSecret for image '%s' to be set, got nil", imageName) @@ -1857,7 +1859,7 @@ func TestInstantiateBuildTriggerCauseConfigChange(t *testing.T) { ), } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } @@ -1892,7 +1894,7 @@ func TestInstantiateBuildTriggerCauseImageChange(t *testing.T) { } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } @@ -1940,7 +1942,7 @@ func TestInstantiateBuildTriggerCauseGenericWebHook(t *testing.T) { } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } @@ -1985,7 +1987,7 @@ func TestInstantiateBuildTriggerCauseGitHubWebHook(t *testing.T) { } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } @@ -2032,7 +2034,7 @@ func TestInstantiateBuildTriggerCauseGitLabWebHook(t *testing.T) { } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } @@ -2079,7 +2081,7 @@ func TestInstantiateBuildTriggerCauseBitbucketWebHook(t *testing.T) { } generator := mockBuildGenerator() - buildObject, err := generator.Instantiate(kapi.NewDefaultContext(), buildRequest) + buildObject, err := generator.Instantiate(apirequest.NewDefaultContext(), buildRequest) if err != nil { t.Errorf("Expected error to be nil, got %v", err) } diff --git a/pkg/build/generator/test/mocks.go b/pkg/build/generator/test/mocks.go index 5b383ebe0a5f..655a37667657 100644 --- a/pkg/build/generator/test/mocks.go +++ b/pkg/build/generator/test/mocks.go @@ -3,10 +3,11 @@ package test import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -36,9 +37,9 @@ func MockBuilderSecrets() []*kapi.Secret { var secrets []*kapi.Secret for name, conf := range SampleDockerConfigs { secrets = append(secrets, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Type: kapi.SecretTypeDockercfg, Data: map[string][]byte{".dockercfg": conf}, @@ -60,9 +61,9 @@ func MockBuilderServiceAccount(secrets []*kapi.Secret) kcoreclient.ServiceAccoun fakeObjects = append(fakeObjects, secret) } fakeObjects = append(fakeObjects, &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: bootstrappolicy.BuilderServiceAccountName, - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Secrets: secretRefs, }) @@ -71,9 +72,9 @@ func MockBuilderServiceAccount(secrets []*kapi.Secret) kcoreclient.ServiceAccoun func MockBuildConfig(source buildapi.BuildSource, strategy buildapi.BuildStrategy, output buildapi.BuildOutput) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-build-config", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, Labels: map[string]string{ "testbclabel": "testbcvalue", }, @@ -184,7 +185,7 @@ func MockImageStream(repoName, dockerImageRepo string, tags map[string]string) * } return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: repoName, }, Status: imageapi.ImageStreamStatus{ @@ -196,7 +197,7 @@ func MockImageStream(repoName, dockerImageRepo string, tags map[string]string) * func MockImage(name, dockerSpec string) *imageapi.Image { return &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: dockerSpec, diff --git a/pkg/build/graph/analysis/bc.go b/pkg/build/graph/analysis/bc.go index d19bf0bb7199..97227c5e5b47 100644 --- a/pkg/build/graph/analysis/bc.go +++ b/pkg/build/graph/analysis/bc.go @@ -8,7 +8,7 @@ import ( "github.com/gonum/graph" "github.com/gonum/graph/topo" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" osgraph "github.com/openshift/origin/pkg/api/graph" buildapi "github.com/openshift/origin/pkg/build/api" @@ -321,7 +321,7 @@ func getImageStreamImageSuggestion(imageID string, imageStream *imageapi.ImageSt // so we will check if the image stream has been updated "recently"; // in case it is a slow link to the remote repo, see if if the check annotation occurred within the last 5 minutes; if so, consider that as potentially "in progress" compareTime := checkTime.Add(5 * time.Minute) - currentTime, _ := time.Parse(time.RFC3339, unversioned.Now().UTC().Format(time.RFC3339)) + currentTime, _ := time.Parse(time.RFC3339, metav1.Now().UTC().Format(time.RFC3339)) if compareTime.Before(currentTime) { return osgraph.Suggestion(fmt.Sprintf("`oc import-image %s --from=` where `--from` specifies an image with hexadecimal ID %s", imageStream.GetName(), imageID)) } diff --git a/pkg/build/graph/edges_test.go b/pkg/build/graph/edges_test.go index ad6030721c15..56e278459393 100644 --- a/pkg/build/graph/edges_test.go +++ b/pkg/build/graph/edges_test.go @@ -6,8 +6,8 @@ import ( "github.com/gonum/graph" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" "github.com/openshift/origin/pkg/build/api" @@ -61,7 +61,7 @@ func namespaceFor(node graph.Node) (string, error) { obj := node.(objectifier).Object() switch t := obj.(type) { case runtime.Object: - meta, err := kapi.ObjectMetaFor(t) + meta, err := metav1.ObjectMetaFor(t) if err != nil { return "", err } diff --git a/pkg/build/prune/data.go b/pkg/build/prune/data.go index e530106147e8..5e17b57cd060 100644 --- a/pkg/build/prune/data.go +++ b/pkg/build/prune/data.go @@ -4,9 +4,9 @@ import ( "fmt" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -54,8 +54,8 @@ type FilterPredicate func(build *buildapi.Build) bool // NewFilterBeforePredicate is a function that returns true if the build was created before the current time minus specified duration func NewFilterBeforePredicate(d time.Duration) FilterPredicate { - now := unversioned.Now() - before := unversioned.NewTime(now.Time.Add(-1 * d)) + now := metav1.Now() + before := metav1.NewTime(now.Time.Add(-1 * d)) return func(build *buildapi.Build) bool { return build.CreationTimestamp.Before(before) } @@ -101,7 +101,7 @@ func (d *dataSet) GetBuildConfig(build *buildapi.Build) (*buildapi.BuildConfig, } var buildConfig *buildapi.BuildConfig - key := &buildapi.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: config.Name, Namespace: config.Namespace}} + key := &buildapi.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: config.Name, Namespace: config.Namespace}} item, exists, err := d.buildConfigStore.Get(key) if exists { buildConfig = item.(*buildapi.BuildConfig) diff --git a/pkg/build/prune/data_test.go b/pkg/build/prune/data_test.go index 3d209f152e83..eadb6cebc865 100644 --- a/pkg/build/prune/data_test.go +++ b/pkg/build/prune/data_test.go @@ -5,18 +5,18 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" ) func mockBuildConfig(namespace, name string) *buildapi.BuildConfig { - return &buildapi.BuildConfig{ObjectMeta: kapi.ObjectMeta{Namespace: namespace, Name: name}} + return &buildapi.BuildConfig{ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name}} } -func withCreated(build *buildapi.Build, creationTimestamp unversioned.Time) *buildapi.Build { +func withCreated(build *buildapi.Build, creationTimestamp metav1.Time) *buildapi.Build { build.CreationTimestamp = creationTimestamp return build } @@ -27,7 +27,7 @@ func withStatus(build *buildapi.Build, status buildapi.BuildPhase) *buildapi.Bui } func mockBuild(namespace, name string, buildConfig *buildapi.BuildConfig) *buildapi.Build { - build := &buildapi.Build{ObjectMeta: kapi.ObjectMeta{Namespace: namespace, Name: name}} + build := &buildapi.Build{ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name}} if buildConfig != nil { build.Status.Config = &kapi.ObjectReference{ Name: buildConfig.Name, @@ -68,17 +68,17 @@ func TestBuildByBuildConfigIndexFunc(t *testing.T) { func TestFilterBeforePredicate(t *testing.T) { youngerThan := time.Hour - now := unversioned.Now() - old := unversioned.NewTime(now.Time.Add(-1 * youngerThan)) + now := metav1.Now() + old := metav1.NewTime(now.Time.Add(-1 * youngerThan)) builds := []*buildapi.Build{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "old", CreationTimestamp: old, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "new", CreationTimestamp: now, }, diff --git a/pkg/build/prune/prune_test.go b/pkg/build/prune/prune_test.go index 3a748df08205..ce8b689fc4ce 100644 --- a/pkg/build/prune/prune_test.go +++ b/pkg/build/prune/prune_test.go @@ -5,8 +5,8 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -58,8 +58,8 @@ func TestPruneTask(t *testing.T) { for _, BuildPhaseOption := range BuildPhaseOptions { keepYoungerThan := time.Hour - now := unversioned.Now() - old := unversioned.NewTime(now.Time.Add(-1 * keepYoungerThan)) + now := metav1.Now() + old := metav1.NewTime(now.Time.Add(-1 * keepYoungerThan)) buildConfigs := []*buildapi.BuildConfig{} builds := []*buildapi.Build{} diff --git a/pkg/build/prune/resolvers.go b/pkg/build/prune/resolvers.go index d600e503e4c3..844a4f6ec71d 100644 --- a/pkg/build/prune/resolvers.go +++ b/pkg/build/prune/resolvers.go @@ -3,7 +3,7 @@ package prune import ( "sort" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/build/prune/resolvers_test.go b/pkg/build/prune/resolvers_test.go index 3ceaaa7a8044..038173db2ca5 100644 --- a/pkg/build/prune/resolvers_test.go +++ b/pkg/build/prune/resolvers_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -126,9 +126,9 @@ func TestPerBuildConfigResolver(t *testing.T) { } } - now := unversioned.Now() + now := metav1.Now() for i := range builds { - creationTimestamp := unversioned.NewTime(now.Time.Add(-1 * time.Duration(i) * time.Hour)) + creationTimestamp := metav1.NewTime(now.Time.Add(-1 * time.Duration(i) * time.Hour)) builds[i].CreationTimestamp = creationTimestamp } diff --git a/pkg/build/registry/build/etcd/etcd.go b/pkg/build/registry/build/etcd/etcd.go index fb18a6fe954c..ea6f031e3f6a 100644 --- a/pkg/build/registry/build/etcd/etcd.go +++ b/pkg/build/registry/build/etcd/etcd.go @@ -1,11 +1,11 @@ package etcd import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/registry/build" @@ -52,6 +52,6 @@ func (r *DetailsREST) New() runtime.Object { } // Update finds a resource in the storage and updates it. -func (r *DetailsREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *DetailsREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } diff --git a/pkg/build/registry/build/etcd/etcd_test.go b/pkg/build/registry/build/etcd/etcd_test.go index 252ab52e13e2..b158c82577cd 100644 --- a/pkg/build/registry/build/etcd/etcd_test.go +++ b/pkg/build/registry/build/etcd/etcd_test.go @@ -3,11 +3,12 @@ package etcd import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/registry/registrytest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -31,7 +32,7 @@ func TestStorage(t *testing.T) { func validBuild() *api.Build { return &api.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "buildid"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid"}, Spec: api.BuildSpec{ CommonSpec: api.CommonSpec{ Source: api.BuildSource{ diff --git a/pkg/build/registry/build/registry.go b/pkg/build/registry/build/registry.go index 8e255c65591f..39747b28bfad 100644 --- a/pkg/build/registry/build/registry.go +++ b/pkg/build/registry/build/registry.go @@ -1,9 +1,12 @@ package build import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" api "github.com/openshift/origin/pkg/build/api" ) @@ -11,17 +14,17 @@ import ( // Registry is an interface for things that know how to store Builds. type Registry interface { // ListBuilds obtains list of builds that match a selector. - ListBuilds(ctx kapi.Context, options *kapi.ListOptions) (*api.BuildList, error) + ListBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (*api.BuildList, error) // GetBuild retrieves a specific build. - GetBuild(ctx kapi.Context, id string) (*api.Build, error) + GetBuild(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.Build, error) // CreateBuild creates a new build. - CreateBuild(ctx kapi.Context, build *api.Build) error + CreateBuild(ctx apirequest.Context, build *api.Build) error // UpdateBuild updates a build. - UpdateBuild(ctx kapi.Context, build *api.Build) error + UpdateBuild(ctx apirequest.Context, build *api.Build) error // DeleteBuild deletes a build. - DeleteBuild(ctx kapi.Context, id string) error + DeleteBuild(ctx apirequest.Context, id string) error // WatchBuilds watches builds. - WatchBuilds(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // storage puts strong typing around storage calls @@ -35,7 +38,7 @@ func NewRegistry(s rest.StandardStorage) Registry { return &storage{s} } -func (s *storage) ListBuilds(ctx kapi.Context, options *kapi.ListOptions) (*api.BuildList, error) { +func (s *storage) ListBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (*api.BuildList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -43,29 +46,29 @@ func (s *storage) ListBuilds(ctx kapi.Context, options *kapi.ListOptions) (*api. return obj.(*api.BuildList), nil } -func (s *storage) WatchBuilds(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetBuild(ctx kapi.Context, name string) (*api.Build, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetBuild(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Build, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.Build), nil } -func (s *storage) CreateBuild(ctx kapi.Context, build *api.Build) error { +func (s *storage) CreateBuild(ctx apirequest.Context, build *api.Build) error { _, err := s.Create(ctx, build) return err } -func (s *storage) UpdateBuild(ctx kapi.Context, build *api.Build) error { +func (s *storage) UpdateBuild(ctx apirequest.Context, build *api.Build) error { _, _, err := s.Update(ctx, build.Name, rest.DefaultUpdatedObjectInfo(build, kapi.Scheme)) return err } -func (s *storage) DeleteBuild(ctx kapi.Context, buildID string) error { - _, err := s.Delete(ctx, buildID, nil) +func (s *storage) DeleteBuild(ctx apirequest.Context, buildID string) error { + _, _, err := s.Delete(ctx, buildID, nil) return err } diff --git a/pkg/build/registry/build/strategy.go b/pkg/build/registry/build/strategy.go index 3c963283215f..22005d975f2d 100644 --- a/pkg/build/registry/build/strategy.go +++ b/pkg/build/registry/build/strategy.go @@ -4,12 +4,15 @@ import ( "fmt" "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/validation" @@ -19,11 +22,11 @@ import ( // strategy implements behavior for Build objects type strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating Build objects. -var Strategy = strategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = strategy{kapi.Scheme, names.SimpleNameGenerator} func (strategy) NamespaceScoped() bool { return true @@ -39,7 +42,7 @@ func (strategy) AllowUnconditionalUpdate() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { build := obj.(*api.Build) if len(build.Status.Phase) == 0 { build.Status.Phase = api.BuildPhaseNew @@ -47,7 +50,7 @@ func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { _ = obj.(*api.Build) } @@ -56,17 +59,17 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policy. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateBuild(obj.(*api.Build)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateBuildUpdate(obj.(*api.Build), old.(*api.Build)) } // CheckGracefulDelete allows a build to be gracefully deleted. -func (strategy) CheckGracefulDelete(obj runtime.Object, options *kapi.DeleteOptions) bool { +func (strategy) CheckGracefulDelete(obj runtime.Object, options *metav1.DeleteOptions) bool { return false } @@ -95,7 +98,7 @@ type detailsStrategy struct { // Prepares a build for update by only allowing an update to build details. // Build details currently consists of: Spec.Revision, Status.Reason, and // Status.Message, all of which are updated from within the build pod -func (detailsStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (detailsStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newBuild := obj.(*api.Build) oldBuild := old.(*api.Build) @@ -120,7 +123,7 @@ func (detailsStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Objec } // Validates that an update is valid by ensuring that no Revision exists and that it's not getting updated to blank -func (detailsStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (detailsStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { newBuild := obj.(*api.Build) oldBuild := old.(*api.Build) oldRevision := oldBuild.Spec.Revision diff --git a/pkg/build/registry/build/strategy_test.go b/pkg/build/registry/build/strategy_test.go index ebae7cd63e55..f8b375479693 100644 --- a/pkg/build/registry/build/strategy_test.go +++ b/pkg/build/registry/build/strategy_test.go @@ -3,13 +3,15 @@ package build import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" buildapi "github.com/openshift/origin/pkg/build/api" ) func TestBuildStrategy(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() if !Strategy.NamespaceScoped() { t.Errorf("Build is namespace scoped") } @@ -17,7 +19,7 @@ func TestBuildStrategy(t *testing.T) { t.Errorf("Build should not allow create on update") } build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "buildid", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid", Namespace: "default"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ diff --git a/pkg/build/registry/buildclone/rest.go b/pkg/build/registry/buildclone/rest.go index 7ab6516847a9..27517bd3fa0a 100644 --- a/pkg/build/registry/buildclone/rest.go +++ b/pkg/build/registry/buildclone/rest.go @@ -1,9 +1,9 @@ package buildclone import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/generator" @@ -26,7 +26,7 @@ func (s *CloneREST) New() runtime.Object { } // Create instantiates a new build from an existing build -func (s *CloneREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *CloneREST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { if err := rest.BeforeCreate(Strategy, ctx, obj); err != nil { return nil, err } diff --git a/pkg/build/registry/buildclone/rest_test.go b/pkg/build/registry/buildclone/rest_test.go index c78b5868d6b8..4bdf2032d4c5 100644 --- a/pkg/build/registry/buildclone/rest_test.go +++ b/pkg/build/registry/buildclone/rest_test.go @@ -3,7 +3,8 @@ package buildclone import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -12,15 +13,15 @@ import ( func TestCreateClone(t *testing.T) { rest := CloneREST{&generator.BuildGenerator{Client: generator.Client{ - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { return nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return &buildapi.Build{}, nil }, }}} - _, err := rest.Create(kapi.NewDefaultContext(), &buildapi.BuildRequest{ObjectMeta: kapi.ObjectMeta{Name: "name"}}) + _, err := rest.Create(apirequest.NewDefaultContext(), &buildapi.BuildRequest{ObjectMeta: metav1.ObjectMeta{Name: "name"}}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -28,7 +29,7 @@ func TestCreateClone(t *testing.T) { func TestCreateCloneValidationError(t *testing.T) { rest := CloneREST{&generator.BuildGenerator{}} - _, err := rest.Create(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := rest.Create(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil { t.Error("Expected object got none!") } diff --git a/pkg/build/registry/buildclone/strategy.go b/pkg/build/registry/buildclone/strategy.go index eea11570f4aa..a618f85618d4 100644 --- a/pkg/build/registry/buildclone/strategy.go +++ b/pkg/build/registry/buildclone/strategy.go @@ -1,9 +1,10 @@ package buildclone import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" buildvalidation "github.com/openshift/origin/pkg/build/api/validation" @@ -28,11 +29,11 @@ func (s strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new role. -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return buildvalidation.ValidateBuildRequest(obj.(*buildapi.BuildRequest)) } diff --git a/pkg/build/registry/buildconfig/etcd/etcd.go b/pkg/build/registry/buildconfig/etcd/etcd.go index d50caa7e351e..96c356c92cb2 100644 --- a/pkg/build/registry/buildconfig/etcd/etcd.go +++ b/pkg/build/registry/buildconfig/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/registry/buildconfig" diff --git a/pkg/build/registry/buildconfig/etcd/etcd_test.go b/pkg/build/registry/buildconfig/etcd/etcd_test.go index 3dd9c9a0467f..236a6ab7d715 100644 --- a/pkg/build/registry/buildconfig/etcd/etcd_test.go +++ b/pkg/build/registry/buildconfig/etcd/etcd_test.go @@ -3,12 +3,13 @@ package etcd import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -32,7 +33,7 @@ func TestStorage(t *testing.T) { func validBuildConfig() *api.BuildConfig { return &api.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "configid"}, + ObjectMeta: metav1.ObjectMeta{Name: "configid"}, Spec: api.BuildConfigSpec{ RunPolicy: api.BuildRunPolicySerial, CommonSpec: api.CommonSpec{ diff --git a/pkg/build/registry/buildconfig/registry.go b/pkg/build/registry/buildconfig/registry.go index 9e2e39175fca..d9e4d4f43303 100644 --- a/pkg/build/registry/buildconfig/registry.go +++ b/pkg/build/registry/buildconfig/registry.go @@ -2,25 +2,28 @@ package buildconfig import ( "github.com/openshift/origin/pkg/build/api" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" ) // Registry is an interface for things that know how to store BuildConfigs. type Registry interface { // ListBuildConfigs obtains list of buildConfigs that match a selector. - ListBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (*api.BuildConfigList, error) + ListBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (*api.BuildConfigList, error) // GetBuildConfig retrieves a specific buildConfig. - GetBuildConfig(ctx kapi.Context, id string) (*api.BuildConfig, error) + GetBuildConfig(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.BuildConfig, error) // CreateBuildConfig creates a new buildConfig. - CreateBuildConfig(ctx kapi.Context, buildConfig *api.BuildConfig) error + CreateBuildConfig(ctx apirequest.Context, buildConfig *api.BuildConfig) error // UpdateBuildConfig updates a buildConfig. - UpdateBuildConfig(ctx kapi.Context, buildConfig *api.BuildConfig) error + UpdateBuildConfig(ctx apirequest.Context, buildConfig *api.BuildConfig) error // DeleteBuildConfig deletes a buildConfig. - DeleteBuildConfig(ctx kapi.Context, id string) error + DeleteBuildConfig(ctx apirequest.Context, id string) error // WatchBuildConfigs watches buildConfigs. - WatchBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // storage puts strong typing around storage calls @@ -34,7 +37,7 @@ func NewRegistry(s rest.StandardStorage) Registry { return &storage{s} } -func (s *storage) ListBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (*api.BuildConfigList, error) { +func (s *storage) ListBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (*api.BuildConfigList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -42,29 +45,29 @@ func (s *storage) ListBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) return obj.(*api.BuildConfigList), nil } -func (s *storage) WatchBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetBuildConfig(ctx kapi.Context, name string) (*api.BuildConfig, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetBuildConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.BuildConfig, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.BuildConfig), nil } -func (s *storage) CreateBuildConfig(ctx kapi.Context, build *api.BuildConfig) error { +func (s *storage) CreateBuildConfig(ctx apirequest.Context, build *api.BuildConfig) error { _, err := s.Create(ctx, build) return err } -func (s *storage) UpdateBuildConfig(ctx kapi.Context, build *api.BuildConfig) error { +func (s *storage) UpdateBuildConfig(ctx apirequest.Context, build *api.BuildConfig) error { _, _, err := s.Update(ctx, build.Name, rest.DefaultUpdatedObjectInfo(build, kapi.Scheme)) return err } -func (s *storage) DeleteBuildConfig(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteBuildConfig(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/build/registry/buildconfig/strategy.go b/pkg/build/registry/buildconfig/strategy.go index 2e3c148f436f..9f2feeacd9c6 100644 --- a/pkg/build/registry/buildconfig/strategy.go +++ b/pkg/build/registry/buildconfig/strategy.go @@ -3,12 +3,15 @@ package buildconfig import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/validation" @@ -17,11 +20,11 @@ import ( // strategy implements behavior for BuildConfig objects type strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating BuildConfig objects. -var Strategy = strategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = strategy{kapi.Scheme, names.SimpleNameGenerator} func (strategy) NamespaceScoped() bool { return true @@ -37,7 +40,7 @@ func (strategy) AllowUnconditionalUpdate() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { bc := obj.(*api.BuildConfig) dropUnknownTriggers(bc) } @@ -47,7 +50,7 @@ func (strategy) Canonicalize(obj runtime.Object) { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newBC := obj.(*api.BuildConfig) oldBC := old.(*api.BuildConfig) dropUnknownTriggers(newBC) @@ -59,12 +62,12 @@ func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { } // Validate validates a new policy. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateBuildConfig(obj.(*api.BuildConfig)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateBuildConfigUpdate(obj.(*api.BuildConfig), old.(*api.BuildConfig)) } @@ -87,7 +90,7 @@ func Matcher(label labels.Selector, field fields.Selector) kstorage.SelectionPre } // CheckGracefulDelete allows a build config to be gracefully deleted. -func (strategy) CheckGracefulDelete(obj runtime.Object, options *kapi.DeleteOptions) bool { +func (strategy) CheckGracefulDelete(obj runtime.Object, options *metav1.DeleteOptions) bool { return false } diff --git a/pkg/build/registry/buildconfig/strategy_test.go b/pkg/build/registry/buildconfig/strategy_test.go index 8cc31333a61f..ebfd012ce4b8 100644 --- a/pkg/build/registry/buildconfig/strategy_test.go +++ b/pkg/build/registry/buildconfig/strategy_test.go @@ -3,13 +3,15 @@ package buildconfig import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" buildapi "github.com/openshift/origin/pkg/build/api" ) func TestBuildConfigStrategy(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() if !Strategy.NamespaceScoped() { t.Errorf("BuildConfig is namespace scoped") } @@ -17,7 +19,7 @@ func TestBuildConfigStrategy(t *testing.T) { t.Errorf("BuildConfig should not allow create on update") } buildConfig := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, Triggers: []buildapi.BuildTriggerPolicy{ @@ -52,7 +54,7 @@ func TestBuildConfigStrategy(t *testing.T) { }, } newBC := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config-id", Namespace: "namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: "config-id", Namespace: "namespace"}, Spec: buildapi.BuildConfigSpec{ RunPolicy: buildapi.BuildRunPolicySerial, Triggers: []buildapi.BuildTriggerPolicy{ diff --git a/pkg/build/registry/buildconfig/webhook.go b/pkg/build/registry/buildconfig/webhook.go index b9a01cacde9e..8b8d6ee59125 100644 --- a/pkg/build/registry/buildconfig/webhook.go +++ b/pkg/build/registry/buildconfig/webhook.go @@ -5,11 +5,13 @@ import ( "net/http" "strings" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/client" @@ -18,7 +20,7 @@ import ( ) // NewWebHookREST returns the webhook handler wrapped in a rest.WebHook object. -func NewWebHookREST(registry Registry, instantiator client.BuildConfigInstantiator, groupVersion unversioned.GroupVersion, plugins map[string]webhook.Plugin) *rest.WebHook { +func NewWebHookREST(registry Registry, instantiator client.BuildConfigInstantiator, groupVersion schema.GroupVersion, plugins map[string]webhook.Plugin) *rest.WebHook { hook := &WebHook{ groupVersion: groupVersion, registry: registry, @@ -29,14 +31,14 @@ func NewWebHookREST(registry Registry, instantiator client.BuildConfigInstantiat } type WebHook struct { - groupVersion unversioned.GroupVersion + groupVersion schema.GroupVersion registry Registry instantiator client.BuildConfigInstantiator plugins map[string]webhook.Plugin } // ServeHTTP implements rest.HookHandler -func (w *WebHook) ServeHTTP(writer http.ResponseWriter, req *http.Request, ctx kapi.Context, name, subpath string) error { +func (w *WebHook) ServeHTTP(writer http.ResponseWriter, req *http.Request, ctx apirequest.Context, name, subpath string) error { parts := strings.Split(subpath, "/") if len(parts) != 2 { return errors.NewBadRequest(fmt.Sprintf("unexpected hook subpath %s", subpath)) @@ -48,7 +50,7 @@ func (w *WebHook) ServeHTTP(writer http.ResponseWriter, req *http.Request, ctx k return errors.NewNotFound(buildapi.LegacyResource("buildconfighook"), hookType) } - config, err := w.registry.GetBuildConfig(ctx, name) + config, err := w.registry.GetBuildConfig(ctx, name, &metav1.GetOptions{}) if err != nil { // clients should not be able to find information about build configs in // the system unless the config exists and the secret matches @@ -73,7 +75,7 @@ func (w *WebHook) ServeHTTP(writer http.ResponseWriter, req *http.Request, ctx k buildTriggerCauses := generateBuildTriggerInfo(revision, hookType, secret) request := &buildapi.BuildRequest{ TriggeredBy: buildTriggerCauses, - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Revision: revision, Env: envvars, DockerStrategyOptions: dockerStrategyOptions, diff --git a/pkg/build/registry/buildconfig/webhook_test.go b/pkg/build/registry/buildconfig/webhook_test.go index b016b6045d15..b5403870462c 100644 --- a/pkg/build/registry/buildconfig/webhook_test.go +++ b/pkg/build/registry/buildconfig/webhook_test.go @@ -11,10 +11,11 @@ import ( "strings" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" _ "github.com/openshift/origin/pkg/api/install" "github.com/openshift/origin/pkg/build/api" @@ -39,7 +40,7 @@ func (i *buildConfigInstantiator) Instantiate(namespace string, request *api.Bui return i.Build, i.Err } return &api.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: request.Name, Namespace: namespace, }, @@ -82,7 +83,7 @@ func newStorage() (*rest.WebHook, *buildConfigInstantiator, *test.BuildConfigReg func TestNewWebHook(t *testing.T) { hook, _, _ := newStorage() - if out, ok := hook.New().(*unversioned.Status); !ok { + if out, ok := hook.New().(*api.Build); !ok { t.Errorf("unexpected new: %#v", out) } } @@ -125,7 +126,7 @@ func TestConnectWebHook(t *testing.T) { "hook returns generic error": { Name: "test", Path: "secret/err", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, ErrFn: func(err error) bool { return strings.Contains(err.Error(), "Internal error occurred: hook failed: test error") }, @@ -134,21 +135,21 @@ func TestConnectWebHook(t *testing.T) { "hook returns unauthorized for bad secret": { Name: "test", Path: "secret/errsecret", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, ErrFn: kerrors.IsUnauthorized, Instantiate: false, }, "hook returns unauthorized for bad hook": { Name: "test", Path: "secret/errhook", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, ErrFn: kerrors.IsUnauthorized, Instantiate: false, }, "hook returns unauthorized for missing build config": { Name: "test", Path: "secret/errhook", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, RegErr: fmt.Errorf("any old error"), ErrFn: kerrors.IsUnauthorized, Instantiate: false, @@ -156,7 +157,7 @@ func TestConnectWebHook(t *testing.T) { "hook returns 200 for ok hook": { Name: "test", Path: "secret/ok", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, ErrFn: func(err error) bool { return err == nil }, WFn: func(w *httptest.ResponseRecorder) bool { body, _ := ioutil.ReadAll(w.Body) @@ -177,7 +178,7 @@ func TestConnectWebHook(t *testing.T) { "hook returns 200 for okenv hook": { Name: "test", Path: "secret/okenv", - Obj: &api.BuildConfig{ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "default"}}, + Obj: &api.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "default"}}, ErrFn: func(err error) bool { return err == nil }, WFn: func(w *httptest.ResponseRecorder) bool { return w.Code == http.StatusOK @@ -195,7 +196,7 @@ func TestConnectWebHook(t *testing.T) { registry.Err = testCase.RegErr } responder := &fakeResponder{} - handler, err := hook.Connect(kapi.NewDefaultContext(), testCase.Name, &kapi.PodProxyOptions{Path: testCase.Path}, responder) + handler, err := hook.Connect(apirequest.NewDefaultContext(), testCase.Name, &kapi.PodProxyOptions{Path: testCase.Path}, responder) if err != nil { t.Errorf("%s: %v", k, err) continue @@ -235,7 +236,7 @@ type okBuildConfigInstantiator struct{} func (*okBuildConfigInstantiator) Instantiate(namespace string, request *api.BuildRequest) (*api.Build, error) { return &api.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: request.Name, }, @@ -276,7 +277,7 @@ func (*errPlugin) Extract(buildCfg *api.BuildConfig, secret, path string, req *h } var testBuildConfig = &api.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "build100"}, + ObjectMeta: metav1.ObjectMeta{Name: "build100"}, Spec: api.BuildConfigSpec{ Triggers: []api.BuildTriggerPolicy{ { @@ -321,7 +322,7 @@ func TestParseUrlError(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"github": github.New(), "gitlab": gitlab.New(), "bitbucket": bitbucket.New()}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: ""}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: ""}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -339,7 +340,7 @@ func TestParseUrlOK(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"pathplugin": &pathPlugin{}}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -357,7 +358,7 @@ func TestParseUrlLong(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"pathplugin": plugin}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin/some/more/args"}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin/some/more/args"}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -375,7 +376,7 @@ func TestInvokeWebhookMissingPlugin(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"pathplugin": &pathPlugin{}}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/missingplugin"}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/missingplugin"}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -393,7 +394,7 @@ func TestInvokeWebhookErrorBuildConfigInstantiate(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &errorBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"pathplugin": &pathPlugin{}}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -411,7 +412,7 @@ func TestInvokeWebhookErrorGetConfig(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"pathplugin": &pathPlugin{}}). - Connect(kapi.NewDefaultContext(), "badbuild100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) + Connect(apirequest.NewDefaultContext(), "badbuild100", &kapi.PodProxyOptions{Path: "secret101/pathplugin"}, responder) server := httptest.NewServer(handler) defer server.Close() @@ -431,7 +432,7 @@ func TestInvokeWebhookErrorCreateBuild(t *testing.T) { bcRegistry := &test.BuildConfigRegistry{BuildConfig: testBuildConfig} responder := &fakeResponder{} handler, _ := NewWebHookREST(bcRegistry, &okBuildConfigInstantiator{}, buildapiv1.SchemeGroupVersion, map[string]webhook.Plugin{"errPlugin": &errPlugin{}}). - Connect(kapi.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/errPlugin"}, responder) + Connect(apirequest.NewDefaultContext(), "build100", &kapi.PodProxyOptions{Path: "secret101/errPlugin"}, responder) server := httptest.NewServer(handler) defer server.Close() diff --git a/pkg/build/registry/buildconfiginstantiate/rest.go b/pkg/build/registry/buildconfiginstantiate/rest.go index cec8a152f4f1..70d0d89a421a 100644 --- a/pkg/build/registry/buildconfiginstantiate/rest.go +++ b/pkg/build/registry/buildconfiginstantiate/rest.go @@ -8,18 +8,20 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/httpstream/spdy" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/wait" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" kubeletremotecommand "k8s.io/kubernetes/pkg/kubelet/server/remotecommand" "k8s.io/kubernetes/pkg/registry/core/pod" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/httpstream/spdy" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/wait" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/generator" @@ -49,7 +51,7 @@ func (s *InstantiateREST) New() runtime.Object { } // Create instantiates a new build from a build configuration -func (s *InstantiateREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *InstantiateREST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { if err := rest.BeforeCreate(Strategy, ctx, obj); err != nil { return nil, err } @@ -90,7 +92,7 @@ func (s *BinaryInstantiateREST) New() runtime.Object { } // Connect returns a ConnectHandler that will handle the request/response for a request -func (r *BinaryInstantiateREST) Connect(ctx kapi.Context, name string, options runtime.Object, responder rest.Responder) (http.Handler, error) { +func (r *BinaryInstantiateREST) Connect(ctx apirequest.Context, name string, options runtime.Object, responder rest.Responder) (http.Handler, error) { return &binaryInstantiateHandler{ r: r, responder: responder, @@ -115,7 +117,7 @@ type binaryInstantiateHandler struct { r *BinaryInstantiateREST responder rest.Responder - ctx kapi.Context + ctx apirequest.Context name string options *buildapi.BinaryBuildRequestOptions } @@ -260,7 +262,7 @@ func (h *binaryInstantiateHandler) cancelBuild(build *buildapi.Build) { err := h.r.Generator.Client.UpdateBuild(h.ctx, build) switch { case err != nil && errors.IsConflict(err): - build, err = h.r.Generator.Client.GetBuild(h.ctx, build.Name) + build, err = h.r.Generator.Client.GetBuild(h.ctx, build.Name, &metav1.GetOptions{}) return false, err default: return true, err @@ -272,10 +274,10 @@ type podGetter struct { podsNamespacer kcoreclient.PodsGetter } -func (g *podGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { - ns, ok := kapi.NamespaceFrom(ctx) +func (g *podGetter) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, errors.NewBadRequest("namespace parameter required.") } - return g.podsNamespacer.Pods(ns).Get(name) + return g.podsNamespacer.Pods(ns).Get(name, *options) } diff --git a/pkg/build/registry/buildconfiginstantiate/rest_test.go b/pkg/build/registry/buildconfiginstantiate/rest_test.go index 1f28a22cf9f5..f6f5736046a3 100644 --- a/pkg/build/registry/buildconfiginstantiate/rest_test.go +++ b/pkg/build/registry/buildconfiginstantiate/rest_test.go @@ -3,9 +3,10 @@ package buildconfiginstantiate import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" _ "github.com/openshift/origin/pkg/build/api/install" @@ -25,30 +26,30 @@ func TestCreateInstantiate(t *testing.T) { Secrets: fake.NewSimpleClientset(fakeSecrets...).Core(), ServiceAccounts: mocks.MockBuilderServiceAccount(mocks.MockBuilderSecrets()), Client: generator.Client{ - GetBuildConfigFunc: func(ctx kapi.Context, name string) (*buildapi.BuildConfig, error) { + GetBuildConfigFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.BuildConfig, error) { return mocks.MockBuildConfig(mocks.MockSource(), mocks.MockSourceStrategyForImageRepository(), mocks.MockOutput()), nil }, - UpdateBuildConfigFunc: func(ctx kapi.Context, buildConfig *buildapi.BuildConfig) error { + UpdateBuildConfigFunc: func(ctx apirequest.Context, buildConfig *buildapi.BuildConfig) error { return nil }, - CreateBuildFunc: func(ctx kapi.Context, build *buildapi.Build) error { + CreateBuildFunc: func(ctx apirequest.Context, build *buildapi.Build) error { return nil }, - GetBuildFunc: func(ctx kapi.Context, name string) (*buildapi.Build, error) { + GetBuildFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*buildapi.Build, error) { return &buildapi.Build{}, nil }, - GetImageStreamFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + GetImageStreamFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { return imageStream, nil }, - GetImageStreamTagFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamTag, error) { + GetImageStreamTagFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamTag, error) { return &imageapi.ImageStreamTag{Image: *image}, nil }, - GetImageStreamImageFunc: func(ctx kapi.Context, name string) (*imageapi.ImageStreamImage, error) { + GetImageStreamImageFunc: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStreamImage, error) { return &imageapi.ImageStreamImage{Image: *image}, nil }, }}} - _, err := rest.Create(kapi.NewDefaultContext(), &buildapi.BuildRequest{ObjectMeta: kapi.ObjectMeta{Name: "name"}}) + _, err := rest.Create(apirequest.NewDefaultContext(), &buildapi.BuildRequest{ObjectMeta: metav1.ObjectMeta{Name: "name"}}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -56,7 +57,7 @@ func TestCreateInstantiate(t *testing.T) { func TestCreateInstantiateValidationError(t *testing.T) { rest := InstantiateREST{&generator.BuildGenerator{}} - _, err := rest.Create(kapi.NewDefaultContext(), &buildapi.BuildRequest{}) + _, err := rest.Create(apirequest.NewDefaultContext(), &buildapi.BuildRequest{}) if err == nil { t.Error("Expected object got none!") } diff --git a/pkg/build/registry/buildconfiginstantiate/strategy.go b/pkg/build/registry/buildconfiginstantiate/strategy.go index efbede1c8023..868da5465520 100644 --- a/pkg/build/registry/buildconfiginstantiate/strategy.go +++ b/pkg/build/registry/buildconfiginstantiate/strategy.go @@ -1,9 +1,10 @@ package buildconfiginstantiate import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" buildapi "github.com/openshift/origin/pkg/build/api" buildvalidation "github.com/openshift/origin/pkg/build/api/validation" @@ -28,7 +29,7 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -36,7 +37,7 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new role. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return buildvalidation.ValidateBuildRequest(obj.(*buildapi.BuildRequest)) } @@ -59,7 +60,7 @@ func (binaryStrategy) GenerateName(base string) string { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (binaryStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (binaryStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -67,7 +68,7 @@ func (binaryStrategy) Canonicalize(obj runtime.Object) { } // Validate validates a new role. -func (binaryStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (binaryStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { // TODO: validate return nil } diff --git a/pkg/build/registry/buildlog/rest.go b/pkg/build/registry/buildlog/rest.go index 691fe5043300..8b77a9615056 100644 --- a/pkg/build/registry/buildlog/rest.go +++ b/pkg/build/registry/buildlog/rest.go @@ -6,14 +6,16 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + genericrest "k8s.io/apiserver/pkg/registry/generic/rest" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/registry/core/pod" - genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/api/validation" @@ -34,12 +36,12 @@ type podGetter struct { kcoreclient.PodsGetter } -func (g *podGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { - ns, ok := kapi.NamespaceFrom(ctx) +func (g *podGetter) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, errors.NewBadRequest("namespace parameter required.") } - return g.Pods(ns).Get(name) + return g.Pods(ns).Get(name, *options) } const defaultTimeout time.Duration = 10 * time.Second @@ -60,7 +62,7 @@ func NewREST(getter rest.Getter, watcher rest.Watcher, pn kcoreclient.PodsGetter var _ = rest.GetterWithOptions(&REST{}) // Get returns a streamer resource with the contents of the build log -func (r *REST) Get(ctx kapi.Context, name string, opts runtime.Object) (runtime.Object, error) { +func (r *REST) Get(ctx apirequest.Context, name string, opts runtime.Object) (runtime.Object, error) { buildLogOpts, ok := opts.(*api.BuildLogOptions) if !ok { return nil, errors.NewBadRequest("did not get an expected options.") @@ -68,7 +70,7 @@ func (r *REST) Get(ctx kapi.Context, name string, opts runtime.Object) (runtime. if errs := validation.ValidateBuildLogOptions(buildLogOpts); len(errs) > 0 { return nil, errors.NewInvalid(api.Kind("BuildLogOptions"), "", errs) } - obj, err := r.Getter.Get(ctx, name) + obj, err := r.Getter.Get(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -78,7 +80,7 @@ func (r *REST) Get(ctx kapi.Context, name string, opts runtime.Object) (runtime. // Use the previous version version-- previousBuildName := buildutil.BuildNameForConfigVersion(buildutil.ConfigNameForBuild(build), version) - previous, err := r.Getter.Get(ctx, previousBuildName) + previous, err := r.Getter.Get(ctx, previousBuildName, &metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/build/registry/buildlog/rest_test.go b/pkg/build/registry/buildlog/rest_test.go index fe6255fbf727..f9f33f1c2fce 100644 --- a/pkg/build/registry/buildlog/rest_test.go +++ b/pkg/build/registry/buildlog/rest_test.go @@ -8,13 +8,16 @@ import ( "testing" "time" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + genericrest "k8s.io/apiserver/pkg/registry/generic/rest" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/registry/test" @@ -22,7 +25,7 @@ import ( type testPodGetter struct{} -func (p *testPodGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (p *testPodGetter) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { pod := &kapi.Pod{} switch name { case "pending-build": @@ -41,7 +44,7 @@ func (p *testPodGetter) Get(ctx kapi.Context, name string) (runtime.Object, erro type fakeConnectionInfoGetter struct{} -func (*fakeConnectionInfoGetter) GetConnectionInfo(ctx kapi.Context, nodeName types.NodeName) (*kubeletclient.ConnectionInfo, error) { +func (*fakeConnectionInfoGetter) GetConnectionInfo(nodeName types.NodeName) (*kubeletclient.ConnectionInfo, error) { rt, err := kubeletclient.MakeTransport(&kubeletclient.KubeletClientConfig{}) if err != nil { return nil, err @@ -60,16 +63,16 @@ func (*fakeConnectionInfoGetter) GetConnectionInfo(ctx kapi.Context, nodeName ty // is evaluating the outcome based only on build state. func TestRegistryResourceLocation(t *testing.T) { expectedLocations := map[api.BuildPhase]string{ - api.BuildPhaseComplete: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", kapi.NamespaceDefault), - api.BuildPhaseFailed: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", kapi.NamespaceDefault), - api.BuildPhaseRunning: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", kapi.NamespaceDefault), + api.BuildPhaseComplete: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", metav1.NamespaceDefault), + api.BuildPhaseFailed: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", metav1.NamespaceDefault), + api.BuildPhaseRunning: fmt.Sprintf("https://foo-host:12345/containerLogs/%s/running-build/foo-container", metav1.NamespaceDefault), api.BuildPhaseNew: "", api.BuildPhasePending: "", api.BuildPhaseError: "", api.BuildPhaseCancelled: "", } - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() for BuildPhase, expectedLocation := range expectedLocations { location, err := resourceLocationHelper(BuildPhase, "running", ctx, 1) @@ -91,7 +94,7 @@ func TestRegistryResourceLocation(t *testing.T) { } func TestWaitForBuild(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() tests := []struct { name string status []api.BuildPhase @@ -169,7 +172,7 @@ func TestWaitForBuild(t *testing.T) { } func TestWaitForBuildTimeout(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() build := mockBuild(api.BuildPhasePending, "running", 1) ch := make(chan watch.Event) watcher := &buildWatcher{ @@ -197,11 +200,11 @@ type buildWatcher struct { Err error } -func (r *buildWatcher) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (r *buildWatcher) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { return r.Build, nil } -func (r *buildWatcher) Watch(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *buildWatcher) Watch(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return r.Watcher, r.Err } @@ -217,7 +220,7 @@ func (w *fakeWatch) ResultChan() <-chan watch.Event { return w.Channel } -func resourceLocationHelper(BuildPhase api.BuildPhase, podPhase string, ctx kapi.Context, version int) (string, error) { +func resourceLocationHelper(BuildPhase api.BuildPhase, podPhase string, ctx apirequest.Context, version int) (string, error) { expectedBuild := mockBuild(BuildPhase, podPhase, version) internal := &test.BuildStorage{Build: expectedBuild} @@ -245,9 +248,9 @@ func resourceLocationHelper(BuildPhase api.BuildPhase, podPhase string, ctx kapi func mockPod(podPhase kapi.PodPhase, podName string) *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: kapi.PodSpec{ Containers: []kapi.Container{ @@ -265,7 +268,7 @@ func mockPod(podPhase kapi.PodPhase, podName string) *kapi.Pod { func mockBuild(status api.BuildPhase, podName string, version int) *api.Build { return &api.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, Annotations: map[string]string{ api.BuildNumberAnnotation: strconv.Itoa(version), @@ -282,7 +285,7 @@ func mockBuild(status api.BuildPhase, podName string, version int) *api.Build { type anotherTestPodGetter struct{} -func (p *anotherTestPodGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (p *anotherTestPodGetter) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { pod := &kapi.Pod{} switch name { case "bc-1-build": @@ -296,7 +299,7 @@ func (p *anotherTestPodGetter) Get(ctx kapi.Context, name string) (runtime.Objec } func TestPreviousBuildLogs(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() first := mockBuild(api.BuildPhaseComplete, "bc-1", 1) second := mockBuild(api.BuildPhaseComplete, "bc-2", 2) third := mockBuild(api.BuildPhaseComplete, "bc-3", 3) diff --git a/pkg/build/registry/rest.go b/pkg/build/registry/rest.go index a0f13ac583f3..d181c443be7a 100644 --- a/pkg/build/registry/rest.go +++ b/pkg/build/registry/rest.go @@ -4,10 +4,11 @@ import ( "fmt" "time" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "github.com/openshift/origin/pkg/build/api" ) @@ -21,9 +22,9 @@ var ( // WaitForRunningBuild waits until the specified build is no longer New or Pending. Returns true if // the build ran within timeout, false if it did not, and an error if any other error state occurred. // The last observed Build state is returned. -func WaitForRunningBuild(watcher rest.Watcher, ctx kapi.Context, build *api.Build, timeout time.Duration) (*api.Build, bool, error) { +func WaitForRunningBuild(watcher rest.Watcher, ctx apirequest.Context, build *api.Build, timeout time.Duration) (*api.Build, bool, error) { fieldSelector := fields.OneTermEqualSelector("metadata.name", build.Name) - options := &kapi.ListOptions{FieldSelector: fieldSelector, ResourceVersion: build.ResourceVersion} + options := &metainternal.ListOptions{FieldSelector: fieldSelector, ResourceVersion: build.ResourceVersion} w, err := watcher.Watch(ctx, options) if err != nil { return build, false, err diff --git a/pkg/build/registry/test/build.go b/pkg/build/registry/test/build.go index ab583ee476c1..86e8c687aade 100644 --- a/pkg/build/registry/test/build.go +++ b/pkg/build/registry/test/build.go @@ -3,9 +3,11 @@ package test import ( "sync" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -18,33 +20,33 @@ type BuildRegistry struct { sync.Mutex } -func (r *BuildRegistry) ListBuilds(ctx kapi.Context, options *kapi.ListOptions) (*buildapi.BuildList, error) { +func (r *BuildRegistry) ListBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (*buildapi.BuildList, error) { r.Lock() defer r.Unlock() return r.Builds, r.Err } -func (r *BuildRegistry) GetBuild(ctx kapi.Context, id string) (*buildapi.Build, error) { +func (r *BuildRegistry) GetBuild(ctx apirequest.Context, id string) (*buildapi.Build, error) { r.Lock() defer r.Unlock() return r.Build, r.Err } -func (r *BuildRegistry) CreateBuild(ctx kapi.Context, build *buildapi.Build) error { +func (r *BuildRegistry) CreateBuild(ctx apirequest.Context, build *buildapi.Build) error { r.Lock() defer r.Unlock() r.Build = build return r.Err } -func (r *BuildRegistry) UpdateBuild(ctx kapi.Context, build *buildapi.Build) error { +func (r *BuildRegistry) UpdateBuild(ctx apirequest.Context, build *buildapi.Build) error { r.Lock() defer r.Unlock() r.Build = build return r.Err } -func (r *BuildRegistry) DeleteBuild(ctx kapi.Context, id string) error { +func (r *BuildRegistry) DeleteBuild(ctx apirequest.Context, id string) error { r.Lock() defer r.Unlock() r.DeletedBuildID = id @@ -52,7 +54,7 @@ func (r *BuildRegistry) DeleteBuild(ctx kapi.Context, id string) error { return r.Err } -func (r *BuildRegistry) WatchBuilds(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *BuildRegistry) WatchBuilds(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, r.Err } @@ -63,7 +65,7 @@ type BuildStorage struct { sync.Mutex } -func (r *BuildStorage) Get(ctx kapi.Context, id string) (runtime.Object, error) { +func (r *BuildStorage) Get(ctx apirequest.Context, id string, options *metav1.GetOptions) (runtime.Object, error) { r.Lock() defer r.Unlock() // TODO: Use the list of builds in all of the rest registry calls @@ -87,7 +89,7 @@ func (r *BuildStorageWithOptions) NewGetOptions() (runtime.Object, bool, string) return nil, false, "" } -func (r *BuildStorageWithOptions) Get(ctx kapi.Context, id string, opts runtime.Object) (runtime.Object, error) { +func (r *BuildStorageWithOptions) Get(ctx apirequest.Context, id string, opts runtime.Object) (runtime.Object, error) { r.Lock() defer r.Unlock() return r.Build, r.Err diff --git a/pkg/build/registry/test/buildconfig.go b/pkg/build/registry/test/buildconfig.go index 59638b0cf39f..6a1217d0dc50 100644 --- a/pkg/build/registry/test/buildconfig.go +++ b/pkg/build/registry/test/buildconfig.go @@ -3,9 +3,11 @@ package test import ( "sync" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/watch" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/build/api" ) @@ -18,13 +20,13 @@ type BuildConfigRegistry struct { sync.Mutex } -func (r *BuildConfigRegistry) ListBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (*api.BuildConfigList, error) { +func (r *BuildConfigRegistry) ListBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (*api.BuildConfigList, error) { r.Lock() defer r.Unlock() return r.BuildConfigs, r.Err } -func (r *BuildConfigRegistry) GetBuildConfig(ctx kapi.Context, id string) (*api.BuildConfig, error) { +func (r *BuildConfigRegistry) GetBuildConfig(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.BuildConfig, error) { r.Lock() defer r.Unlock() if r.BuildConfig != nil && r.BuildConfig.Name == id { @@ -33,21 +35,21 @@ func (r *BuildConfigRegistry) GetBuildConfig(ctx kapi.Context, id string) (*api. return nil, kapierrors.NewNotFound(api.Resource("buildconfig"), id) } -func (r *BuildConfigRegistry) CreateBuildConfig(ctx kapi.Context, config *api.BuildConfig) error { +func (r *BuildConfigRegistry) CreateBuildConfig(ctx apirequest.Context, config *api.BuildConfig) error { r.Lock() defer r.Unlock() r.BuildConfig = config return r.Err } -func (r *BuildConfigRegistry) UpdateBuildConfig(ctx kapi.Context, config *api.BuildConfig) error { +func (r *BuildConfigRegistry) UpdateBuildConfig(ctx apirequest.Context, config *api.BuildConfig) error { r.Lock() defer r.Unlock() r.BuildConfig = config return r.Err } -func (r *BuildConfigRegistry) DeleteBuildConfig(ctx kapi.Context, id string) error { +func (r *BuildConfigRegistry) DeleteBuildConfig(ctx apirequest.Context, id string) error { r.Lock() defer r.Unlock() r.DeletedConfigID = id @@ -55,6 +57,6 @@ func (r *BuildConfigRegistry) DeleteBuildConfig(ctx kapi.Context, id string) err return r.Err } -func (r *BuildConfigRegistry) WatchBuildConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *BuildConfigRegistry) WatchBuildConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, r.Err } diff --git a/pkg/build/util/util.go b/pkg/build/util/util.go index 0e161ce8a69c..1af07fc838fc 100644 --- a/pkg/build/util/util.go +++ b/pkg/build/util/util.go @@ -5,8 +5,9 @@ import ( "strconv" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" "github.com/golang/glog" buildapi "github.com/openshift/origin/pkg/build/api" @@ -102,8 +103,8 @@ type buildFilter func(buildapi.Build) bool // Optionally you can specify a filter function to select only builds that // matches your criteria. func BuildConfigBuilds(c buildclient.BuildLister, namespace, name string, filterFunc buildFilter) (*buildapi.BuildList, error) { - result, err := c.List(namespace, kapi.ListOptions{ - LabelSelector: BuildConfigSelector(name), + result, err := c.List(namespace, metav1.ListOptions{ + LabelSelector: BuildConfigSelector(name).String(), }) if err != nil { return nil, err diff --git a/pkg/build/webhook/bitbucket/bitbucket.go b/pkg/build/webhook/bitbucket/bitbucket.go index 2032df849411..a5a9fe8e7309 100644 --- a/pkg/build/webhook/bitbucket/bitbucket.go +++ b/pkg/build/webhook/bitbucket/bitbucket.go @@ -7,7 +7,7 @@ import ( "mime" "net/http" - "k8s.io/client-go/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" kapi "k8s.io/kubernetes/pkg/api" "github.com/golang/glog" diff --git a/pkg/build/webhook/bitbucket/bitbucket_test.go b/pkg/build/webhook/bitbucket/bitbucket_test.go index 563b596438db..fa8cc9d6905f 100644 --- a/pkg/build/webhook/bitbucket/bitbucket_test.go +++ b/pkg/build/webhook/bitbucket/bitbucket_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "k8s.io/client-go/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/webhook/generic/generic.go b/pkg/build/webhook/generic/generic.go index b0e3f079ce2b..c913396f8d1b 100644 --- a/pkg/build/webhook/generic/generic.go +++ b/pkg/build/webhook/generic/generic.go @@ -9,9 +9,9 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/yaml" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/yaml" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/webhook" diff --git a/pkg/build/webhook/generic/generic_test.go b/pkg/build/webhook/generic/generic_test.go index 66f81c7e03be..80dc1654379e 100644 --- a/pkg/build/webhook/generic/generic_test.go +++ b/pkg/build/webhook/generic/generic_test.go @@ -10,9 +10,9 @@ import ( "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/webhook" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" ) var mockBuildStrategy = api.BuildStrategy{ @@ -61,8 +61,8 @@ func matchWarning(t *testing.T, err error, message string) { return } - if status.ErrStatus.Status != unversioned.StatusSuccess { - t.Errorf("Unexpected response status %v, expected %v", status.ErrStatus.Status, unversioned.StatusSuccess) + if status.ErrStatus.Status != metav1.StatusSuccess { + t.Errorf("Unexpected response status %v, expected %v", status.ErrStatus.Status, metav1.StatusSuccess) } if status.ErrStatus.Code != http.StatusOK { t.Errorf("Unexpected response code %v, expected %v", status.ErrStatus.Code, http.StatusOK) diff --git a/pkg/build/webhook/github/github.go b/pkg/build/webhook/github/github.go index d8e0d1f5b1a9..1713cd76ee72 100644 --- a/pkg/build/webhook/github/github.go +++ b/pkg/build/webhook/github/github.go @@ -7,8 +7,8 @@ import ( "mime" "net/http" + "k8s.io/apimachinery/pkg/api/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "github.com/golang/glog" "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/webhook/github/github_test.go b/pkg/build/webhook/github/github_test.go index 12035251856d..b82873d88525 100644 --- a/pkg/build/webhook/github/github_test.go +++ b/pkg/build/webhook/github/github_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/webhook" diff --git a/pkg/build/webhook/gitlab/gitlab.go b/pkg/build/webhook/gitlab/gitlab.go index bdc5c111b91a..2a44a96c819e 100644 --- a/pkg/build/webhook/gitlab/gitlab.go +++ b/pkg/build/webhook/gitlab/gitlab.go @@ -7,8 +7,8 @@ import ( "mime" "net/http" + "k8s.io/apimachinery/pkg/api/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "github.com/golang/glog" "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/build/webhook/gitlab/gitlab_test.go b/pkg/build/webhook/gitlab/gitlab_test.go index 960c27551684..2423cb5ad016 100644 --- a/pkg/build/webhook/gitlab/gitlab_test.go +++ b/pkg/build/webhook/gitlab/gitlab_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/build/webhook" diff --git a/pkg/build/webhook/webhook.go b/pkg/build/webhook/webhook.go index 9dde6a0f4651..eccc690ec108 100644 --- a/pkg/build/webhook/webhook.go +++ b/pkg/build/webhook/webhook.go @@ -6,9 +6,9 @@ import ( "net/http" "strings" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -91,8 +91,8 @@ func ValidateWebHookSecret(webHookTriggers []buildapi.BuildTriggerPolicy, secret // NewWarning returns an StatusError object with a http.StatusOK (200) code. func NewWarning(message string) *kerrors.StatusError { - return &kerrors.StatusError{ErrStatus: unversioned.Status{ - Status: unversioned.StatusSuccess, + return &kerrors.StatusError{ErrStatus: metav1.Status{ + Status: metav1.StatusSuccess, Code: http.StatusOK, Message: message, }} diff --git a/pkg/client/appliedclusterresourcequota.go b/pkg/client/appliedclusterresourcequota.go index 968b4e96e104..00e7c52921a7 100644 --- a/pkg/client/appliedclusterresourcequota.go +++ b/pkg/client/appliedclusterresourcequota.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" quotaapi "github.com/openshift/origin/pkg/quota/api" @@ -13,7 +14,7 @@ type AppliedClusterResourceQuotasNamespacer interface { // AppliedClusterResourceQuotaInterface exposes methods on AppliedClusterResourceQuota resources. type AppliedClusterResourceQuotaInterface interface { - List(opts kapi.ListOptions) (*quotaapi.AppliedClusterResourceQuotaList, error) + List(opts metainternal.ListOptions) (*quotaapi.AppliedClusterResourceQuotaList, error) Get(name string) (*quotaapi.AppliedClusterResourceQuota, error) } @@ -32,7 +33,7 @@ func newAppliedClusterResourceQuotas(c *Client, namespace string) *appliedCluste } // List returns a list of appliedClusterResourceQuotas that match the label and field selectors. -func (c *appliedClusterResourceQuotas) List(opts kapi.ListOptions) (result *quotaapi.AppliedClusterResourceQuotaList, err error) { +func (c *appliedClusterResourceQuotas) List(opts metainternal.ListOptions) (result *quotaapi.AppliedClusterResourceQuotaList, err error) { result = "aapi.AppliedClusterResourceQuotaList{} err = c.r.Get().Namespace(c.ns).Resource("appliedclusterresourcequotas").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/buildconfigs.go b/pkg/client/buildconfigs.go index 00ced8a1f09a..72ce0fccb96a 100644 --- a/pkg/client/buildconfigs.go +++ b/pkg/client/buildconfigs.go @@ -5,8 +5,9 @@ import ( "io" "net/url" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -22,12 +23,12 @@ type BuildConfigsNamespacer interface { // BuildConfigInterface exposes methods on BuildConfig resources type BuildConfigInterface interface { - List(opts kapi.ListOptions) (*buildapi.BuildConfigList, error) + List(opts metainternal.ListOptions) (*buildapi.BuildConfigList, error) Get(name string) (*buildapi.BuildConfig, error) Create(config *buildapi.BuildConfig) (*buildapi.BuildConfig, error) Update(config *buildapi.BuildConfig) (*buildapi.BuildConfig, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) Instantiate(request *buildapi.BuildRequest) (result *buildapi.Build, err error) InstantiateBinary(request *buildapi.BinaryBuildRequestOptions, r io.Reader) (result *buildapi.Build, err error) @@ -50,7 +51,7 @@ func newBuildConfigs(c *Client, namespace string) *buildConfigs { } // List returns a list of buildconfigs that match the label and field selectors. -func (c *buildConfigs) List(opts kapi.ListOptions) (result *buildapi.BuildConfigList, err error) { +func (c *buildConfigs) List(opts metainternal.ListOptions) (result *buildapi.BuildConfigList, err error) { result = &buildapi.BuildConfigList{} err = c.r.Get(). Namespace(c.ns). @@ -105,7 +106,7 @@ func (c *buildConfigs) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested buildConfigs. -func (c *buildConfigs) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *buildConfigs) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/buildlogs.go b/pkg/client/buildlogs.go index b0ca9cd1562b..1ecf23058c9b 100644 --- a/pkg/client/buildlogs.go +++ b/pkg/client/buildlogs.go @@ -1,8 +1,8 @@ package client import ( + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" api "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/client/builds.go b/pkg/client/builds.go index 15f3f4a2539a..7ec8db6d54ed 100644 --- a/pkg/client/builds.go +++ b/pkg/client/builds.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -14,12 +15,12 @@ type BuildsNamespacer interface { // BuildInterface exposes methods on Build resources. type BuildInterface interface { - List(opts kapi.ListOptions) (*buildapi.BuildList, error) + List(opts metainternal.ListOptions) (*buildapi.BuildList, error) Get(name string) (*buildapi.Build, error) Create(build *buildapi.Build) (*buildapi.Build, error) Update(build *buildapi.Build) (*buildapi.Build, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) Clone(request *buildapi.BuildRequest) (*buildapi.Build, error) UpdateDetails(build *buildapi.Build) (*buildapi.Build, error) } @@ -39,7 +40,7 @@ func newBuilds(c *Client, namespace string) *builds { } // List returns a list of builds that match the label and field selectors. -func (c *builds) List(opts kapi.ListOptions) (*buildapi.BuildList, error) { +func (c *builds) List(opts metainternal.ListOptions) (*buildapi.BuildList, error) { result := &buildapi.BuildList{} err := c.r.Get(). Namespace(c.ns). @@ -77,7 +78,7 @@ func (c *builds) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested builds -func (c *builds) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *builds) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/cache/build.go b/pkg/client/cache/build.go index 53efd97823aa..2dab849cfc65 100644 --- a/pkg/client/cache/build.go +++ b/pkg/client/cache/build.go @@ -1,10 +1,10 @@ package cache import ( + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + kcache "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" buildapi "github.com/openshift/origin/pkg/build/api" ) diff --git a/pkg/client/cache/buildconfig.go b/pkg/client/cache/buildconfig.go index c3b470ae333e..ec46d7ec83df 100644 --- a/pkg/client/cache/buildconfig.go +++ b/pkg/client/cache/buildconfig.go @@ -1,10 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -75,7 +75,7 @@ func (s storeBuildConfigsNamespacer) Get(name string) (*buildapi.BuildConfig, er func (s storeBuildConfigsNamespacer) List(selector labels.Selector) ([]*buildapi.BuildConfig, error) { configs := []*buildapi.BuildConfig{} - if s.namespace == kapi.NamespaceAll { + if s.namespace == metav1.NamespaceAll { for _, obj := range s.indexer.List() { bc := obj.(*buildapi.BuildConfig) if selector.Matches(labels.Set(bc.Labels)) { diff --git a/pkg/client/cache/clusterpolicy.go b/pkg/client/cache/clusterpolicy.go index 59e42b55ee4f..8a7ffa9229e9 100644 --- a/pkg/client/cache/clusterpolicy.go +++ b/pkg/client/cache/clusterpolicy.go @@ -1,9 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -24,7 +25,7 @@ func (i *InformerToClusterPolicyLister) ClusterPolicies() client.ClusterPolicyLi return i } -func (i *InformerToClusterPolicyLister) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { +func (i *InformerToClusterPolicyLister) List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) { clusterPolicyList := &authorizationapi.ClusterPolicyList{} returnedList := i.GetIndexer().List() matcher := clusterpolicyregistry.Matcher(oapi.ListOptionsToSelectors(&options)) @@ -38,7 +39,7 @@ func (i *InformerToClusterPolicyLister) List(options kapi.ListOptions) (*authori } func (i *InformerToClusterPolicyLister) Get(name string) (*authorizationapi.ClusterPolicy, error) { - keyObj := &authorizationapi.ClusterPolicy{ObjectMeta: kapi.ObjectMeta{Name: name}} + keyObj := &authorizationapi.ClusterPolicy{ObjectMeta: metav1.ObjectMeta{Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.GetIndexer().GetByKey(key) diff --git a/pkg/client/cache/clusterpolicybinding.go b/pkg/client/cache/clusterpolicybinding.go index 697698a85227..a91c18377283 100644 --- a/pkg/client/cache/clusterpolicybinding.go +++ b/pkg/client/cache/clusterpolicybinding.go @@ -1,9 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -24,7 +25,7 @@ func (i *InformerToClusterPolicyBindingLister) ClusterPolicyBindings() client.Cl return i } -func (i *InformerToClusterPolicyBindingLister) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { +func (i *InformerToClusterPolicyBindingLister) List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { clusterPolicyBindingList := &authorizationapi.ClusterPolicyBindingList{} returnedList := i.GetIndexer().List() matcher := clusterpolicybindingregistry.Matcher(oapi.ListOptionsToSelectors(&options)) @@ -38,7 +39,7 @@ func (i *InformerToClusterPolicyBindingLister) List(options kapi.ListOptions) (* } func (i *InformerToClusterPolicyBindingLister) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { - keyObj := &authorizationapi.ClusterPolicyBinding{ObjectMeta: kapi.ObjectMeta{Name: name}} + keyObj := &authorizationapi.ClusterPolicyBinding{ObjectMeta: metav1.ObjectMeta{Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.GetIndexer().GetByKey(key) diff --git a/pkg/client/cache/clusterresourcequota.go b/pkg/client/cache/clusterresourcequota.go index 2de06d12f39e..c562415693e7 100644 --- a/pkg/client/cache/clusterresourcequota.go +++ b/pkg/client/cache/clusterresourcequota.go @@ -1,9 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" quotaapi "github.com/openshift/origin/pkg/quota/api" @@ -14,7 +15,7 @@ type IndexerToClusterResourceQuotaLister struct { cache.Indexer } -func (i *IndexerToClusterResourceQuotaLister) List(options kapi.ListOptions) ([]*quotaapi.ClusterResourceQuota, error) { +func (i *IndexerToClusterResourceQuotaLister) List(options metainternal.ListOptions) ([]*quotaapi.ClusterResourceQuota, error) { returnedList := i.Indexer.List() ret := make([]*quotaapi.ClusterResourceQuota, 0, len(returnedList)) matcher := clusterresourcequotaregistry.Matcher(oapi.ListOptionsToSelectors(&options)) @@ -29,7 +30,7 @@ func (i *IndexerToClusterResourceQuotaLister) List(options kapi.ListOptions) ([] } func (i *IndexerToClusterResourceQuotaLister) Get(name string) (*quotaapi.ClusterResourceQuota, error) { - keyObj := "aapi.ClusterResourceQuota{ObjectMeta: kapi.ObjectMeta{Name: name}} + keyObj := "aapi.ClusterResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.GetByKey(key) diff --git a/pkg/client/cache/deploymentconfig.go b/pkg/client/cache/deploymentconfig.go index bc42c60be781..f4e55691b29c 100644 --- a/pkg/client/cache/deploymentconfig.go +++ b/pkg/client/cache/deploymentconfig.go @@ -1,10 +1,11 @@ package cache import ( + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" @@ -98,7 +99,7 @@ func (s storeDeploymentConfigsNamespacer) Get(name string) (*deployapi.Deploymen func (s storeDeploymentConfigsNamespacer) List(selector labels.Selector) ([]*deployapi.DeploymentConfig, error) { configs := []*deployapi.DeploymentConfig{} - if s.namespace == kapi.NamespaceAll { + if s.namespace == metav1.NamespaceAll { for _, obj := range s.indexer.List() { dc := obj.(*deployapi.DeploymentConfig) if selector.Matches(labels.Set(dc.Labels)) { diff --git a/pkg/client/cache/eventqueue.go b/pkg/client/cache/eventqueue.go index 9554ef8e0900..9b530ca057ac 100644 --- a/pkg/client/cache/eventqueue.go +++ b/pkg/client/cache/eventqueue.go @@ -4,9 +4,9 @@ import ( "fmt" "sync" - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + kcache "k8s.io/client-go/tools/cache" ) // EventQueue is a Store implementation that provides a sequence of compressed events to a consumer diff --git a/pkg/client/cache/eventqueue_test.go b/pkg/client/cache/eventqueue_test.go index aed5a43bdd4b..a3e74829430a 100644 --- a/pkg/client/cache/eventqueue_test.go +++ b/pkg/client/cache/eventqueue_test.go @@ -3,7 +3,7 @@ package cache import ( "testing" - "k8s.io/kubernetes/pkg/watch" + "k8s.io/apimachinery/pkg/watch" ) type cacheable struct { diff --git a/pkg/client/cache/imagestream.go b/pkg/client/cache/imagestream.go index f8785792a3d3..3b3af4807cb6 100644 --- a/pkg/client/cache/imagestream.go +++ b/pkg/client/cache/imagestream.go @@ -3,10 +3,10 @@ package cache import ( "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" deployapi "github.com/openshift/origin/pkg/deploy/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -75,7 +75,7 @@ func (s storeImageStreamsNamespacer) Get(name string) (*imageapi.ImageStream, er func (s storeImageStreamsNamespacer) List(selector labels.Selector) ([]*imageapi.ImageStream, error) { streams := []*imageapi.ImageStream{} - if s.namespace == kapi.NamespaceAll { + if s.namespace == metav1.NamespaceAll { for _, obj := range s.indexer.List() { stream := obj.(*imageapi.ImageStream) if selector.Matches(labels.Set(stream.Labels)) { diff --git a/pkg/client/cache/policy.go b/pkg/client/cache/policy.go index a96c71bb30b6..550ef8dd1c75 100644 --- a/pkg/client/cache/policy.go +++ b/pkg/client/cache/policy.go @@ -1,9 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -29,11 +30,11 @@ type indexerToPolicyLister struct { namespace string } -func (i *indexerToPolicyLister) List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) { +func (i *indexerToPolicyLister) List(options metainternal.ListOptions) (*authorizationapi.PolicyList, error) { policyList := &authorizationapi.PolicyList{} matcher := policyregistry.Matcher(oapi.ListOptionsToSelectors(&options)) - if i.namespace == kapi.NamespaceAll { + if i.namespace == metav1.NamespaceAll { returnedList := i.Indexer.List() for i := range returnedList { policy := returnedList[i].(*authorizationapi.Policy) @@ -44,7 +45,7 @@ func (i *indexerToPolicyLister) List(options kapi.ListOptions) (*authorizationap return policyList, nil } - key := &authorizationapi.Policy{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace}} + key := &authorizationapi.Policy{ObjectMeta: metav1.ObjectMeta{Namespace: i.namespace}} items, err := i.Indexer.Index(cache.NamespaceIndex, key) if err != nil { return policyList, err @@ -60,7 +61,7 @@ func (i *indexerToPolicyLister) List(options kapi.ListOptions) (*authorizationap } func (i *indexerToPolicyLister) Get(name string) (*authorizationapi.Policy, error) { - keyObj := &authorizationapi.Policy{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace, Name: name}} + keyObj := &authorizationapi.Policy{ObjectMeta: metav1.ObjectMeta{Namespace: i.namespace, Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.Indexer.GetByKey(key) diff --git a/pkg/client/cache/policybinding.go b/pkg/client/cache/policybinding.go index d83dcae1f182..edda0f87009b 100644 --- a/pkg/client/cache/policybinding.go +++ b/pkg/client/cache/policybinding.go @@ -1,9 +1,10 @@ package cache import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -29,11 +30,11 @@ type indexerToPolicyBindingLister struct { namespace string } -func (i *indexerToPolicyBindingLister) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (i *indexerToPolicyBindingLister) List(options metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) { policyBindingList := &authorizationapi.PolicyBindingList{} matcher := policybindingregistry.Matcher(oapi.ListOptionsToSelectors(&options)) - if i.namespace == kapi.NamespaceAll { + if i.namespace == metav1.NamespaceAll { returnedList := i.Indexer.List() for i := range returnedList { policyBinding := returnedList[i].(*authorizationapi.PolicyBinding) @@ -44,7 +45,7 @@ func (i *indexerToPolicyBindingLister) List(options kapi.ListOptions) (*authoriz return policyBindingList, nil } - key := &authorizationapi.PolicyBinding{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace}} + key := &authorizationapi.PolicyBinding{ObjectMeta: metav1.ObjectMeta{Namespace: i.namespace}} items, err := i.Indexer.Index(cache.NamespaceIndex, key) if err != nil { return policyBindingList, err @@ -60,7 +61,7 @@ func (i *indexerToPolicyBindingLister) List(options kapi.ListOptions) (*authoriz } func (i *indexerToPolicyBindingLister) Get(name string) (*authorizationapi.PolicyBinding, error) { - keyObj := &authorizationapi.PolicyBinding{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace, Name: name}} + keyObj := &authorizationapi.PolicyBinding{ObjectMeta: metav1.ObjectMeta{Namespace: i.namespace, Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.Indexer.GetByKey(key) diff --git a/pkg/client/cache/securitycontextconstraints.go b/pkg/client/cache/securitycontextconstraints.go index 8feaef590f4e..c22c87300a13 100644 --- a/pkg/client/cache/securitycontextconstraints.go +++ b/pkg/client/cache/securitycontextconstraints.go @@ -1,9 +1,10 @@ package cache import ( + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" ) // IndexerToSecurityContextConstraintsLister gives a store List and Exists methods. The store must contain only SecurityContextConstraints. @@ -21,7 +22,7 @@ func (s *IndexerToSecurityContextConstraintsLister) List() ([]*kapi.SecurityCont } func (s *IndexerToSecurityContextConstraintsLister) Get(name string) (*kapi.SecurityContextConstraints, error) { - keyObj := &kapi.SecurityContextConstraints{ObjectMeta: kapi.ObjectMeta{Name: name}} + keyObj := &kapi.SecurityContextConstraints{ObjectMeta: metav1.ObjectMeta{Name: name}} key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := s.GetByKey(key) diff --git a/pkg/client/cache/serviceaccount.go b/pkg/client/cache/serviceaccount.go index c426d62dc08d..727fe3638d92 100644 --- a/pkg/client/cache/serviceaccount.go +++ b/pkg/client/cache/serviceaccount.go @@ -1,10 +1,11 @@ package cache import ( + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" ) // StoreToServiceAccountLister gives a store List and Exists methods. The store must contain only ServiceAccounts. @@ -40,7 +41,7 @@ func (s storeServiceAccountsNamespacer) Get(name string) (*kapi.ServiceAccount, func (s storeServiceAccountsNamespacer) List(selector labels.Selector) ([]*kapi.ServiceAccount, error) { serviceAccounts := []*kapi.ServiceAccount{} - if s.namespace == kapi.NamespaceAll { + if s.namespace == metav1.NamespaceAll { for _, obj := range s.indexer.List() { bc := obj.(*kapi.ServiceAccount) if selector.Matches(labels.Set(bc.Labels)) { diff --git a/pkg/client/cache/template.go b/pkg/client/cache/template.go index 5aa1c19eb015..85031f1f1271 100644 --- a/pkg/client/cache/template.go +++ b/pkg/client/cache/template.go @@ -1,8 +1,9 @@ package cache import ( + "k8s.io/client-go/tools/cache" + templateapi "github.com/openshift/origin/pkg/template/api" - "k8s.io/kubernetes/pkg/client/cache" ) type StoreToTemplateLister interface { diff --git a/pkg/client/client.go b/pkg/client/client.go index 8a699a896ac7..30558c0515d7 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -7,10 +7,10 @@ import ( "runtime" "strings" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/typed/discovery" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/version" diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index 25be4d95a7d8..979465e623c9 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -6,7 +6,8 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" ) func TestUserAgent(t *testing.T) { @@ -20,7 +21,7 @@ func TestUserAgent(t *testing.T) { c, _ := New(&restclient.Config{ Host: server.URL, }) - c.DeploymentConfigs("test").Get("other") + c.DeploymentConfigs("test").Get("other", metav1.GetOptions{}) header := <-ch if !strings.Contains(header, "openshift/") || !strings.Contains(header, "client.test/") { diff --git a/pkg/client/clusteresourcequota.go b/pkg/client/clusteresourcequota.go index e54c2a792040..e1000b7d2700 100644 --- a/pkg/client/clusteresourcequota.go +++ b/pkg/client/clusteresourcequota.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" quotaapi "github.com/openshift/origin/pkg/quota/api" ) @@ -12,12 +13,12 @@ type ClusterResourceQuotasInterface interface { } type ClusterResourceQuotaInterface interface { - List(opts kapi.ListOptions) (*quotaapi.ClusterResourceQuotaList, error) + List(opts metainternal.ListOptions) (*quotaapi.ClusterResourceQuotaList, error) Get(name string) (*quotaapi.ClusterResourceQuota, error) Create(resourceQuota *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) Update(resourceQuota *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) UpdateStatus(resourceQuota *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) } @@ -33,7 +34,7 @@ func newClusterResourceQuotas(c *Client) *clusterResourceQuotas { } } -func (c *clusterResourceQuotas) List(opts kapi.ListOptions) (result *quotaapi.ClusterResourceQuotaList, err error) { +func (c *clusterResourceQuotas) List(opts metainternal.ListOptions) (result *quotaapi.ClusterResourceQuotaList, err error) { result = "aapi.ClusterResourceQuotaList{} err = c.r.Get().Resource("clusterresourcequotas").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -62,7 +63,7 @@ func (c *clusterResourceQuotas) Delete(name string) (err error) { return } -func (c *clusterResourceQuotas) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *clusterResourceQuotas) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Resource("clusterresourcequotas").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/clusterpolicies.go b/pkg/client/clusterpolicies.go index fb13a1127331..185bf4c78f30 100644 --- a/pkg/client/clusterpolicies.go +++ b/pkg/client/clusterpolicies.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,17 +15,17 @@ type ClusterPoliciesInterface interface { // ClusterPolicyInterface exposes methods on ClusterPolicies resources type ClusterPolicyInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) + List(opts metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) Get(name string) (*authorizationapi.ClusterPolicy, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type ClusterPoliciesListerInterface interface { ClusterPolicies() ClusterPolicyLister } type ClusterPolicyLister interface { - List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) + List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) Get(name string) (*authorizationapi.ClusterPolicy, error) } type SyncedClusterPoliciesListerInterface interface { @@ -43,7 +44,7 @@ func newClusterPolicies(c *Client) *clusterPolicies { } // List returns a list of policies that match the label and field selectors. -func (c *clusterPolicies) List(opts kapi.ListOptions) (result *authorizationapi.ClusterPolicyList, err error) { +func (c *clusterPolicies) List(opts metainternal.ListOptions) (result *authorizationapi.ClusterPolicyList, err error) { result = &authorizationapi.ClusterPolicyList{} err = c.r.Get().Resource("clusterPolicies").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -63,6 +64,6 @@ func (c *clusterPolicies) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested clusterPolicies -func (c *clusterPolicies) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *clusterPolicies) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Resource("clusterPolicies").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/clusterpolicybindings.go b/pkg/client/clusterpolicybindings.go index 190937fe7082..8734c2124ec9 100644 --- a/pkg/client/clusterpolicybindings.go +++ b/pkg/client/clusterpolicybindings.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,18 +15,18 @@ type ClusterPolicyBindingsInterface interface { // ClusterPolicyBindingInterface exposes methods on ClusterPolicyBindings resources type ClusterPolicyBindingInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) + List(opts metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) Create(policyBinding *authorizationapi.ClusterPolicyBinding) (*authorizationapi.ClusterPolicyBinding, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type ClusterPolicyBindingsListerInterface interface { ClusterPolicyBindings() ClusterPolicyBindingLister } type ClusterPolicyBindingLister interface { - List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) + List(options metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) } type SyncedClusterPolicyBindingsListerInterface interface { @@ -45,7 +46,7 @@ func newClusterPolicyBindings(c *Client) *clusterPolicyBindings { } // List returns a list of clusterPolicyBindings that match the label and field selectors. -func (c *clusterPolicyBindings) List(opts kapi.ListOptions) (result *authorizationapi.ClusterPolicyBindingList, err error) { +func (c *clusterPolicyBindings) List(opts metainternal.ListOptions) (result *authorizationapi.ClusterPolicyBindingList, err error) { result = &authorizationapi.ClusterPolicyBindingList{} err = c.r.Get().Resource("clusterPolicyBindings").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -72,6 +73,6 @@ func (c *clusterPolicyBindings) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested clusterPolicyBindings -func (c *clusterPolicyBindings) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *clusterPolicyBindings) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Resource("clusterPolicyBindings").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/clusterrolebindings.go b/pkg/client/clusterrolebindings.go index a5cc7f83620b..35e7143e5041 100644 --- a/pkg/client/clusterrolebindings.go +++ b/pkg/client/clusterrolebindings.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -13,7 +14,7 @@ type ClusterRoleBindingsInterface interface { // ClusterRoleBindingInterface exposes methods on ClusterRoleBindings resources type ClusterRoleBindingInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.ClusterRoleBindingList, error) + List(opts metainternal.ListOptions) (*authorizationapi.ClusterRoleBindingList, error) Get(name string) (*authorizationapi.ClusterRoleBinding, error) Update(roleBinding *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) Create(roleBinding *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) @@ -32,7 +33,7 @@ func newClusterRoleBindings(c *Client) *clusterRoleBindings { } // List returns a list of clusterRoleBindings that match the label and field selectors. -func (c *clusterRoleBindings) List(opts kapi.ListOptions) (result *authorizationapi.ClusterRoleBindingList, err error) { +func (c *clusterRoleBindings) List(opts metainternal.ListOptions) (result *authorizationapi.ClusterRoleBindingList, err error) { result = &authorizationapi.ClusterRoleBindingList{} err = c.r.Get().Resource("clusterRoleBindings").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/clusterroles.go b/pkg/client/clusterroles.go index b814957f1d1e..ff63e861c6ae 100644 --- a/pkg/client/clusterroles.go +++ b/pkg/client/clusterroles.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -13,7 +14,7 @@ type ClusterRolesInterface interface { // ClusterRoleInterface exposes methods on ClusterRoles resources type ClusterRoleInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.ClusterRoleList, error) + List(opts metainternal.ListOptions) (*authorizationapi.ClusterRoleList, error) Get(name string) (*authorizationapi.ClusterRole, error) Create(role *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) Update(role *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) @@ -32,7 +33,7 @@ func newClusterRoles(c *Client) *clusterRoles { } // List returns a list of clusterRoles that match the label and field selectors. -func (c *clusterRoles) List(opts kapi.ListOptions) (result *authorizationapi.ClusterRoleList, err error) { +func (c *clusterRoles) List(opts metainternal.ListOptions) (result *authorizationapi.ClusterRoleList, err error) { result = &authorizationapi.ClusterRoleList{} err = c.r.Get().Resource("clusterRoles").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/deploymentconfigs.go b/pkg/client/deploymentconfigs.go index ae144596f45e..7177c066fc07 100644 --- a/pkg/client/deploymentconfigs.go +++ b/pkg/client/deploymentconfigs.go @@ -1,12 +1,13 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -18,18 +19,18 @@ type DeploymentConfigsNamespacer interface { // DeploymentConfigInterface contains methods for working with DeploymentConfigs type DeploymentConfigInterface interface { - List(opts kapi.ListOptions) (*deployapi.DeploymentConfigList, error) + List(opts metainternal.ListOptions) (*deployapi.DeploymentConfigList, error) Get(name string) (*deployapi.DeploymentConfig, error) Create(config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) Update(config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) - Patch(name string, pt kapi.PatchType, data []byte, subresources ...string) (result *deployapi.DeploymentConfig, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *deployapi.DeploymentConfig, err error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) Generate(name string) (*deployapi.DeploymentConfig, error) Rollback(config *deployapi.DeploymentConfigRollback) (*deployapi.DeploymentConfig, error) RollbackDeprecated(config *deployapi.DeploymentConfigRollback) (*deployapi.DeploymentConfig, error) - GetScale(name string) (*extensions.Scale, error) - UpdateScale(scale *extensions.Scale) (*extensions.Scale, error) + GetScale(name string) (*extensionsv1beta1.Scale, error) + UpdateScale(scale *extensionsv1beta1.Scale) (*extensionsv1beta1.Scale, error) UpdateStatus(config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) Instantiate(request *deployapi.DeploymentRequest) (*deployapi.DeploymentConfig, error) } @@ -49,7 +50,7 @@ func newDeploymentConfigs(c *Client, namespace string) *deploymentConfigs { } // List takes a label and field selectors, and returns the list of deploymentConfigs that match that selectors -func (c *deploymentConfigs) List(opts kapi.ListOptions) (result *deployapi.DeploymentConfigList, err error) { +func (c *deploymentConfigs) List(opts metainternal.ListOptions) (result *deployapi.DeploymentConfigList, err error) { result = &deployapi.DeploymentConfigList{} err = c.r.Get(). Namespace(c.ns). @@ -83,9 +84,9 @@ func (c *deploymentConfigs) Update(deploymentConfig *deployapi.DeploymentConfig) // Patch takes the partial representation of a deployment config and updates it. // Returns the server's representation of the deployment config, and an error, if there is any. -func (c *deploymentConfigs) Patch(name string, pt kapi.PatchType, data []byte, subresources ...string) (result *deployapi.DeploymentConfig, err error) { +func (c *deploymentConfigs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *deployapi.DeploymentConfig, err error) { result = &deployapi.DeploymentConfig{} - err = c.r.Patch(kapi.StrategicMergePatchType).Namespace(c.ns).Resource("deploymentConfigs").SubResource(subresources...).Name(name).Body(data).Do().Into(result) + err = c.r.Patch(types.StrategicMergePatchType).Namespace(c.ns).Resource("deploymentConfigs").SubResource(subresources...).Name(name).Body(data).Do().Into(result) return } @@ -95,7 +96,7 @@ func (c *deploymentConfigs) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested deploymentConfigs. -func (c *deploymentConfigs) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *deploymentConfigs) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). @@ -138,15 +139,15 @@ func (c *deploymentConfigs) RollbackDeprecated(config *deployapi.DeploymentConfi } // GetScale returns information about a particular deploymentConfig via its scale subresource -func (c *deploymentConfigs) GetScale(name string) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *deploymentConfigs) GetScale(name string) (result *extensionsv1beta1.Scale, err error) { + result = &extensionsv1beta1.Scale{} err = c.r.Get().Namespace(c.ns).Resource("deploymentConfigs").Name(name).SubResource("scale").Do().Into(result) return } // UpdateScale scales an existing deploymentConfig via its scale subresource -func (c *deploymentConfigs) UpdateScale(scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *deploymentConfigs) UpdateScale(scale *extensionsv1beta1.Scale) (result *extensionsv1beta1.Scale, err error) { + result = &extensionsv1beta1.Scale{} // TODO fix by making the client understand how to encode using different codecs for different resources encodedBytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(extensionsv1beta1.SchemeGroupVersion), scale) diff --git a/pkg/client/deploymentlogs.go b/pkg/client/deploymentlogs.go index 6b06d50eb54b..c5264746ee52 100644 --- a/pkg/client/deploymentlogs.go +++ b/pkg/client/deploymentlogs.go @@ -1,8 +1,8 @@ package client import ( + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" "github.com/openshift/origin/pkg/deploy/api" ) diff --git a/pkg/client/discovery.go b/pkg/client/discovery.go index e78c360a7ab3..06a446046f30 100644 --- a/pkg/client/discovery.go +++ b/pkg/client/discovery.go @@ -3,10 +3,10 @@ package client import ( "net/url" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/typed/discovery" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" ) // DiscoveryClient implements the functions that discovery server-supported API groups, @@ -16,7 +16,7 @@ type DiscoveryClient struct { } // ServerResourcesForGroupVersion returns the supported resources for a group and version. -func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *unversioned.APIResourceList, err error) { +func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *metav1.APIResourceList, err error) { parentList, err := d.DiscoveryClient.ServerResourcesForGroupVersion(groupVersion) if err != nil { return parentList, err @@ -30,7 +30,7 @@ func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (r url := url.URL{} url.Path = "/oapi/" + groupVersion - originResources := &unversioned.APIResourceList{} + originResources := &metav1.APIResourceList{} err = d.RESTClient().Get().AbsPath(url.String()).Do().Into(originResources) if err != nil { // ignore 403 or 404 error to be compatible with an v1.0 server. @@ -45,13 +45,13 @@ func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (r } // ServerResources returns the supported resources for all groups and versions. -func (d *DiscoveryClient) ServerResources() (map[string]*unversioned.APIResourceList, error) { +func (d *DiscoveryClient) ServerResources() (map[string]*metav1.APIResourceList, error) { apiGroups, err := d.ServerGroups() if err != nil { return nil, err } - groupVersions := unversioned.ExtractGroupVersions(apiGroups) - result := map[string]*unversioned.APIResourceList{} + groupVersions := metav1.ExtractGroupVersions(apiGroups) + result := map[string]*metav1.APIResourceList{} for _, groupVersion := range groupVersions { resources, err := d.ServerResourcesForGroupVersion(groupVersion) if err != nil { diff --git a/pkg/client/egressnetworkpolicy.go b/pkg/client/egressnetworkpolicy.go index 17a88be3428c..d38138a8f748 100644 --- a/pkg/client/egressnetworkpolicy.go +++ b/pkg/client/egressnetworkpolicy.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -14,12 +15,12 @@ type EgressNetworkPoliciesNamespacer interface { // EgressNetworkPolicyInterface exposes methods on egressNetworkPolicy resources. type EgressNetworkPolicyInterface interface { - List(opts kapi.ListOptions) (*sdnapi.EgressNetworkPolicyList, error) + List(opts metainternal.ListOptions) (*sdnapi.EgressNetworkPolicyList, error) Get(name string) (*sdnapi.EgressNetworkPolicy, error) Create(sub *sdnapi.EgressNetworkPolicy) (*sdnapi.EgressNetworkPolicy, error) Update(sub *sdnapi.EgressNetworkPolicy) (*sdnapi.EgressNetworkPolicy, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // egressNetworkPolicy implements EgressNetworkPolicyInterface interface @@ -37,7 +38,7 @@ func newEgressNetworkPolicy(c *Client, namespace string) *egressNetworkPolicy { } // List returns a list of EgressNetworkPolicy that match the label and field selectors. -func (c *egressNetworkPolicy) List(opts kapi.ListOptions) (result *sdnapi.EgressNetworkPolicyList, err error) { +func (c *egressNetworkPolicy) List(opts metainternal.ListOptions) (result *sdnapi.EgressNetworkPolicyList, err error) { result = &sdnapi.EgressNetworkPolicyList{} err = c.r.Get(). Namespace(c.ns). @@ -75,7 +76,7 @@ func (c *egressNetworkPolicy) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested EgressNetworkPolicies -func (c *egressNetworkPolicy) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *egressNetworkPolicy) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/groups.go b/pkg/client/groups.go index 32601f8808e9..33304ef288fb 100644 --- a/pkg/client/groups.go +++ b/pkg/client/groups.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -14,12 +15,12 @@ type GroupsInterface interface { // GroupInterface exposes methods on group resources. type GroupInterface interface { - List(opts kapi.ListOptions) (*userapi.GroupList, error) + List(opts metainternal.ListOptions) (*userapi.GroupList, error) Get(name string) (*userapi.Group, error) Create(group *userapi.Group) (*userapi.Group, error) Update(group *userapi.Group) (*userapi.Group, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // groups implements GroupInterface interface @@ -35,7 +36,7 @@ func newGroups(c *Client) *groups { } // List returns a list of groups that match the label and field selectors. -func (c *groups) List(opts kapi.ListOptions) (result *userapi.GroupList, err error) { +func (c *groups) List(opts metainternal.ListOptions) (result *userapi.GroupList, err error) { result = &userapi.GroupList{} err = c.r.Get(). Resource("groups"). @@ -72,7 +73,7 @@ func (c *groups) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested groups. -func (c *groups) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *groups) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Resource("groups"). diff --git a/pkg/client/hostsubnets.go b/pkg/client/hostsubnets.go index 6d95b2bf4469..1cb476b44b7d 100644 --- a/pkg/client/hostsubnets.go +++ b/pkg/client/hostsubnets.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -14,12 +15,12 @@ type HostSubnetsInterface interface { // HostSubnetInterface exposes methods on HostSubnet resources. type HostSubnetInterface interface { - List(opts kapi.ListOptions) (*sdnapi.HostSubnetList, error) + List(opts metainternal.ListOptions) (*sdnapi.HostSubnetList, error) Get(name string) (*sdnapi.HostSubnet, error) Create(sub *sdnapi.HostSubnet) (*sdnapi.HostSubnet, error) Update(sub *sdnapi.HostSubnet) (*sdnapi.HostSubnet, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // hostSubnet implements HostSubnetInterface interface @@ -35,7 +36,7 @@ func newHostSubnet(c *Client) *hostSubnet { } // List returns a list of hostsubnets that match the label and field selectors. -func (c *hostSubnet) List(opts kapi.ListOptions) (result *sdnapi.HostSubnetList, err error) { +func (c *hostSubnet) List(opts metainternal.ListOptions) (result *sdnapi.HostSubnetList, err error) { result = &sdnapi.HostSubnetList{} err = c.r.Get(). Resource("hostSubnets"). @@ -72,7 +73,7 @@ func (c *hostSubnet) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested subnets -func (c *hostSubnet) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *hostSubnet) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Resource("hostSubnets"). diff --git a/pkg/client/identities.go b/pkg/client/identities.go index 9c3ff235ef12..fc070afeacd1 100644 --- a/pkg/client/identities.go +++ b/pkg/client/identities.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" userapi "github.com/openshift/origin/pkg/user/api" @@ -13,7 +14,7 @@ type IdentitiesInterface interface { // IdentityInterface exposes methods on identity resources. type IdentityInterface interface { - List(opts kapi.ListOptions) (*userapi.IdentityList, error) + List(opts metainternal.ListOptions) (*userapi.IdentityList, error) Get(name string) (*userapi.Identity, error) Create(identity *userapi.Identity) (*userapi.Identity, error) Update(identity *userapi.Identity) (*userapi.Identity, error) @@ -33,7 +34,7 @@ func newIdentities(c *Client) *identities { } // List returns a list of identities that match the label and field selectors. -func (c *identities) List(opts kapi.ListOptions) (result *userapi.IdentityList, err error) { +func (c *identities) List(opts metainternal.ListOptions) (result *userapi.IdentityList, err error) { result = &userapi.IdentityList{} err = c.r.Get(). Resource("identities"). diff --git a/pkg/client/images.go b/pkg/client/images.go index 3ecd27ec198f..5ed923356ea7 100644 --- a/pkg/client/images.go +++ b/pkg/client/images.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -13,7 +14,7 @@ type ImagesInterfacer interface { // ImageInterface exposes methods on Image resources. type ImageInterface interface { - List(opts kapi.ListOptions) (*imageapi.ImageList, error) + List(opts metainternal.ListOptions) (*imageapi.ImageList, error) Get(name string) (*imageapi.Image, error) Create(image *imageapi.Image) (*imageapi.Image, error) Update(image *imageapi.Image) (*imageapi.Image, error) @@ -33,7 +34,7 @@ func newImages(c *Client) ImageInterface { } // List returns a list of images that match the label and field selectors. -func (c *images) List(opts kapi.ListOptions) (result *imageapi.ImageList, err error) { +func (c *images) List(opts metainternal.ListOptions) (result *imageapi.ImageList, err error) { result = &imageapi.ImageList{} err = c.r.Get(). Resource("images"). diff --git a/pkg/client/imagestreams.go b/pkg/client/imagestreams.go index 628e8ac0e8b9..f245c7e6b8dd 100644 --- a/pkg/client/imagestreams.go +++ b/pkg/client/imagestreams.go @@ -3,9 +3,10 @@ package client import ( "errors" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/watch" imageapi "github.com/openshift/origin/pkg/image/api" quotautil "github.com/openshift/origin/pkg/quota/util" @@ -20,12 +21,12 @@ type ImageStreamsNamespacer interface { // ImageStreamInterface exposes methods on ImageStream resources. type ImageStreamInterface interface { - List(opts kapi.ListOptions) (*imageapi.ImageStreamList, error) + List(opts metainternal.ListOptions) (*imageapi.ImageStreamList, error) Get(name string) (*imageapi.ImageStream, error) Create(stream *imageapi.ImageStream) (*imageapi.ImageStream, error) Update(stream *imageapi.ImageStream) (*imageapi.ImageStream, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) UpdateStatus(stream *imageapi.ImageStream) (*imageapi.ImageStream, error) Import(isi *imageapi.ImageStreamImport) (*imageapi.ImageStreamImport, error) } @@ -50,7 +51,7 @@ func newImageStreams(c *Client, namespace string) *imageStreams { } // List returns a list of image streams that match the label and field selectors. -func (c *imageStreams) List(opts kapi.ListOptions) (result *imageapi.ImageStreamList, err error) { +func (c *imageStreams) List(opts metainternal.ListOptions) (result *imageapi.ImageStreamList, err error) { result = &imageapi.ImageStreamList{} err = c.r.Get(). Namespace(c.ns). @@ -89,7 +90,7 @@ func (c *imageStreams) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested image streams. -func (c *imageStreams) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *imageStreams) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/imagestreams_test.go b/pkg/client/imagestreams_test.go index 7781f5237b21..c917359b9efa 100644 --- a/pkg/client/imagestreams_test.go +++ b/pkg/client/imagestreams_test.go @@ -6,12 +6,12 @@ import ( "net/http" "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" _ "k8s.io/kubernetes/pkg/api/install" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/image/api" _ "github.com/openshift/origin/pkg/image/api/install" @@ -25,7 +25,7 @@ func (fn roundTripFunc) RoundTrip(req *http.Request) (*http.Response, error) { func TestImageStreamImportUnsupported(t *testing.T) { testCases := []struct { - status unversioned.Status + status metav1.Status errFn func(err error) bool }{ { diff --git a/pkg/client/imagestreamsecrets.go b/pkg/client/imagestreamsecrets.go index dc831dd37856..b1afc9052a67 100644 --- a/pkg/client/imagestreamsecrets.go +++ b/pkg/client/imagestreamsecrets.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" ) @@ -12,7 +13,7 @@ type ImageStreamSecretsNamespacer interface { // ImageStreamSecretInterface exposes methods on ImageStreamSecret resources. type ImageStreamSecretInterface interface { // Secrets retrieves the secrets for a named image stream with the provided list options. - Secrets(name string, options kapi.ListOptions) (*kapi.SecretList, error) + Secrets(name string, options metainternal.ListOptions) (*kapi.SecretList, error) } // imageStreamSecrets implements ImageStreamSecretsNamespacer interface @@ -30,7 +31,7 @@ func newImageStreamSecrets(c *Client, namespace string) *imageStreamSecrets { } // GetSecrets returns a list of secrets for the named image stream -func (c *imageStreamSecrets) Secrets(name string, options kapi.ListOptions) (result *kapi.SecretList, err error) { +func (c *imageStreamSecrets) Secrets(name string, options metainternal.ListOptions) (result *kapi.SecretList, err error) { result = &kapi.SecretList{} err = c.r.Get(). Namespace(c.ns). diff --git a/pkg/client/listers/core/internalversion/build.go b/pkg/client/listers/core/internalversion/build.go index b4d61df1371e..028cf966bbe8 100644 --- a/pkg/client/listers/core/internalversion/build.go +++ b/pkg/client/listers/core/internalversion/build.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/build/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // BuildLister helps list Builds. diff --git a/pkg/client/listers/core/internalversion/clusternetwork.go b/pkg/client/listers/core/internalversion/clusternetwork.go index 8b15fd3899ce..e28af9e4a49d 100644 --- a/pkg/client/listers/core/internalversion/clusternetwork.go +++ b/pkg/client/listers/core/internalversion/clusternetwork.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/sdn/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // ClusterNetworkLister helps list ClusterNetworks. diff --git a/pkg/client/listers/core/internalversion/deploymentconfig.go b/pkg/client/listers/core/internalversion/deploymentconfig.go index c45372764176..cacc1d76985c 100644 --- a/pkg/client/listers/core/internalversion/deploymentconfig.go +++ b/pkg/client/listers/core/internalversion/deploymentconfig.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/deploy/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // DeploymentConfigLister helps list DeploymentConfigs. diff --git a/pkg/client/listers/core/internalversion/image.go b/pkg/client/listers/core/internalversion/image.go index 72893ab4a2cf..ed76028c098b 100644 --- a/pkg/client/listers/core/internalversion/image.go +++ b/pkg/client/listers/core/internalversion/image.go @@ -4,10 +4,10 @@ package internalversion import ( api "github.com/openshift/origin/pkg/image/api" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" pkg_api "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" ) // ImageLister helps list Images. diff --git a/pkg/client/listers/core/internalversion/oauthclient.go b/pkg/client/listers/core/internalversion/oauthclient.go index e366b241f3f6..e0ea00ce8b5c 100644 --- a/pkg/client/listers/core/internalversion/oauthclient.go +++ b/pkg/client/listers/core/internalversion/oauthclient.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/oauth/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // OAuthClientLister helps list OAuthClients. diff --git a/pkg/client/listers/core/internalversion/policy.go b/pkg/client/listers/core/internalversion/policy.go index 925571e7c7cf..7f90ab10fa0a 100644 --- a/pkg/client/listers/core/internalversion/policy.go +++ b/pkg/client/listers/core/internalversion/policy.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/authorization/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // PolicyLister helps list Policies. diff --git a/pkg/client/listers/core/internalversion/project.go b/pkg/client/listers/core/internalversion/project.go index 8dac0a107b11..404e409ca71a 100644 --- a/pkg/client/listers/core/internalversion/project.go +++ b/pkg/client/listers/core/internalversion/project.go @@ -4,10 +4,10 @@ package internalversion import ( api "github.com/openshift/origin/pkg/project/api" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" pkg_api "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" ) // ProjectLister helps list Projects. diff --git a/pkg/client/listers/core/internalversion/route.go b/pkg/client/listers/core/internalversion/route.go index 8d0f872c5280..4306807e0a48 100644 --- a/pkg/client/listers/core/internalversion/route.go +++ b/pkg/client/listers/core/internalversion/route.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/route/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // RouteLister helps list Routes. diff --git a/pkg/client/listers/core/internalversion/template.go b/pkg/client/listers/core/internalversion/template.go index b640923f7dc3..bebbf1e33623 100644 --- a/pkg/client/listers/core/internalversion/template.go +++ b/pkg/client/listers/core/internalversion/template.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/template/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // TemplateLister helps list Templates. diff --git a/pkg/client/listers/core/internalversion/user.go b/pkg/client/listers/core/internalversion/user.go index 7842cc8408b4..18e23219385e 100644 --- a/pkg/client/listers/core/internalversion/user.go +++ b/pkg/client/listers/core/internalversion/user.go @@ -4,9 +4,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/user/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // UserLister helps list Users. diff --git a/pkg/client/listers/core/v1/build.go b/pkg/client/listers/core/v1/build.go index 9e48cc0f5dba..a2c6fce93551 100644 --- a/pkg/client/listers/core/v1/build.go +++ b/pkg/client/listers/core/v1/build.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/build/api" v1 "github.com/openshift/origin/pkg/build/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // BuildLister helps list Builds. diff --git a/pkg/client/listers/core/v1/clusternetwork.go b/pkg/client/listers/core/v1/clusternetwork.go index 425653f06c7f..770c297efa1b 100644 --- a/pkg/client/listers/core/v1/clusternetwork.go +++ b/pkg/client/listers/core/v1/clusternetwork.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/sdn/api" v1 "github.com/openshift/origin/pkg/sdn/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // ClusterNetworkLister helps list ClusterNetworks. diff --git a/pkg/client/listers/core/v1/deploymentconfig.go b/pkg/client/listers/core/v1/deploymentconfig.go index 155932b8d7e3..256174882821 100644 --- a/pkg/client/listers/core/v1/deploymentconfig.go +++ b/pkg/client/listers/core/v1/deploymentconfig.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/deploy/api" v1 "github.com/openshift/origin/pkg/deploy/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // DeploymentConfigLister helps list DeploymentConfigs. diff --git a/pkg/client/listers/core/v1/image.go b/pkg/client/listers/core/v1/image.go index 2b0b216c0bb3..df64c41933ff 100644 --- a/pkg/client/listers/core/v1/image.go +++ b/pkg/client/listers/core/v1/image.go @@ -5,10 +5,10 @@ package v1 import ( api "github.com/openshift/origin/pkg/image/api" v1 "github.com/openshift/origin/pkg/image/api/v1" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" ) // ImageLister helps list Images. diff --git a/pkg/client/listers/core/v1/oauthclient.go b/pkg/client/listers/core/v1/oauthclient.go index 39aa4507c276..b082cda72896 100644 --- a/pkg/client/listers/core/v1/oauthclient.go +++ b/pkg/client/listers/core/v1/oauthclient.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/oauth/api" v1 "github.com/openshift/origin/pkg/oauth/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // OAuthClientLister helps list OAuthClients. diff --git a/pkg/client/listers/core/v1/policy.go b/pkg/client/listers/core/v1/policy.go index b4140ed3c1f3..d15dbb7cb785 100644 --- a/pkg/client/listers/core/v1/policy.go +++ b/pkg/client/listers/core/v1/policy.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/authorization/api" v1 "github.com/openshift/origin/pkg/authorization/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // PolicyLister helps list Policies. diff --git a/pkg/client/listers/core/v1/project.go b/pkg/client/listers/core/v1/project.go index f6dcee2b968e..30a71bb81faf 100644 --- a/pkg/client/listers/core/v1/project.go +++ b/pkg/client/listers/core/v1/project.go @@ -5,10 +5,10 @@ package v1 import ( api "github.com/openshift/origin/pkg/project/api" v1 "github.com/openshift/origin/pkg/project/api/v1" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" ) // ProjectLister helps list Projects. diff --git a/pkg/client/listers/core/v1/route.go b/pkg/client/listers/core/v1/route.go index 7251c07438e5..1f25a9edbdf6 100644 --- a/pkg/client/listers/core/v1/route.go +++ b/pkg/client/listers/core/v1/route.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/route/api" v1 "github.com/openshift/origin/pkg/route/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // RouteLister helps list Routes. diff --git a/pkg/client/listers/core/v1/template.go b/pkg/client/listers/core/v1/template.go index 3b2f84f8afc2..fdfff68651ca 100644 --- a/pkg/client/listers/core/v1/template.go +++ b/pkg/client/listers/core/v1/template.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/template/api" v1 "github.com/openshift/origin/pkg/template/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // TemplateLister helps list Templates. diff --git a/pkg/client/listers/core/v1/user.go b/pkg/client/listers/core/v1/user.go index 8e65c607fb17..37eb34dad81a 100644 --- a/pkg/client/listers/core/v1/user.go +++ b/pkg/client/listers/core/v1/user.go @@ -5,9 +5,9 @@ package v1 import ( api "github.com/openshift/origin/pkg/user/api" v1 "github.com/openshift/origin/pkg/user/api/v1" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" ) // UserLister helps list Users. diff --git a/pkg/client/localresourceaccessreview.go b/pkg/client/localresourceaccessreview.go index 4061fa882ad7..30bec4818885 100644 --- a/pkg/client/localresourceaccessreview.go +++ b/pkg/client/localresourceaccessreview.go @@ -1,7 +1,7 @@ package client import ( - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/client/localsubjectaccessreview.go b/pkg/client/localsubjectaccessreview.go index b3bca9a358b2..6bce3a0d037a 100644 --- a/pkg/client/localsubjectaccessreview.go +++ b/pkg/client/localsubjectaccessreview.go @@ -1,7 +1,7 @@ package client import ( - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/client/mapper.go b/pkg/client/mapper.go index 6b5e9d2b777e..7387b4634167 100644 --- a/pkg/client/mapper.go +++ b/pkg/client/mapper.go @@ -1,9 +1,9 @@ package client import ( - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/util/sets" + kapi "k8s.io/kubernetes/pkg/api" ) // DefaultMultiRESTMapper returns the multi REST mapper with all OpenShift and @@ -11,12 +11,12 @@ import ( func DefaultMultiRESTMapper() meta.MultiRESTMapper { var restMapper meta.MultiRESTMapper seenGroups := sets.String{} - for _, gv := range registered.EnabledVersions() { + for _, gv := range kapi.Registry.EnabledVersions() { if seenGroups.Has(gv.Group) { continue } seenGroups.Insert(gv.Group) - groupMeta, err := registered.Group(gv.Group) + groupMeta, err := kapi.Registry.Group(gv.Group) if err != nil { continue } diff --git a/pkg/client/netnamespaces.go b/pkg/client/netnamespaces.go index 7ce5e8adf945..148a023956fa 100644 --- a/pkg/client/netnamespaces.go +++ b/pkg/client/netnamespaces.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -14,12 +15,12 @@ type NetNamespacesInterface interface { // NetNamespaceInterface exposes methods on NetNamespace resources. type NetNamespaceInterface interface { - List(opts kapi.ListOptions) (*sdnapi.NetNamespaceList, error) + List(opts metainternal.ListOptions) (*sdnapi.NetNamespaceList, error) Get(name string) (*sdnapi.NetNamespace, error) Create(sub *sdnapi.NetNamespace) (*sdnapi.NetNamespace, error) Update(sub *sdnapi.NetNamespace) (*sdnapi.NetNamespace, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // netNamespace implements NetNamespaceInterface interface @@ -35,7 +36,7 @@ func newNetNamespace(c *Client) *netNamespace { } // List returns a list of NetNamespaces that match the label and field selectors. -func (c *netNamespace) List(opts kapi.ListOptions) (result *sdnapi.NetNamespaceList, err error) { +func (c *netNamespace) List(opts metainternal.ListOptions) (result *sdnapi.NetNamespaceList, err error) { result = &sdnapi.NetNamespaceList{} err = c.r.Get(). Resource("netNamespaces"). @@ -72,7 +73,7 @@ func (c *netNamespace) Delete(name string) error { } // Watch returns a watch.Interface that watches the requested NetNamespaces -func (c *netNamespace) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *netNamespace) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Resource("netNamespaces"). diff --git a/pkg/client/oauthaccesstoken.go b/pkg/client/oauthaccesstoken.go index 7a8076be270e..7bbe266b67df 100644 --- a/pkg/client/oauthaccesstoken.go +++ b/pkg/client/oauthaccesstoken.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" oauthapi "github.com/openshift/origin/pkg/oauth/api" @@ -15,7 +16,7 @@ type OAuthAccessTokensInterface interface { type OAuthAccessTokenInterface interface { Create(token *oauthapi.OAuthAccessToken) (*oauthapi.OAuthAccessToken, error) Get(name string) (*oauthapi.OAuthAccessToken, error) - List(opts kapi.ListOptions) (*oauthapi.OAuthAccessTokenList, error) + List(opts metainternal.ListOptions) (*oauthapi.OAuthAccessTokenList, error) Delete(name string) error } @@ -37,7 +38,7 @@ func (c *oauthAccessTokenInterface) Get(name string) (result *oauthapi.OAuthAcce } // List returns a list of tokens that match the label and field selectors. -func (c *oauthAccessTokenInterface) List(opts kapi.ListOptions) (result *oauthapi.OAuthAccessTokenList, err error) { +func (c *oauthAccessTokenInterface) List(opts metainternal.ListOptions) (result *oauthapi.OAuthAccessTokenList, err error) { result = &oauthapi.OAuthAccessTokenList{} err = c.r.Get().Resource("oauthaccesstokens").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/oauthclient.go b/pkg/client/oauthclient.go index e113cb8601a7..9407158afce9 100644 --- a/pkg/client/oauthclient.go +++ b/pkg/client/oauthclient.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,10 +14,10 @@ type OAuthClientsInterface interface { type OAuthClientInterface interface { Create(obj *oauthapi.OAuthClient) (*oauthapi.OAuthClient, error) - List(opts kapi.ListOptions) (*oauthapi.OAuthClientList, error) + List(opts metainternal.ListOptions) (*oauthapi.OAuthClientList, error) Get(name string) (*oauthapi.OAuthClient, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) Update(client *oauthapi.OAuthClient) (*oauthapi.OAuthClient, error) } @@ -36,7 +37,7 @@ func (c *oauthClients) Create(obj *oauthapi.OAuthClient) (result *oauthapi.OAuth return } -func (c *oauthClients) List(opts kapi.ListOptions) (result *oauthapi.OAuthClientList, err error) { +func (c *oauthClients) List(opts metainternal.ListOptions) (result *oauthapi.OAuthClientList, err error) { result = &oauthapi.OAuthClientList{} err = c.r.Get().Resource("oauthclients").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -53,7 +54,7 @@ func (c *oauthClients) Delete(name string) (err error) { return } -func (c *oauthClients) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *oauthClients) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Resource("oauthclients").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/oauthclientauthorization.go b/pkg/client/oauthclientauthorization.go index 452301a08071..34121a458b7a 100644 --- a/pkg/client/oauthclientauthorization.go +++ b/pkg/client/oauthclientauthorization.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,11 +14,11 @@ type OAuthClientAuthorizationsInterface interface { type OAuthClientAuthorizationInterface interface { Create(obj *oauthapi.OAuthClientAuthorization) (*oauthapi.OAuthClientAuthorization, error) - List(opts kapi.ListOptions) (*oauthapi.OAuthClientAuthorizationList, error) + List(opts metainternal.ListOptions) (*oauthapi.OAuthClientAuthorizationList, error) Get(name string) (*oauthapi.OAuthClientAuthorization, error) Update(obj *oauthapi.OAuthClientAuthorization) (*oauthapi.OAuthClientAuthorization, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type oauthClientAuthorizations struct { @@ -42,7 +43,7 @@ func (c *oauthClientAuthorizations) Update(obj *oauthapi.OAuthClientAuthorizatio return } -func (c *oauthClientAuthorizations) List(opts kapi.ListOptions) (result *oauthapi.OAuthClientAuthorizationList, err error) { +func (c *oauthClientAuthorizations) List(opts metainternal.ListOptions) (result *oauthapi.OAuthClientAuthorizationList, err error) { result = &oauthapi.OAuthClientAuthorizationList{} err = c.r.Get().Resource("oauthclientauthorizations").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -59,6 +60,6 @@ func (c *oauthClientAuthorizations) Delete(name string) (err error) { return } -func (c *oauthClientAuthorizations) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *oauthClientAuthorizations) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Resource("oauthclientauthorizations").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/policies.go b/pkg/client/policies.go index e670e210bc3d..c58677dbf55c 100644 --- a/pkg/client/policies.go +++ b/pkg/client/policies.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,10 +15,10 @@ type PoliciesNamespacer interface { // PolicyInterface exposes methods on Policy resources. type PolicyInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.PolicyList, error) + List(opts metainternal.ListOptions) (*authorizationapi.PolicyList, error) Get(name string) (*authorizationapi.Policy, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type PoliciesListerNamespacer interface { @@ -28,7 +29,7 @@ type SyncedPoliciesListerNamespacer interface { LastSyncResourceVersion() string } type PolicyLister interface { - List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) + List(options metainternal.ListOptions) (*authorizationapi.PolicyList, error) Get(name string) (*authorizationapi.Policy, error) } @@ -47,7 +48,7 @@ func newPolicies(c *Client, namespace string) *policies { } // List returns a list of policies that match the label and field selectors. -func (c *policies) List(opts kapi.ListOptions) (result *authorizationapi.PolicyList, err error) { +func (c *policies) List(opts metainternal.ListOptions) (result *authorizationapi.PolicyList, err error) { result = &authorizationapi.PolicyList{} err = c.r.Get().Namespace(c.ns).Resource("policies").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -67,6 +68,6 @@ func (c *policies) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested policies -func (c *policies) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *policies) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Namespace(c.ns).Resource("policies").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/policybindings.go b/pkg/client/policybindings.go index 3ce336e098d0..b9d7075aec1b 100644 --- a/pkg/client/policybindings.go +++ b/pkg/client/policybindings.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,11 +15,11 @@ type PolicyBindingsNamespacer interface { // PolicyBindingInterface exposes methods on PolicyBinding resources. type PolicyBindingInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) + List(opts metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) Get(name string) (*authorizationapi.PolicyBinding, error) Create(policyBinding *authorizationapi.PolicyBinding) (*authorizationapi.PolicyBinding, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type PolicyBindingsListerNamespacer interface { @@ -29,7 +30,7 @@ type SyncedPolicyBindingsListerNamespacer interface { LastSyncResourceVersion() string } type PolicyBindingLister interface { - List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) + List(options metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) Get(name string) (*authorizationapi.PolicyBinding, error) } @@ -48,7 +49,7 @@ func newPolicyBindings(c *Client, namespace string) *policyBindings { } // List returns a list of policyBindings that match the label and field selectors. -func (c *policyBindings) List(opts kapi.ListOptions) (result *authorizationapi.PolicyBindingList, err error) { +func (c *policyBindings) List(opts metainternal.ListOptions) (result *authorizationapi.PolicyBindingList, err error) { result = &authorizationapi.PolicyBindingList{} err = c.r.Get().Namespace(c.ns).Resource("policyBindings").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -75,6 +76,6 @@ func (c *policyBindings) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested policyBindings -func (c *policyBindings) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *policyBindings) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get().Prefix("watch").Namespace(c.ns).Resource("policyBindings").VersionedParams(&opts, kapi.ParameterCodec).Watch() } diff --git a/pkg/client/projectrequests.go b/pkg/client/projectrequests.go index ab92ee9b0e7c..1fef681ea2ac 100644 --- a/pkg/client/projectrequests.go +++ b/pkg/client/projectrequests.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" projectapi "github.com/openshift/origin/pkg/project/api" ) @@ -15,7 +16,7 @@ type ProjectRequestsInterface interface { // ProjectRequestInterface exposes methods on projectRequest resources. type ProjectRequestInterface interface { Create(p *projectapi.ProjectRequest) (*projectapi.Project, error) - List(opts kapi.ListOptions) (*unversioned.Status, error) + List(opts metainternal.ListOptions) (*metav1.Status, error) } type projectRequests struct { @@ -37,8 +38,8 @@ func (c *projectRequests) Create(p *projectapi.ProjectRequest) (result *projecta } // List returns a status object indicating that a user can call the Create or an error indicating why not -func (c *projectRequests) List(opts kapi.ListOptions) (result *unversioned.Status, err error) { - result = &unversioned.Status{} +func (c *projectRequests) List(opts metainternal.ListOptions) (result *metav1.Status, err error) { + result = &metav1.Status{} err = c.r.Get().Resource("projectRequests").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return result, err } diff --git a/pkg/client/projects.go b/pkg/client/projects.go index 534579d6af7e..074ce7f5987e 100644 --- a/pkg/client/projects.go +++ b/pkg/client/projects.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" projectapi "github.com/openshift/origin/pkg/project/api" ) @@ -18,8 +19,8 @@ type ProjectInterface interface { Update(p *projectapi.Project) (*projectapi.Project, error) Delete(name string) error Get(name string) (*projectapi.Project, error) - List(opts kapi.ListOptions) (*projectapi.ProjectList, error) - Watch(opts kapi.ListOptions) (watch.Interface, error) + List(opts metainternal.ListOptions) (*projectapi.ProjectList, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type projects struct { @@ -41,7 +42,7 @@ func (c *projects) Get(name string) (result *projectapi.Project, err error) { } // List returns all projects matching the label selector -func (c *projects) List(opts kapi.ListOptions) (result *projectapi.ProjectList, err error) { +func (c *projects) List(opts metainternal.ListOptions) (result *projectapi.ProjectList, err error) { result = &projectapi.ProjectList{} err = c.r.Get(). Resource("projects"). @@ -72,7 +73,7 @@ func (c *projects) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested namespaces. -func (c *projects) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *projects) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Resource("projects"). diff --git a/pkg/client/resourceaccessreview.go b/pkg/client/resourceaccessreview.go index cd9e7b9b6d0c..e479530e3cc8 100644 --- a/pkg/client/resourceaccessreview.go +++ b/pkg/client/resourceaccessreview.go @@ -1,7 +1,7 @@ package client import ( - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/client/role_bindings.go b/pkg/client/role_bindings.go index 33c7e776d5e6..fb81764aa5d4 100644 --- a/pkg/client/role_bindings.go +++ b/pkg/client/role_bindings.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -13,7 +14,7 @@ type RoleBindingsNamespacer interface { // RoleBindingInterface exposes methods on RoleBinding resources. type RoleBindingInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.RoleBindingList, error) + List(opts metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) Get(name string) (*authorizationapi.RoleBinding, error) Create(roleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) Update(roleBinding *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) @@ -35,7 +36,7 @@ func newRoleBindings(c *Client, namespace string) *roleBindings { } // List returns a list of roleBindings that match the label and field selectors. -func (c *roleBindings) List(opts kapi.ListOptions) (result *authorizationapi.RoleBindingList, err error) { +func (c *roleBindings) List(opts metainternal.ListOptions) (result *authorizationapi.RoleBindingList, err error) { result = &authorizationapi.RoleBindingList{} err = c.r.Get().Namespace(c.ns).Resource("roleBindings").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/rolebindingrestriction.go b/pkg/client/rolebindingrestriction.go index d6fea177cc85..3597a4223217 100644 --- a/pkg/client/rolebindingrestriction.go +++ b/pkg/client/rolebindingrestriction.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,12 +13,12 @@ type RoleBindingRestrictionsNamespacer interface { } type RoleBindingRestrictionInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.RoleBindingRestrictionList, error) + List(opts metainternal.ListOptions) (*authorizationapi.RoleBindingRestrictionList, error) Get(name string) (*authorizationapi.RoleBindingRestriction, error) Create(roleBindingRestriction *authorizationapi.RoleBindingRestriction) (*authorizationapi.RoleBindingRestriction, error) Update(roleBindingRestriction *authorizationapi.RoleBindingRestriction) (*authorizationapi.RoleBindingRestriction, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } type roleBindingRestrictions struct { @@ -33,7 +34,7 @@ func newRoleBindingRestrictions(c *Client, namespace string) *roleBindingRestric } } -func (c *roleBindingRestrictions) List(opts kapi.ListOptions) (result *authorizationapi.RoleBindingRestrictionList, err error) { +func (c *roleBindingRestrictions) List(opts metainternal.ListOptions) (result *authorizationapi.RoleBindingRestrictionList, err error) { result = &authorizationapi.RoleBindingRestrictionList{} err = c.r.Get(). Namespace(c.ns). @@ -88,7 +89,7 @@ func (c *roleBindingRestrictions) Delete(name string) (err error) { return } -func (c *roleBindingRestrictions) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *roleBindingRestrictions) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/roles.go b/pkg/client/roles.go index 938d3d1755a0..bc94fdcf1216 100644 --- a/pkg/client/roles.go +++ b/pkg/client/roles.go @@ -1,6 +1,7 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -13,7 +14,7 @@ type RolesNamespacer interface { // RoleInterface exposes methods on Role resources. type RoleInterface interface { - List(opts kapi.ListOptions) (*authorizationapi.RoleList, error) + List(opts metainternal.ListOptions) (*authorizationapi.RoleList, error) Get(name string) (*authorizationapi.Role, error) Create(role *authorizationapi.Role) (*authorizationapi.Role, error) Update(role *authorizationapi.Role) (*authorizationapi.Role, error) @@ -35,7 +36,7 @@ func newRoles(c *Client, namespace string) *roles { } // List returns a list of roles that match the label and field selectors. -func (c *roles) List(opts kapi.ListOptions) (result *authorizationapi.RoleList, err error) { +func (c *roles) List(opts metainternal.ListOptions) (result *authorizationapi.RoleList, err error) { result = &authorizationapi.RoleList{} err = c.r.Get().Namespace(c.ns).Resource("roles").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return diff --git a/pkg/client/routes.go b/pkg/client/routes.go index c48cc5744c20..9e5da6a25ec3 100644 --- a/pkg/client/routes.go +++ b/pkg/client/routes.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" ) @@ -14,13 +15,13 @@ type RoutesNamespacer interface { // RouteInterface exposes methods on Route resources type RouteInterface interface { - List(opts kapi.ListOptions) (*routeapi.RouteList, error) + List(opts metainternal.ListOptions) (*routeapi.RouteList, error) Get(name string) (*routeapi.Route, error) Create(route *routeapi.Route) (*routeapi.Route, error) Update(route *routeapi.Route) (*routeapi.Route, error) UpdateStatus(route *routeapi.Route) (*routeapi.Route, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // routes implements RouteInterface interface @@ -38,7 +39,7 @@ func newRoutes(c *Client, namespace string) *routes { } // List takes a label and field selector, and returns the list of routes that match that selectors -func (c *routes) List(opts kapi.ListOptions) (result *routeapi.RouteList, err error) { +func (c *routes) List(opts metainternal.ListOptions) (result *routeapi.RouteList, err error) { result = &routeapi.RouteList{} err = c.r.Get(). Namespace(c.ns). @@ -83,7 +84,7 @@ func (c *routes) UpdateStatus(route *routeapi.Route) (result *routeapi.Route, er } // Watch returns a watch.Interface that watches the requested routes. -func (c *routes) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *routes) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/scale.go b/pkg/client/scale.go index 92403123b677..17b6f88f5ac1 100644 --- a/pkg/client/scale.go +++ b/pkg/client/scale.go @@ -3,9 +3,9 @@ package client import ( "fmt" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/apis/extensions" - kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion" + "k8s.io/apimachinery/pkg/api/errors" + extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" "github.com/openshift/origin/pkg/api/latest" ) diff --git a/pkg/client/subjectaccessreview.go b/pkg/client/subjectaccessreview.go index 0f5ba2f5f0a7..320d2b3319bf 100644 --- a/pkg/client/subjectaccessreview.go +++ b/pkg/client/subjectaccessreview.go @@ -4,8 +4,8 @@ import ( "errors" "fmt" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + restclient "k8s.io/client-go/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) diff --git a/pkg/client/templates.go b/pkg/client/templates.go index b91dbcfcfc31..34311220801f 100644 --- a/pkg/client/templates.go +++ b/pkg/client/templates.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" templateapi "github.com/openshift/origin/pkg/template/api" ) @@ -14,12 +15,12 @@ type TemplatesNamespacer interface { // TemplateInterface exposes methods on Template resources. type TemplateInterface interface { - List(opts kapi.ListOptions) (*templateapi.TemplateList, error) + List(opts metainternal.ListOptions) (*templateapi.TemplateList, error) Get(name string) (*templateapi.Template, error) Create(template *templateapi.Template) (*templateapi.Template, error) Update(template *templateapi.Template) (*templateapi.Template, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // templates implements TemplatesNamespacer interface @@ -37,7 +38,7 @@ func newTemplates(c *Client, namespace string) *templates { } // List returns a list of templates that match the label and field selectors. -func (c *templates) List(opts kapi.ListOptions) (result *templateapi.TemplateList, err error) { +func (c *templates) List(opts metainternal.ListOptions) (result *templateapi.TemplateList, err error) { result = &templateapi.TemplateList{} err = c.r.Get(). Namespace(c.ns). @@ -76,7 +77,7 @@ func (c *templates) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested templates -func (c *templates) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *templates) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Namespace(c.ns). diff --git a/pkg/client/testclient/fake.go b/pkg/client/testclient/fake.go index 5085bda9c4c0..ff2a2ee4521a 100644 --- a/pkg/client/testclient/fake.go +++ b/pkg/client/testclient/fake.go @@ -4,11 +4,10 @@ import ( "fmt" "sync" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" _ "github.com/openshift/origin/pkg/api/install" "github.com/openshift/origin/pkg/client" @@ -18,17 +17,17 @@ import ( // implementation. This makes faking out just the method you want to test easier. type Fake struct { sync.RWMutex - actions []core.Action // these may be castable to other types, but "Action" is the minimum + actions []clientgotesting.Action // these may be castable to other types, but "Action" is the minimum // ReactionChain is the list of reactors that will be attempted for every request in the order they are tried - ReactionChain []core.Reactor + ReactionChain []clientgotesting.Reactor // WatchReactionChain is the list of watch reactors that will be attempted for every request in the order they are tried - WatchReactionChain []core.WatchReactor + WatchReactionChain []clientgotesting.WatchReactor } // NewSimpleFake returns a client that will respond with the provided objects func NewSimpleFake(objects ...runtime.Object) *Fake { - o := core.NewObjectTracker(kapi.Scheme, kapi.Codecs.UniversalDecoder()) + o := clientgotesting.NewObjectTracker(kapi.Registry, kapi.Scheme, kapi.Codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -36,36 +35,36 @@ func NewSimpleFake(objects ...runtime.Object) *Fake { } fakeClient := &Fake{} - fakeClient.AddReactor("*", "*", core.ObjectReaction(o, registered.RESTMapper())) + fakeClient.AddReactor("*", "*", clientgotesting.ObjectReaction(o, kapi.Registry.RESTMapper())) - fakeClient.AddWatchReactor("*", core.DefaultWatchReactor(watch.NewFake(), nil)) + fakeClient.AddWatchReactor("*", clientgotesting.DefaultWatchReactor(watch.NewFake(), nil)) return fakeClient } // AddReactor appends a reactor to the end of the chain -func (c *Fake) AddReactor(verb, resource string, reaction core.ReactionFunc) { - c.ReactionChain = append(c.ReactionChain, &core.SimpleReactor{Verb: verb, Resource: resource, Reaction: reaction}) +func (c *Fake) AddReactor(verb, resource string, reaction clientgotesting.ReactionFunc) { + c.ReactionChain = append(c.ReactionChain, &clientgotesting.SimpleReactor{Verb: verb, Resource: resource, Reaction: reaction}) } // PrependReactor adds a reactor to the beginning of the chain -func (c *Fake) PrependReactor(verb, resource string, reaction core.ReactionFunc) { - c.ReactionChain = append([]core.Reactor{&core.SimpleReactor{Verb: verb, Resource: resource, Reaction: reaction}}, c.ReactionChain...) +func (c *Fake) PrependReactor(verb, resource string, reaction clientgotesting.ReactionFunc) { + c.ReactionChain = append([]clientgotesting.Reactor{&clientgotesting.SimpleReactor{Verb: verb, Resource: resource, Reaction: reaction}}, c.ReactionChain...) } // AddWatchReactor appends a reactor to the end of the chain -func (c *Fake) AddWatchReactor(resource string, reaction core.WatchReactionFunc) { - c.WatchReactionChain = append(c.WatchReactionChain, &core.SimpleWatchReactor{Resource: resource, Reaction: reaction}) +func (c *Fake) AddWatchReactor(resource string, reaction clientgotesting.WatchReactionFunc) { + c.WatchReactionChain = append(c.WatchReactionChain, &clientgotesting.SimpleWatchReactor{Resource: resource, Reaction: reaction}) } // PrependWatchReactor adds a reactor to the beginning of the chain. -func (c *Fake) PrependWatchReactor(resource string, reaction core.WatchReactionFunc) { - c.WatchReactionChain = append([]core.WatchReactor{&core.SimpleWatchReactor{Resource: resource, Reaction: reaction}}, c.WatchReactionChain...) +func (c *Fake) PrependWatchReactor(resource string, reaction clientgotesting.WatchReactionFunc) { + c.WatchReactionChain = append([]clientgotesting.WatchReactor{&clientgotesting.SimpleWatchReactor{Resource: resource, Reaction: reaction}}, c.WatchReactionChain...) } // Invokes records the provided Action and then invokes the ReactFn (if provided). // defaultReturnObj is expected to be of the same type a normal call would return. -func (c *Fake) Invokes(action core.Action, defaultReturnObj runtime.Object) (runtime.Object, error) { +func (c *Fake) Invokes(action clientgotesting.Action, defaultReturnObj runtime.Object) (runtime.Object, error) { c.Lock() defer c.Unlock() @@ -87,7 +86,7 @@ func (c *Fake) Invokes(action core.Action, defaultReturnObj runtime.Object) (run } // InvokesWatch records the provided Action and then invokes the ReactFn (if provided). -func (c *Fake) InvokesWatch(action core.Action) (watch.Interface, error) { +func (c *Fake) InvokesWatch(action clientgotesting.Action) (watch.Interface, error) { c.Lock() defer c.Unlock() @@ -113,15 +112,15 @@ func (c *Fake) ClearActions() { c.Lock() c.Unlock() - c.actions = make([]core.Action, 0) + c.actions = make([]clientgotesting.Action, 0) } // Actions returns a chronologically ordered slice fake actions called on the fake client -func (c *Fake) Actions() []core.Action { +func (c *Fake) Actions() []clientgotesting.Action { c.RLock() defer c.RUnlock() - fa := make([]core.Action, len(c.actions)) + fa := make([]clientgotesting.Action, len(c.actions)) copy(fa, c.actions) return fa } diff --git a/pkg/client/testclient/fake_appliedclusterresourcequota.go b/pkg/client/testclient/fake_appliedclusterresourcequota.go index 8b90a2919ec3..4f6f9ba111c1 100644 --- a/pkg/client/testclient/fake_appliedclusterresourcequota.go +++ b/pkg/client/testclient/fake_appliedclusterresourcequota.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" quotaapi "github.com/openshift/origin/pkg/quota/api" ) @@ -13,10 +13,10 @@ type FakeAppliedClusterResourceQuotas struct { Namespace string } -var appliedClusterResourceQuotasResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "appliedclusterresourcequotas"} +var appliedClusterResourceQuotasResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "appliedclusterresourcequotas"} func (c *FakeAppliedClusterResourceQuotas) Get(name string) (*quotaapi.AppliedClusterResourceQuota, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(appliedClusterResourceQuotasResource, c.Namespace, name), "aapi.AppliedClusterResourceQuota{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(appliedClusterResourceQuotasResource, c.Namespace, name), "aapi.AppliedClusterResourceQuota{}) if obj == nil { return nil, err } @@ -24,8 +24,8 @@ func (c *FakeAppliedClusterResourceQuotas) Get(name string) (*quotaapi.AppliedCl return obj.(*quotaapi.AppliedClusterResourceQuota), err } -func (c *FakeAppliedClusterResourceQuotas) List(opts kapi.ListOptions) (*quotaapi.AppliedClusterResourceQuotaList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(appliedClusterResourceQuotasResource, c.Namespace, opts), "aapi.AppliedClusterResourceQuotaList{}) +func (c *FakeAppliedClusterResourceQuotas) List(opts metainternal.ListOptions) (*quotaapi.AppliedClusterResourceQuotaList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(appliedClusterResourceQuotasResource, c.Namespace, opts), "aapi.AppliedClusterResourceQuotaList{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_buildconfigs.go b/pkg/client/testclient/fake_buildconfigs.go index 7fb4692e69c5..7d08fa4aada3 100644 --- a/pkg/client/testclient/fake_buildconfigs.go +++ b/pkg/client/testclient/fake_buildconfigs.go @@ -5,10 +5,10 @@ import ( "io" "net/url" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -21,10 +21,10 @@ type FakeBuildConfigs struct { Namespace string } -var buildConfigsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "buildconfigs"} +var buildConfigsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "buildconfigs"} func (c *FakeBuildConfigs) Get(name string) (*buildapi.BuildConfig, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(buildConfigsResource, c.Namespace, name), &buildapi.BuildConfig{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(buildConfigsResource, c.Namespace, name), &buildapi.BuildConfig{}) if obj == nil { return nil, err } @@ -32,8 +32,8 @@ func (c *FakeBuildConfigs) Get(name string) (*buildapi.BuildConfig, error) { return obj.(*buildapi.BuildConfig), err } -func (c *FakeBuildConfigs) List(opts kapi.ListOptions) (*buildapi.BuildConfigList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(buildConfigsResource, c.Namespace, opts), &buildapi.BuildConfigList{}) +func (c *FakeBuildConfigs) List(opts metainternal.ListOptions) (*buildapi.BuildConfigList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(buildConfigsResource, c.Namespace, opts), &buildapi.BuildConfigList{}) if obj == nil { return nil, err } @@ -42,7 +42,7 @@ func (c *FakeBuildConfigs) List(opts kapi.ListOptions) (*buildapi.BuildConfigLis } func (c *FakeBuildConfigs) Create(inObj *buildapi.BuildConfig) (*buildapi.BuildConfig, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(buildConfigsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(buildConfigsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -51,7 +51,7 @@ func (c *FakeBuildConfigs) Create(inObj *buildapi.BuildConfig) (*buildapi.BuildC } func (c *FakeBuildConfigs) Update(inObj *buildapi.BuildConfig) (*buildapi.BuildConfig, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(buildConfigsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(buildConfigsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -60,12 +60,12 @@ func (c *FakeBuildConfigs) Update(inObj *buildapi.BuildConfig) (*buildapi.BuildC } func (c *FakeBuildConfigs) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(buildConfigsResource, c.Namespace, name), &buildapi.BuildConfig{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(buildConfigsResource, c.Namespace, name), &buildapi.BuildConfig{}) return err } -func (c *FakeBuildConfigs) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(buildConfigsResource, c.Namespace, opts)) +func (c *FakeBuildConfigs) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(buildConfigsResource, c.Namespace, opts)) } func (c *FakeBuildConfigs) WebHookURL(name string, trigger *buildapi.BuildTriggerPolicy) (*url.URL, error) { @@ -84,7 +84,7 @@ func (c *FakeBuildConfigs) WebHookURL(name string, trigger *buildapi.BuildTrigge } func (c *FakeBuildConfigs) Instantiate(request *buildapi.BuildRequest) (result *buildapi.Build, err error) { - action := core.NewCreateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds"), c.Namespace, request) + action := clientgotesting.NewCreateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds"), c.Namespace, request) action.Subresource = "instantiate" obj, err := c.Fake.Invokes(action, &buildapi.Build{}) if obj == nil { @@ -95,7 +95,7 @@ func (c *FakeBuildConfigs) Instantiate(request *buildapi.BuildRequest) (result * } func (c *FakeBuildConfigs) InstantiateBinary(request *buildapi.BinaryBuildRequestOptions, r io.Reader) (result *buildapi.Build, err error) { - action := core.NewCreateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds"), c.Namespace, request) + action := clientgotesting.NewCreateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds"), c.Namespace, request) action.Subresource = "instantiatebinary" obj, err := c.Fake.Invokes(action, &buildapi.Build{}) if obj == nil { diff --git a/pkg/client/testclient/fake_buildlogs.go b/pkg/client/testclient/fake_buildlogs.go index a33b5ff8300d..64c9fe69163a 100644 --- a/pkg/client/testclient/fake_buildlogs.go +++ b/pkg/client/testclient/fake_buildlogs.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/testing/core" + restclient "k8s.io/client-go/rest" + clientgotesting "k8s.io/client-go/testing" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -15,7 +15,7 @@ type FakeBuildLogs struct { } func (c *FakeBuildLogs) Get(name string, opt buildapi.BuildLogOptions) *restclient.Request { - action := core.GenericActionImpl{} + action := clientgotesting.GenericActionImpl{} action.Verb = "get" action.Namespace = c.Namespace action.Resource = buildsResource diff --git a/pkg/client/testclient/fake_builds.go b/pkg/client/testclient/fake_builds.go index b8fe81aa9676..927faaf92ebe 100644 --- a/pkg/client/testclient/fake_builds.go +++ b/pkg/client/testclient/fake_builds.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" buildapi "github.com/openshift/origin/pkg/build/api" ) @@ -16,10 +16,10 @@ type FakeBuilds struct { Namespace string } -var buildsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "builds"} +var buildsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "builds"} func (c *FakeBuilds) Get(name string) (*buildapi.Build, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(buildsResource, c.Namespace, name), &buildapi.Build{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(buildsResource, c.Namespace, name), &buildapi.Build{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakeBuilds) Get(name string) (*buildapi.Build, error) { return obj.(*buildapi.Build), err } -func (c *FakeBuilds) List(opts kapi.ListOptions) (*buildapi.BuildList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(buildsResource, c.Namespace, opts), &buildapi.BuildList{}) +func (c *FakeBuilds) List(opts metainternal.ListOptions) (*buildapi.BuildList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(buildsResource, c.Namespace, opts), &buildapi.BuildList{}) if obj == nil { return nil, err } @@ -37,7 +37,7 @@ func (c *FakeBuilds) List(opts kapi.ListOptions) (*buildapi.BuildList, error) { } func (c *FakeBuilds) Create(inObj *buildapi.Build) (*buildapi.Build, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(buildsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(buildsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -46,7 +46,7 @@ func (c *FakeBuilds) Create(inObj *buildapi.Build) (*buildapi.Build, error) { } func (c *FakeBuilds) Update(inObj *buildapi.Build) (*buildapi.Build, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(buildsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(buildsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -55,16 +55,16 @@ func (c *FakeBuilds) Update(inObj *buildapi.Build) (*buildapi.Build, error) { } func (c *FakeBuilds) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(buildsResource, c.Namespace, name), &buildapi.Build{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(buildsResource, c.Namespace, name), &buildapi.Build{}) return err } -func (c *FakeBuilds) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(buildsResource, c.Namespace, opts)) +func (c *FakeBuilds) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(buildsResource, c.Namespace, opts)) } func (c *FakeBuilds) Clone(request *buildapi.BuildRequest) (result *buildapi.Build, err error) { - action := core.NewCreateAction(buildsResource, c.Namespace, request) + action := clientgotesting.NewCreateAction(buildsResource, c.Namespace, request) action.Subresource = "clone" obj, err := c.Fake.Invokes(action, &buildapi.Build{}) if obj == nil { @@ -75,7 +75,7 @@ func (c *FakeBuilds) Clone(request *buildapi.BuildRequest) (result *buildapi.Bui } func (c *FakeBuilds) UpdateDetails(inObj *buildapi.Build) (*buildapi.Build, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds/details"), c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(buildapi.LegacySchemeGroupVersion.WithResource("builds/details"), c.Namespace, inObj), inObj) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_clusternetwork.go b/pkg/client/testclient/fake_clusternetwork.go index 7fa781cefe02..3d6b78972da3 100644 --- a/pkg/client/testclient/fake_clusternetwork.go +++ b/pkg/client/testclient/fake_clusternetwork.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -13,10 +13,10 @@ type FakeClusterNetwork struct { Fake *Fake } -var clusterNetworksResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusternetworks"} +var clusterNetworksResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusternetworks"} func (c *FakeClusterNetwork) Get(name string) (*sdnapi.ClusterNetwork, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusterNetworksResource, name), &sdnapi.ClusterNetwork{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusterNetworksResource, name), &sdnapi.ClusterNetwork{}) if obj == nil { return nil, err } @@ -25,7 +25,7 @@ func (c *FakeClusterNetwork) Get(name string) (*sdnapi.ClusterNetwork, error) { } func (c *FakeClusterNetwork) Create(inObj *sdnapi.ClusterNetwork) (*sdnapi.ClusterNetwork, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(clusterNetworksResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(clusterNetworksResource, inObj), inObj) if obj == nil { return nil, err } @@ -34,7 +34,7 @@ func (c *FakeClusterNetwork) Create(inObj *sdnapi.ClusterNetwork) (*sdnapi.Clust } func (c *FakeClusterNetwork) Update(inObj *sdnapi.ClusterNetwork) (*sdnapi.ClusterNetwork, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(clusterNetworksResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(clusterNetworksResource, inObj), inObj) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_clusterpolicies.go b/pkg/client/testclient/fake_clusterpolicies.go index dc616206d224..7e6adbcd3324 100644 --- a/pkg/client/testclient/fake_clusterpolicies.go +++ b/pkg/client/testclient/fake_clusterpolicies.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -15,10 +15,10 @@ type FakeClusterPolicies struct { Fake *Fake } -var clusterPoliciesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterpolicies"} +var clusterPoliciesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterpolicies"} func (c *FakeClusterPolicies) Get(name string) (*authorizationapi.ClusterPolicy, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusterPoliciesResource, name), &authorizationapi.ClusterPolicy{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusterPoliciesResource, name), &authorizationapi.ClusterPolicy{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeClusterPolicies) Get(name string) (*authorizationapi.ClusterPolicy, return obj.(*authorizationapi.ClusterPolicy), err } -func (c *FakeClusterPolicies) List(opts kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(clusterPoliciesResource, opts), &authorizationapi.ClusterPolicyList{}) +func (c *FakeClusterPolicies) List(opts metainternal.ListOptions) (*authorizationapi.ClusterPolicyList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(clusterPoliciesResource, opts), &authorizationapi.ClusterPolicyList{}) if obj == nil { return nil, err } @@ -36,10 +36,10 @@ func (c *FakeClusterPolicies) List(opts kapi.ListOptions) (*authorizationapi.Clu } func (c *FakeClusterPolicies) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(clusterPoliciesResource, name), &authorizationapi.ClusterPolicy{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(clusterPoliciesResource, name), &authorizationapi.ClusterPolicy{}) return err } -func (c *FakeClusterPolicies) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(clusterPoliciesResource, opts)) +func (c *FakeClusterPolicies) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(clusterPoliciesResource, opts)) } diff --git a/pkg/client/testclient/fake_clusterpolicybindings.go b/pkg/client/testclient/fake_clusterpolicybindings.go index 97e8108f9e49..f540d99e7370 100644 --- a/pkg/client/testclient/fake_clusterpolicybindings.go +++ b/pkg/client/testclient/fake_clusterpolicybindings.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -15,10 +15,10 @@ type FakeClusterPolicyBindings struct { Fake *Fake } -var clusterPolicyBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterpolicybindings"} +var clusterPolicyBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterpolicybindings"} func (c *FakeClusterPolicyBindings) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusterPolicyBindingsResource, name), &authorizationapi.ClusterPolicyBinding{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusterPolicyBindingsResource, name), &authorizationapi.ClusterPolicyBinding{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeClusterPolicyBindings) Get(name string) (*authorizationapi.ClusterP return obj.(*authorizationapi.ClusterPolicyBinding), err } -func (c *FakeClusterPolicyBindings) List(opts kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(clusterPolicyBindingsResource, opts), &authorizationapi.ClusterPolicyBindingList{}) +func (c *FakeClusterPolicyBindings) List(opts metainternal.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(clusterPolicyBindingsResource, opts), &authorizationapi.ClusterPolicyBindingList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeClusterPolicyBindings) List(opts kapi.ListOptions) (*authorizationa } func (c *FakeClusterPolicyBindings) Create(inObj *authorizationapi.ClusterPolicyBinding) (*authorizationapi.ClusterPolicyBinding, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(clusterPolicyBindingsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(clusterPolicyBindingsResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,10 +45,10 @@ func (c *FakeClusterPolicyBindings) Create(inObj *authorizationapi.ClusterPolicy } func (c *FakeClusterPolicyBindings) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(clusterPolicyBindingsResource, name), &authorizationapi.ClusterPolicyBinding{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(clusterPolicyBindingsResource, name), &authorizationapi.ClusterPolicyBinding{}) return err } -func (c *FakeClusterPolicyBindings) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(clusterPolicyBindingsResource, opts)) +func (c *FakeClusterPolicyBindings) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(clusterPolicyBindingsResource, opts)) } diff --git a/pkg/client/testclient/fake_clusterresourcequota.go b/pkg/client/testclient/fake_clusterresourcequota.go index 37f21a1d1422..9ad58b20a313 100644 --- a/pkg/client/testclient/fake_clusterresourcequota.go +++ b/pkg/client/testclient/fake_clusterresourcequota.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" quotaapi "github.com/openshift/origin/pkg/quota/api" ) @@ -15,10 +15,10 @@ type FakeClusterResourceQuotas struct { Fake *Fake } -var clusteResourceQuotasResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterresourcequotas"} +var clusteResourceQuotasResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterresourcequotas"} func (c *FakeClusterResourceQuotas) Get(name string) (*quotaapi.ClusterResourceQuota, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusteResourceQuotasResource, name), "aapi.ClusterResourceQuota{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusteResourceQuotasResource, name), "aapi.ClusterResourceQuota{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeClusterResourceQuotas) Get(name string) (*quotaapi.ClusterResourceQ return obj.(*quotaapi.ClusterResourceQuota), err } -func (c *FakeClusterResourceQuotas) List(opts kapi.ListOptions) (*quotaapi.ClusterResourceQuotaList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(clusteResourceQuotasResource, opts), "aapi.ClusterResourceQuotaList{}) +func (c *FakeClusterResourceQuotas) List(opts metainternal.ListOptions) (*quotaapi.ClusterResourceQuotaList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(clusteResourceQuotasResource, opts), "aapi.ClusterResourceQuotaList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeClusterResourceQuotas) List(opts kapi.ListOptions) (*quotaapi.Clust } func (c *FakeClusterResourceQuotas) Create(inObj *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(clusteResourceQuotasResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(clusteResourceQuotasResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeClusterResourceQuotas) Create(inObj *quotaapi.ClusterResourceQuota) } func (c *FakeClusterResourceQuotas) Update(inObj *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(clusteResourceQuotasResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(clusteResourceQuotasResource, inObj), inObj) if obj == nil { return nil, err } @@ -53,16 +53,16 @@ func (c *FakeClusterResourceQuotas) Update(inObj *quotaapi.ClusterResourceQuota) return obj.(*quotaapi.ClusterResourceQuota), err } func (c *FakeClusterResourceQuotas) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(clusteResourceQuotasResource, name), "aapi.ClusterResourceQuota{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(clusteResourceQuotasResource, name), "aapi.ClusterResourceQuota{}) return err } -func (c *FakeClusterResourceQuotas) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(clusteResourceQuotasResource, opts)) +func (c *FakeClusterResourceQuotas) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(clusteResourceQuotasResource, opts)) } func (c *FakeClusterResourceQuotas) UpdateStatus(inObj *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) { - action := core.UpdateActionImpl{} + action := clientgotesting.UpdateActionImpl{} action.Verb = "update" action.Resource = clusteResourceQuotasResource action.Subresource = "status" diff --git a/pkg/client/testclient/fake_clusterrolebindings.go b/pkg/client/testclient/fake_clusterrolebindings.go index b778ac459367..519ffe86a13e 100644 --- a/pkg/client/testclient/fake_clusterrolebindings.go +++ b/pkg/client/testclient/fake_clusterrolebindings.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,10 +14,10 @@ type FakeClusterRoleBindings struct { Fake *Fake } -var clusterRoleBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterrolebindings"} +var clusterRoleBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterrolebindings"} func (c *FakeClusterRoleBindings) Get(name string) (*authorizationapi.ClusterRoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusterRoleBindingsResource, name), &authorizationapi.ClusterRoleBinding{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusterRoleBindingsResource, name), &authorizationapi.ClusterRoleBinding{}) if obj == nil { return nil, err } @@ -25,8 +25,8 @@ func (c *FakeClusterRoleBindings) Get(name string) (*authorizationapi.ClusterRol return obj.(*authorizationapi.ClusterRoleBinding), err } -func (c *FakeClusterRoleBindings) List(opts kapi.ListOptions) (*authorizationapi.ClusterRoleBindingList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(clusterRoleBindingsResource, opts), &authorizationapi.ClusterRoleBindingList{}) +func (c *FakeClusterRoleBindings) List(opts metainternal.ListOptions) (*authorizationapi.ClusterRoleBindingList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(clusterRoleBindingsResource, opts), &authorizationapi.ClusterRoleBindingList{}) if obj == nil { return nil, err } @@ -35,7 +35,7 @@ func (c *FakeClusterRoleBindings) List(opts kapi.ListOptions) (*authorizationapi } func (c *FakeClusterRoleBindings) Create(inObj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(clusterRoleBindingsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(clusterRoleBindingsResource, inObj), inObj) if obj == nil { return nil, err } @@ -44,7 +44,7 @@ func (c *FakeClusterRoleBindings) Create(inObj *authorizationapi.ClusterRoleBind } func (c *FakeClusterRoleBindings) Update(inObj *authorizationapi.ClusterRoleBinding) (*authorizationapi.ClusterRoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(clusterRoleBindingsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(clusterRoleBindingsResource, inObj), inObj) if obj == nil { return nil, err } @@ -53,6 +53,6 @@ func (c *FakeClusterRoleBindings) Update(inObj *authorizationapi.ClusterRoleBind } func (c *FakeClusterRoleBindings) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(clusterRoleBindingsResource, name), &authorizationapi.ClusterRoleBinding{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(clusterRoleBindingsResource, name), &authorizationapi.ClusterRoleBinding{}) return err } diff --git a/pkg/client/testclient/fake_clusterroles.go b/pkg/client/testclient/fake_clusterroles.go index 0dd97677ad66..902556a4a7a7 100644 --- a/pkg/client/testclient/fake_clusterroles.go +++ b/pkg/client/testclient/fake_clusterroles.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,10 +14,10 @@ type FakeClusterRoles struct { Fake *Fake } -var clusterRolesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterroles"} +var clusterRolesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterroles"} func (c *FakeClusterRoles) Get(name string) (*authorizationapi.ClusterRole, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(clusterRolesResource, name), &authorizationapi.ClusterRole{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(clusterRolesResource, name), &authorizationapi.ClusterRole{}) if obj == nil { return nil, err } @@ -25,8 +25,8 @@ func (c *FakeClusterRoles) Get(name string) (*authorizationapi.ClusterRole, erro return obj.(*authorizationapi.ClusterRole), err } -func (c *FakeClusterRoles) List(opts kapi.ListOptions) (*authorizationapi.ClusterRoleList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(clusterRolesResource, opts), &authorizationapi.ClusterRoleList{}) +func (c *FakeClusterRoles) List(opts metainternal.ListOptions) (*authorizationapi.ClusterRoleList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(clusterRolesResource, opts), &authorizationapi.ClusterRoleList{}) if obj == nil { return nil, err } @@ -35,7 +35,7 @@ func (c *FakeClusterRoles) List(opts kapi.ListOptions) (*authorizationapi.Cluste } func (c *FakeClusterRoles) Create(inObj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(clusterRolesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(clusterRolesResource, inObj), inObj) if obj == nil { return nil, err } @@ -44,7 +44,7 @@ func (c *FakeClusterRoles) Create(inObj *authorizationapi.ClusterRole) (*authori } func (c *FakeClusterRoles) Update(inObj *authorizationapi.ClusterRole) (*authorizationapi.ClusterRole, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(clusterRolesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(clusterRolesResource, inObj), inObj) if obj == nil { return nil, err } @@ -53,6 +53,6 @@ func (c *FakeClusterRoles) Update(inObj *authorizationapi.ClusterRole) (*authori } func (c *FakeClusterRoles) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(clusterRolesResource, name), &authorizationapi.ClusterRole{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(clusterRolesResource, name), &authorizationapi.ClusterRole{}) return err } diff --git a/pkg/client/testclient/fake_deploymentconfigs.go b/pkg/client/testclient/fake_deploymentconfigs.go index 53ab83928fc1..8f10aa1a696a 100644 --- a/pkg/client/testclient/fake_deploymentconfigs.go +++ b/pkg/client/testclient/fake_deploymentconfigs.go @@ -1,11 +1,12 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" + extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -17,10 +18,10 @@ type FakeDeploymentConfigs struct { Namespace string } -var deploymentConfigsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "deploymentconfigs"} +var deploymentConfigsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "deploymentconfigs"} func (c *FakeDeploymentConfigs) Get(name string) (*deployapi.DeploymentConfig, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(deploymentConfigsResource, c.Namespace, name), &deployapi.DeploymentConfig{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(deploymentConfigsResource, c.Namespace, name), &deployapi.DeploymentConfig{}) if obj == nil { return nil, err } @@ -28,8 +29,8 @@ func (c *FakeDeploymentConfigs) Get(name string) (*deployapi.DeploymentConfig, e return obj.(*deployapi.DeploymentConfig), err } -func (c *FakeDeploymentConfigs) List(opts kapi.ListOptions) (*deployapi.DeploymentConfigList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(deploymentConfigsResource, c.Namespace, opts), &deployapi.DeploymentConfigList{}) +func (c *FakeDeploymentConfigs) List(opts metainternal.ListOptions) (*deployapi.DeploymentConfigList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(deploymentConfigsResource, c.Namespace, opts), &deployapi.DeploymentConfigList{}) if obj == nil { return nil, err } @@ -38,7 +39,7 @@ func (c *FakeDeploymentConfigs) List(opts kapi.ListOptions) (*deployapi.Deployme } func (c *FakeDeploymentConfigs) Create(inObj *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(deploymentConfigsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(deploymentConfigsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -47,7 +48,7 @@ func (c *FakeDeploymentConfigs) Create(inObj *deployapi.DeploymentConfig) (*depl } func (c *FakeDeploymentConfigs) Update(inObj *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(deploymentConfigsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(deploymentConfigsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -60,16 +61,16 @@ func (c *FakeDeploymentConfigs) Patch(name string, pt kapi.PatchType, data []byt } func (c *FakeDeploymentConfigs) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(deploymentConfigsResource, c.Namespace, name), &deployapi.DeploymentConfig{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(deploymentConfigsResource, c.Namespace, name), &deployapi.DeploymentConfig{}) return err } -func (c *FakeDeploymentConfigs) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(deploymentConfigsResource, c.Namespace, opts)) +func (c *FakeDeploymentConfigs) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(deploymentConfigsResource, c.Namespace, opts)) } func (c *FakeDeploymentConfigs) Generate(name string) (*deployapi.DeploymentConfig, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(deployapi.LegacySchemeGroupVersion.WithResource("generatedeploymentconfigs"), c.Namespace, name), &deployapi.DeploymentConfig{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(deployapi.LegacySchemeGroupVersion.WithResource("generatedeploymentconfigs"), c.Namespace, name), &deployapi.DeploymentConfig{}) if obj == nil { return nil, err } @@ -78,7 +79,7 @@ func (c *FakeDeploymentConfigs) Generate(name string) (*deployapi.DeploymentConf } func (c *FakeDeploymentConfigs) Rollback(inObj *deployapi.DeploymentConfigRollback) (result *deployapi.DeploymentConfig, err error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/rollback"), c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/rollback"), c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -87,7 +88,7 @@ func (c *FakeDeploymentConfigs) Rollback(inObj *deployapi.DeploymentConfigRollba } func (c *FakeDeploymentConfigs) RollbackDeprecated(inObj *deployapi.DeploymentConfigRollback) (result *deployapi.DeploymentConfig, err error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigrollbacks"), c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigrollbacks"), c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -95,26 +96,26 @@ func (c *FakeDeploymentConfigs) RollbackDeprecated(inObj *deployapi.DeploymentCo return obj.(*deployapi.DeploymentConfig), err } -func (c *FakeDeploymentConfigs) GetScale(name string) (*extensions.Scale, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/scale"), c.Namespace, name), &extensions.Scale{}) +func (c *FakeDeploymentConfigs) GetScale(name string) (*extensionsv1beta1.Scale, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/scale"), c.Namespace, name), &extensionsv1beta1.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*extensionsv1beta1.Scale), err } -func (c *FakeDeploymentConfigs) UpdateScale(inObj *extensions.Scale) (*extensions.Scale, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/scale"), c.Namespace, inObj), inObj) +func (c *FakeDeploymentConfigs) UpdateScale(inObj *extensionsv1beta1.Scale) (*extensionsv1beta1.Scale, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/scale"), c.Namespace, inObj), inObj) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*extensionsv1beta1.Scale), err } func (c *FakeDeploymentConfigs) UpdateStatus(inObj *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/status"), c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/status"), c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -123,8 +124,8 @@ func (c *FakeDeploymentConfigs) UpdateStatus(inObj *deployapi.DeploymentConfig) } func (c *FakeDeploymentConfigs) Instantiate(inObj *deployapi.DeploymentRequest) (*deployapi.DeploymentConfig, error) { - deployment := &deployapi.DeploymentConfig{ObjectMeta: kapi.ObjectMeta{Name: inObj.Name}} - obj, err := c.Fake.Invokes(core.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/instantiate"), c.Namespace, deployment), deployment) + deployment := &deployapi.DeploymentConfig{ObjectMeta: metav1.ObjectMeta{Name: inObj.Name}} + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(deployapi.LegacySchemeGroupVersion.WithResource("deploymentconfigs/instantiate"), c.Namespace, deployment), deployment) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_deploymentlogs.go b/pkg/client/testclient/fake_deploymentlogs.go index 4b7f2388596b..fea0fe2050c9 100644 --- a/pkg/client/testclient/fake_deploymentlogs.go +++ b/pkg/client/testclient/fake_deploymentlogs.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/testing/core" + restclient "k8s.io/client-go/rest" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/deploy/api" ) @@ -16,7 +16,7 @@ type FakeDeploymentLogs struct { // Get builds and returns a buildLog request func (c *FakeDeploymentLogs) Get(name string, opt api.DeploymentLogOptions) *restclient.Request { - action := core.GenericActionImpl{} + action := clientgotesting.GenericActionImpl{} action.Verb = "get" action.Namespace = c.Namespace action.Resource = deploymentConfigsResource diff --git a/pkg/client/testclient/fake_egressnetworkpolicy.go b/pkg/client/testclient/fake_egressnetworkpolicy.go index 4dad51a02701..cfc671055e1e 100644 --- a/pkg/client/testclient/fake_egressnetworkpolicy.go +++ b/pkg/client/testclient/fake_egressnetworkpolicy.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -16,10 +16,10 @@ type FakeEgressNetworkPolicy struct { Namespace string } -var egressNetworkPoliciesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "egressnetworkpolicies"} +var egressNetworkPoliciesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "egressnetworkpolicies"} func (c *FakeEgressNetworkPolicy) Get(name string) (*sdnapi.EgressNetworkPolicy, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(egressNetworkPoliciesResource, c.Namespace, name), &sdnapi.EgressNetworkPolicy{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(egressNetworkPoliciesResource, c.Namespace, name), &sdnapi.EgressNetworkPolicy{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakeEgressNetworkPolicy) Get(name string) (*sdnapi.EgressNetworkPolicy, return obj.(*sdnapi.EgressNetworkPolicy), err } -func (c *FakeEgressNetworkPolicy) List(opts kapi.ListOptions) (*sdnapi.EgressNetworkPolicyList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(egressNetworkPoliciesResource, c.Namespace, opts), &sdnapi.EgressNetworkPolicyList{}) +func (c *FakeEgressNetworkPolicy) List(opts metainternal.ListOptions) (*sdnapi.EgressNetworkPolicyList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(egressNetworkPoliciesResource, c.Namespace, opts), &sdnapi.EgressNetworkPolicyList{}) if obj == nil { return nil, err } @@ -37,7 +37,7 @@ func (c *FakeEgressNetworkPolicy) List(opts kapi.ListOptions) (*sdnapi.EgressNet } func (c *FakeEgressNetworkPolicy) Create(inObj *sdnapi.EgressNetworkPolicy) (*sdnapi.EgressNetworkPolicy, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(egressNetworkPoliciesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(egressNetworkPoliciesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -46,7 +46,7 @@ func (c *FakeEgressNetworkPolicy) Create(inObj *sdnapi.EgressNetworkPolicy) (*sd } func (c *FakeEgressNetworkPolicy) Update(inObj *sdnapi.EgressNetworkPolicy) (*sdnapi.EgressNetworkPolicy, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(egressNetworkPoliciesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(egressNetworkPoliciesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -55,10 +55,10 @@ func (c *FakeEgressNetworkPolicy) Update(inObj *sdnapi.EgressNetworkPolicy) (*sd } func (c *FakeEgressNetworkPolicy) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(egressNetworkPoliciesResource, c.Namespace, name), &sdnapi.EgressNetworkPolicy{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(egressNetworkPoliciesResource, c.Namespace, name), &sdnapi.EgressNetworkPolicy{}) return err } -func (c *FakeEgressNetworkPolicy) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(egressNetworkPoliciesResource, c.Namespace, opts)) +func (c *FakeEgressNetworkPolicy) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(egressNetworkPoliciesResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_groups.go b/pkg/client/testclient/fake_groups.go index e16f7ce6471f..53f728783787 100644 --- a/pkg/client/testclient/fake_groups.go +++ b/pkg/client/testclient/fake_groups.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -15,10 +15,10 @@ type FakeGroups struct { Fake *Fake } -var groupsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "groups"} +var groupsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "groups"} func (c *FakeGroups) Get(name string) (*userapi.Group, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(groupsResource, name), &userapi.Group{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(groupsResource, name), &userapi.Group{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeGroups) Get(name string) (*userapi.Group, error) { return obj.(*userapi.Group), err } -func (c *FakeGroups) List(opts kapi.ListOptions) (*userapi.GroupList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(groupsResource, opts), &userapi.GroupList{}) +func (c *FakeGroups) List(opts metainternal.ListOptions) (*userapi.GroupList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(groupsResource, opts), &userapi.GroupList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeGroups) List(opts kapi.ListOptions) (*userapi.GroupList, error) { } func (c *FakeGroups) Create(inObj *userapi.Group) (*userapi.Group, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(groupsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(groupsResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeGroups) Create(inObj *userapi.Group) (*userapi.Group, error) { } func (c *FakeGroups) Update(inObj *userapi.Group) (*userapi.Group, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(groupsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(groupsResource, inObj), inObj) if obj == nil { return nil, err } @@ -54,10 +54,10 @@ func (c *FakeGroups) Update(inObj *userapi.Group) (*userapi.Group, error) { } func (c *FakeGroups) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(groupsResource, name), &userapi.Group{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(groupsResource, name), &userapi.Group{}) return err } -func (c *FakeGroups) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(groupsResource, opts)) +func (c *FakeGroups) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(groupsResource, opts)) } diff --git a/pkg/client/testclient/fake_hostsubnets.go b/pkg/client/testclient/fake_hostsubnets.go index 0b3deb2922ab..983d888b6760 100644 --- a/pkg/client/testclient/fake_hostsubnets.go +++ b/pkg/client/testclient/fake_hostsubnets.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -15,10 +15,10 @@ type FakeHostSubnet struct { Fake *Fake } -var hostSubnetsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "hostsubnets"} +var hostSubnetsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "hostsubnets"} func (c *FakeHostSubnet) Get(name string) (*sdnapi.HostSubnet, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(hostSubnetsResource, name), &sdnapi.HostSubnet{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(hostSubnetsResource, name), &sdnapi.HostSubnet{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeHostSubnet) Get(name string) (*sdnapi.HostSubnet, error) { return obj.(*sdnapi.HostSubnet), err } -func (c *FakeHostSubnet) List(opts kapi.ListOptions) (*sdnapi.HostSubnetList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(hostSubnetsResource, opts), &sdnapi.HostSubnetList{}) +func (c *FakeHostSubnet) List(opts metainternal.ListOptions) (*sdnapi.HostSubnetList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(hostSubnetsResource, opts), &sdnapi.HostSubnetList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeHostSubnet) List(opts kapi.ListOptions) (*sdnapi.HostSubnetList, er } func (c *FakeHostSubnet) Create(inObj *sdnapi.HostSubnet) (*sdnapi.HostSubnet, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(hostSubnetsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(hostSubnetsResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeHostSubnet) Create(inObj *sdnapi.HostSubnet) (*sdnapi.HostSubnet, e } func (c *FakeHostSubnet) Update(inObj *sdnapi.HostSubnet) (*sdnapi.HostSubnet, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(hostSubnetsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(hostSubnetsResource, inObj), inObj) if obj == nil { return nil, err } @@ -54,10 +54,10 @@ func (c *FakeHostSubnet) Update(inObj *sdnapi.HostSubnet) (*sdnapi.HostSubnet, e } func (c *FakeHostSubnet) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(hostSubnetsResource, name), &sdnapi.HostSubnet{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(hostSubnetsResource, name), &sdnapi.HostSubnet{}) return err } -func (c *FakeHostSubnet) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(hostSubnetsResource, opts)) +func (c *FakeHostSubnet) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(hostSubnetsResource, opts)) } diff --git a/pkg/client/testclient/fake_identities.go b/pkg/client/testclient/fake_identities.go index 71a6e26330dc..b8320a56d762 100644 --- a/pkg/client/testclient/fake_identities.go +++ b/pkg/client/testclient/fake_identities.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -14,10 +14,10 @@ type FakeIdentities struct { Fake *Fake } -var identitiesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "identities"} +var identitiesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "identities"} func (c *FakeIdentities) Get(name string) (*userapi.Identity, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(identitiesResource, name), &userapi.Identity{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(identitiesResource, name), &userapi.Identity{}) if obj == nil { return nil, err } @@ -25,8 +25,8 @@ func (c *FakeIdentities) Get(name string) (*userapi.Identity, error) { return obj.(*userapi.Identity), err } -func (c *FakeIdentities) List(opts kapi.ListOptions) (*userapi.IdentityList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(identitiesResource, opts), &userapi.IdentityList{}) +func (c *FakeIdentities) List(opts metainternal.ListOptions) (*userapi.IdentityList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(identitiesResource, opts), &userapi.IdentityList{}) if obj == nil { return nil, err } @@ -35,7 +35,7 @@ func (c *FakeIdentities) List(opts kapi.ListOptions) (*userapi.IdentityList, err } func (c *FakeIdentities) Create(inObj *userapi.Identity) (*userapi.Identity, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(identitiesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(identitiesResource, inObj), inObj) if obj == nil { return nil, err } @@ -44,7 +44,7 @@ func (c *FakeIdentities) Create(inObj *userapi.Identity) (*userapi.Identity, err } func (c *FakeIdentities) Update(inObj *userapi.Identity) (*userapi.Identity, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(identitiesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(identitiesResource, inObj), inObj) if obj == nil { return nil, err } @@ -53,6 +53,6 @@ func (c *FakeIdentities) Update(inObj *userapi.Identity) (*userapi.Identity, err } func (c *FakeIdentities) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(identitiesResource, name), nil) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(identitiesResource, name), nil) return err } diff --git a/pkg/client/testclient/fake_images.go b/pkg/client/testclient/fake_images.go index fd2f96ae709b..c7802e033ae3 100644 --- a/pkg/client/testclient/fake_images.go +++ b/pkg/client/testclient/fake_images.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -18,10 +18,10 @@ type FakeImages struct { var _ client.ImageInterface = &FakeImages{} -var imagesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "images"} +var imagesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "images"} func (c *FakeImages) Get(name string) (*imageapi.Image, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(imagesResource, name), &imageapi.Image{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(imagesResource, name), &imageapi.Image{}) if obj == nil { return nil, err } @@ -29,8 +29,8 @@ func (c *FakeImages) Get(name string) (*imageapi.Image, error) { return obj.(*imageapi.Image), err } -func (c *FakeImages) List(opts kapi.ListOptions) (*imageapi.ImageList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(imagesResource, opts), &imageapi.ImageList{}) +func (c *FakeImages) List(opts metainternal.ListOptions) (*imageapi.ImageList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(imagesResource, opts), &imageapi.ImageList{}) if obj == nil { return nil, err } @@ -39,7 +39,7 @@ func (c *FakeImages) List(opts kapi.ListOptions) (*imageapi.ImageList, error) { } func (c *FakeImages) Create(inObj *imageapi.Image) (*imageapi.Image, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(imagesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(imagesResource, inObj), inObj) if obj == nil { return nil, err } @@ -48,7 +48,7 @@ func (c *FakeImages) Create(inObj *imageapi.Image) (*imageapi.Image, error) { } func (c *FakeImages) Update(inObj *imageapi.Image) (*imageapi.Image, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(imagesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(imagesResource, inObj), inObj) if obj == nil { return nil, err } @@ -57,6 +57,6 @@ func (c *FakeImages) Update(inObj *imageapi.Image) (*imageapi.Image, error) { } func (c *FakeImages) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(imagesResource, name), &imageapi.Image{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(imagesResource, name), &imageapi.Image{}) return err } diff --git a/pkg/client/testclient/fake_imagesignatures.go b/pkg/client/testclient/fake_imagesignatures.go index d8007f42c5e2..276e30004298 100644 --- a/pkg/client/testclient/fake_imagesignatures.go +++ b/pkg/client/testclient/fake_imagesignatures.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -17,14 +17,14 @@ type FakeImageSignatures struct { var _ client.ImageSignatureInterface = &FakeImageSignatures{} -var imageSignaturesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagesignatures"} +var imageSignaturesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagesignatures"} func (c *FakeImageSignatures) Create(inObj *imageapi.ImageSignature) (*imageapi.ImageSignature, error) { - _, err := c.Fake.Invokes(core.NewRootCreateAction(imageSignaturesResource, inObj), inObj) + _, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(imageSignaturesResource, inObj), inObj) return inObj, err } func (c *FakeImageSignatures) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(imageSignaturesResource, name), &imageapi.ImageSignature{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(imageSignaturesResource, name), &imageapi.ImageSignature{}) return err } diff --git a/pkg/client/testclient/fake_imagestreamimages.go b/pkg/client/testclient/fake_imagestreamimages.go index 09bb2be7386b..63581ae7d88c 100644 --- a/pkg/client/testclient/fake_imagestreamimages.go +++ b/pkg/client/testclient/fake_imagestreamimages.go @@ -3,8 +3,8 @@ package testclient import ( "fmt" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -20,12 +20,12 @@ type FakeImageStreamImages struct { var _ client.ImageStreamImageInterface = &FakeImageStreamImages{} -var imageStreamImagesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamimages"} +var imageStreamImagesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamimages"} func (c *FakeImageStreamImages) Get(repo, imageID string) (*imageapi.ImageStreamImage, error) { name := fmt.Sprintf("%s@%s", repo, imageID) - obj, err := c.Fake.Invokes(core.NewGetAction(imageStreamImagesResource, c.Namespace, name), &imageapi.ImageStreamImage{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(imageStreamImagesResource, c.Namespace, name), &imageapi.ImageStreamImage{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_imagestreammappings.go b/pkg/client/testclient/fake_imagestreammappings.go index a04111e04085..e8a8cc8fd585 100644 --- a/pkg/client/testclient/fake_imagestreammappings.go +++ b/pkg/client/testclient/fake_imagestreammappings.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -18,9 +18,9 @@ type FakeImageStreamMappings struct { var _ client.ImageStreamMappingInterface = &FakeImageStreamMappings{} -var imageStreamMappingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagestreammappings"} +var imageStreamMappingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagestreammappings"} func (c *FakeImageStreamMappings) Create(inObj *imageapi.ImageStreamMapping) error { - _, err := c.Fake.Invokes(core.NewCreateAction(imageStreamMappingsResource, c.Namespace, inObj), inObj) + _, err := c.Fake.Invokes(clientgotesting.NewCreateAction(imageStreamMappingsResource, c.Namespace, inObj), inObj) return err } diff --git a/pkg/client/testclient/fake_imagestreams.go b/pkg/client/testclient/fake_imagestreams.go index e43abd63312d..50e85cf1f4ed 100644 --- a/pkg/client/testclient/fake_imagestreams.go +++ b/pkg/client/testclient/fake_imagestreams.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -20,11 +20,11 @@ type FakeImageStreams struct { var _ client.ImageStreamInterface = &FakeImageStreams{} -var imageStreamsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagestreams"} -var imageStreamImportsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamimports"} +var imageStreamsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagestreams"} +var imageStreamImportsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamimports"} func (c *FakeImageStreams) Get(name string) (*imageapi.ImageStream, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(imageStreamsResource, c.Namespace, name), &imageapi.ImageStream{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(imageStreamsResource, c.Namespace, name), &imageapi.ImageStream{}) if obj == nil { return nil, err } @@ -32,8 +32,8 @@ func (c *FakeImageStreams) Get(name string) (*imageapi.ImageStream, error) { return obj.(*imageapi.ImageStream), err } -func (c *FakeImageStreams) List(opts kapi.ListOptions) (*imageapi.ImageStreamList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(imageStreamsResource, c.Namespace, opts), &imageapi.ImageStreamList{}) +func (c *FakeImageStreams) List(opts metainternal.ListOptions) (*imageapi.ImageStreamList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(imageStreamsResource, c.Namespace, opts), &imageapi.ImageStreamList{}) if obj == nil { return nil, err } @@ -42,7 +42,7 @@ func (c *FakeImageStreams) List(opts kapi.ListOptions) (*imageapi.ImageStreamLis } func (c *FakeImageStreams) Create(inObj *imageapi.ImageStream) (*imageapi.ImageStream, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(imageStreamsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(imageStreamsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -51,7 +51,7 @@ func (c *FakeImageStreams) Create(inObj *imageapi.ImageStream) (*imageapi.ImageS } func (c *FakeImageStreams) Update(inObj *imageapi.ImageStream) (*imageapi.ImageStream, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(imageStreamsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(imageStreamsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -60,16 +60,16 @@ func (c *FakeImageStreams) Update(inObj *imageapi.ImageStream) (*imageapi.ImageS } func (c *FakeImageStreams) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(imageStreamsResource, c.Namespace, name), &imageapi.ImageStream{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(imageStreamsResource, c.Namespace, name), &imageapi.ImageStream{}) return err } -func (c *FakeImageStreams) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(imageStreamsResource, c.Namespace, opts)) +func (c *FakeImageStreams) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(imageStreamsResource, c.Namespace, opts)) } func (c *FakeImageStreams) UpdateStatus(inObj *imageapi.ImageStream) (result *imageapi.ImageStream, err error) { - action := core.CreateActionImpl{} + action := clientgotesting.CreateActionImpl{} action.Verb = "update" action.Resource = imageStreamsResource action.Subresource = "status" @@ -84,7 +84,7 @@ func (c *FakeImageStreams) UpdateStatus(inObj *imageapi.ImageStream) (result *im } func (c *FakeImageStreams) Import(inObj *imageapi.ImageStreamImport) (*imageapi.ImageStreamImport, error) { - action := core.CreateActionImpl{} + action := clientgotesting.CreateActionImpl{} action.Verb = "create" action.Resource = imageStreamImportsResource action.Object = inObj diff --git a/pkg/client/testclient/fake_imagestreamsecrets.go b/pkg/client/testclient/fake_imagestreamsecrets.go index f288615cd178..43f84694d9aa 100644 --- a/pkg/client/testclient/fake_imagestreamsecrets.go +++ b/pkg/client/testclient/fake_imagestreamsecrets.go @@ -1,8 +1,9 @@ package testclient import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -18,8 +19,8 @@ type FakeImageStreamSecrets struct { var _ client.ImageStreamSecretInterface = &FakeImageStreamSecrets{} -func (c *FakeImageStreamSecrets) Secrets(name string, options kapi.ListOptions) (*kapi.SecretList, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(imageapi.SchemeGroupVersion.WithResource("imagestreams/secrets"), c.Namespace, name), &kapi.SecretList{}) +func (c *FakeImageStreamSecrets) Secrets(name string, options metainternal.ListOptions) (*kapi.SecretList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(imageapi.SchemeGroupVersion.WithResource("imagestreams/secrets"), c.Namespace, name), &kapi.SecretList{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_imagestreamtags.go b/pkg/client/testclient/fake_imagestreamtags.go index 36b7427ac4c1..c4dae701266f 100644 --- a/pkg/client/testclient/fake_imagestreamtags.go +++ b/pkg/client/testclient/fake_imagestreamtags.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -18,10 +18,10 @@ type FakeImageStreamTags struct { var _ client.ImageStreamTagInterface = &FakeImageStreamTags{} -var imageStreamTagsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamtags"} +var imageStreamTagsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "imagestreamtags"} func (c *FakeImageStreamTags) Get(name, tag string) (*imageapi.ImageStreamTag, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(imageStreamTagsResource, c.Namespace, imageapi.JoinImageStreamTag(name, tag)), &imageapi.ImageStreamTag{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(imageStreamTagsResource, c.Namespace, imageapi.JoinImageStreamTag(name, tag)), &imageapi.ImageStreamTag{}) if obj == nil { return nil, err } @@ -30,7 +30,7 @@ func (c *FakeImageStreamTags) Get(name, tag string) (*imageapi.ImageStreamTag, e } func (c *FakeImageStreamTags) Update(inObj *imageapi.ImageStreamTag) (*imageapi.ImageStreamTag, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(imageStreamTagsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(imageStreamTagsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -39,7 +39,7 @@ func (c *FakeImageStreamTags) Update(inObj *imageapi.ImageStreamTag) (*imageapi. } func (c *FakeImageStreamTags) Create(inObj *imageapi.ImageStreamTag) (*imageapi.ImageStreamTag, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(imageStreamTagsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(imageStreamTagsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -48,6 +48,6 @@ func (c *FakeImageStreamTags) Create(inObj *imageapi.ImageStreamTag) (*imageapi. } func (c *FakeImageStreamTags) Delete(name, tag string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(imageStreamTagsResource, c.Namespace, imageapi.JoinImageStreamTag(name, tag)), &imageapi.ImageStreamTag{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(imageStreamTagsResource, c.Namespace, imageapi.JoinImageStreamTag(name, tag)), &imageapi.ImageStreamTag{}) return err } diff --git a/pkg/client/testclient/fake_localresourceaccessreview.go b/pkg/client/testclient/fake_localresourceaccessreview.go index 8cce00b5ff1b..c8e7032036a6 100644 --- a/pkg/client/testclient/fake_localresourceaccessreview.go +++ b/pkg/client/testclient/fake_localresourceaccessreview.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,10 +12,10 @@ type FakeLocalResourceAccessReviews struct { Namespace string } -var localResourceAccessReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "localresourceaccessreviews"} +var localResourceAccessReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "localresourceaccessreviews"} func (c *FakeLocalResourceAccessReviews) Create(inObj *authorizationapi.LocalResourceAccessReview) (*authorizationapi.ResourceAccessReviewResponse, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(localResourceAccessReviewsResource, c.Namespace, inObj), &authorizationapi.ResourceAccessReviewResponse{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(localResourceAccessReviewsResource, c.Namespace, inObj), &authorizationapi.ResourceAccessReviewResponse{}) if cast, ok := obj.(*authorizationapi.ResourceAccessReviewResponse); ok { return cast, err } diff --git a/pkg/client/testclient/fake_localsubjectaccessreview.go b/pkg/client/testclient/fake_localsubjectaccessreview.go index ba31b1204412..53fd107bfc1b 100644 --- a/pkg/client/testclient/fake_localsubjectaccessreview.go +++ b/pkg/client/testclient/fake_localsubjectaccessreview.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,10 +12,10 @@ type FakeLocalSubjectAccessReviews struct { Namespace string } -var localSubjectAccessReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "localsubjectaccessreviews"} +var localSubjectAccessReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "localsubjectaccessreviews"} func (c *FakeLocalSubjectAccessReviews) Create(inObj *authorizationapi.LocalSubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(localSubjectAccessReviewsResource, c.Namespace, inObj), &authorizationapi.SubjectAccessReviewResponse{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(localSubjectAccessReviewsResource, c.Namespace, inObj), &authorizationapi.SubjectAccessReviewResponse{}) if cast, ok := obj.(*authorizationapi.SubjectAccessReviewResponse); ok { return cast, err } diff --git a/pkg/client/testclient/fake_netnamespaces.go b/pkg/client/testclient/fake_netnamespaces.go index 83c59d2a26a3..682bf491441b 100644 --- a/pkg/client/testclient/fake_netnamespaces.go +++ b/pkg/client/testclient/fake_netnamespaces.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" sdnapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -15,10 +15,10 @@ type FakeNetNamespace struct { Fake *Fake } -var netNamespacesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "netnamespaces"} +var netNamespacesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "netnamespaces"} func (c *FakeNetNamespace) Get(name string) (*sdnapi.NetNamespace, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(netNamespacesResource, name), &sdnapi.NetNamespace{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(netNamespacesResource, name), &sdnapi.NetNamespace{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeNetNamespace) Get(name string) (*sdnapi.NetNamespace, error) { return obj.(*sdnapi.NetNamespace), err } -func (c *FakeNetNamespace) List(opts kapi.ListOptions) (*sdnapi.NetNamespaceList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(netNamespacesResource, opts), &sdnapi.NetNamespaceList{}) +func (c *FakeNetNamespace) List(opts metainternal.ListOptions) (*sdnapi.NetNamespaceList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(netNamespacesResource, opts), &sdnapi.NetNamespaceList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeNetNamespace) List(opts kapi.ListOptions) (*sdnapi.NetNamespaceList } func (c *FakeNetNamespace) Create(inObj *sdnapi.NetNamespace) (*sdnapi.NetNamespace, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(netNamespacesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(netNamespacesResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeNetNamespace) Create(inObj *sdnapi.NetNamespace) (*sdnapi.NetNamesp } func (c *FakeNetNamespace) Update(inObj *sdnapi.NetNamespace) (*sdnapi.NetNamespace, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(netNamespacesResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(netNamespacesResource, inObj), inObj) if obj == nil { return nil, err } @@ -54,10 +54,10 @@ func (c *FakeNetNamespace) Update(inObj *sdnapi.NetNamespace) (*sdnapi.NetNamesp } func (c *FakeNetNamespace) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(netNamespacesResource, name), &sdnapi.NetNamespace{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(netNamespacesResource, name), &sdnapi.NetNamespace{}) return err } -func (c *FakeNetNamespace) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(netNamespacesResource, opts)) +func (c *FakeNetNamespace) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(netNamespacesResource, opts)) } diff --git a/pkg/client/testclient/fake_oauthaccesstoken.go b/pkg/client/testclient/fake_oauthaccesstoken.go index 40ed71da928c..c90e1031a968 100644 --- a/pkg/client/testclient/fake_oauthaccesstoken.go +++ b/pkg/client/testclient/fake_oauthaccesstoken.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -14,15 +14,15 @@ type FakeOAuthAccessTokens struct { Fake *Fake } -var oAuthAccessTokensResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthaccesstokens"} +var oAuthAccessTokensResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthaccesstokens"} func (c *FakeOAuthAccessTokens) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(oAuthAccessTokensResource, name), &oauthapi.OAuthAccessToken{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(oAuthAccessTokensResource, name), &oauthapi.OAuthAccessToken{}) return err } func (c *FakeOAuthAccessTokens) Create(inObj *oauthapi.OAuthAccessToken) (*oauthapi.OAuthAccessToken, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(oAuthAccessTokensResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(oAuthAccessTokensResource, inObj), inObj) if obj == nil { return nil, err } @@ -32,7 +32,7 @@ func (c *FakeOAuthAccessTokens) Create(inObj *oauthapi.OAuthAccessToken) (*oauth // Get returns information about a particular image and error if one occurs. func (c *FakeOAuthAccessTokens) Get(name string) (*oauthapi.OAuthAccessToken, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(oAuthAccessTokensResource, name), &oauthapi.OAuthAccessToken{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(oAuthAccessTokensResource, name), &oauthapi.OAuthAccessToken{}) if obj == nil { return nil, err } @@ -40,8 +40,8 @@ func (c *FakeOAuthAccessTokens) Get(name string) (*oauthapi.OAuthAccessToken, er return obj.(*oauthapi.OAuthAccessToken), err } -func (c *FakeOAuthAccessTokens) List(opts kapi.ListOptions) (*oauthapi.OAuthAccessTokenList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(oAuthAccessTokensResource, opts), &oauthapi.OAuthAccessTokenList{}) +func (c *FakeOAuthAccessTokens) List(opts metainternal.ListOptions) (*oauthapi.OAuthAccessTokenList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(oAuthAccessTokensResource, opts), &oauthapi.OAuthAccessTokenList{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_oauthauthorizetoken.go b/pkg/client/testclient/fake_oauthauthorizetoken.go index fc6246a2efa8..6a54943cc77b 100644 --- a/pkg/client/testclient/fake_oauthauthorizetoken.go +++ b/pkg/client/testclient/fake_oauthauthorizetoken.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -11,15 +11,15 @@ type FakeOAuthAuthorizeTokens struct { Fake *Fake } -var oAuthAuthorizeTokensResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthauthorizetokens"} +var oAuthAuthorizeTokensResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthauthorizetokens"} func (c *FakeOAuthAuthorizeTokens) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(oAuthAuthorizeTokensResource, name), &oauthapi.OAuthAuthorizeToken{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(oAuthAuthorizeTokensResource, name), &oauthapi.OAuthAuthorizeToken{}) return err } func (c *FakeOAuthAuthorizeTokens) Create(inObj *oauthapi.OAuthAuthorizeToken) (*oauthapi.OAuthAuthorizeToken, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(oAuthAuthorizeTokensResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(oAuthAuthorizeTokensResource, inObj), inObj) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_oauthclient.go b/pkg/client/testclient/fake_oauthclient.go index a15c6fa5a116..f6e1e8690045 100644 --- a/pkg/client/testclient/fake_oauthclient.go +++ b/pkg/client/testclient/fake_oauthclient.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,10 +13,10 @@ type FakeOAuthClient struct { Fake *Fake } -var oAuthClientsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthclients"} +var oAuthClientsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthclients"} func (c *FakeOAuthClient) Get(name string) (*oauthapi.OAuthClient, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(oAuthClientsResource, name), &oauthapi.OAuthClient{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(oAuthClientsResource, name), &oauthapi.OAuthClient{}) if obj == nil { return nil, err } @@ -24,8 +24,8 @@ func (c *FakeOAuthClient) Get(name string) (*oauthapi.OAuthClient, error) { return obj.(*oauthapi.OAuthClient), err } -func (c *FakeOAuthClient) List(opts kapi.ListOptions) (*oauthapi.OAuthClientList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(oAuthClientsResource, opts), &oauthapi.OAuthClientList{}) +func (c *FakeOAuthClient) List(opts metainternal.ListOptions) (*oauthapi.OAuthClientList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(oAuthClientsResource, opts), &oauthapi.OAuthClientList{}) if obj == nil { return nil, err } @@ -34,7 +34,7 @@ func (c *FakeOAuthClient) List(opts kapi.ListOptions) (*oauthapi.OAuthClientList } func (c *FakeOAuthClient) Create(inObj *oauthapi.OAuthClient) (*oauthapi.OAuthClient, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(oAuthClientsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(oAuthClientsResource, inObj), inObj) if obj == nil { return nil, err } @@ -43,16 +43,16 @@ func (c *FakeOAuthClient) Create(inObj *oauthapi.OAuthClient) (*oauthapi.OAuthCl } func (c *FakeOAuthClient) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(oAuthClientsResource, name), &oauthapi.OAuthClient{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(oAuthClientsResource, name), &oauthapi.OAuthClient{}) return err } -func (c *FakeOAuthClient) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(oAuthClientsResource, opts)) +func (c *FakeOAuthClient) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(oAuthClientsResource, opts)) } func (c *FakeOAuthClient) Update(client *oauthapi.OAuthClient) (*oauthapi.OAuthClient, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(oAuthClientsResource, client), &oauthapi.OAuthClient{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(oAuthClientsResource, client), &oauthapi.OAuthClient{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_oauthclientauthorization.go b/pkg/client/testclient/fake_oauthclientauthorization.go index 8716cb05bfa0..5e0fa540ff2b 100644 --- a/pkg/client/testclient/fake_oauthclientauthorization.go +++ b/pkg/client/testclient/fake_oauthclientauthorization.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" oauthapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,10 +13,10 @@ type FakeOAuthClientAuthorization struct { Fake *Fake } -var oAuthClientAuthorizationsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthclientauthorizations"} +var oAuthClientAuthorizationsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthclientauthorizations"} func (c *FakeOAuthClientAuthorization) Get(name string) (*oauthapi.OAuthClientAuthorization, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(oAuthClientAuthorizationsResource, name), &oauthapi.OAuthClientAuthorization{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(oAuthClientAuthorizationsResource, name), &oauthapi.OAuthClientAuthorization{}) if obj == nil { return nil, err } @@ -24,8 +24,8 @@ func (c *FakeOAuthClientAuthorization) Get(name string) (*oauthapi.OAuthClientAu return obj.(*oauthapi.OAuthClientAuthorization), err } -func (c *FakeOAuthClientAuthorization) List(opts kapi.ListOptions) (*oauthapi.OAuthClientAuthorizationList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(oAuthClientAuthorizationsResource, opts), &oauthapi.OAuthClientAuthorizationList{}) +func (c *FakeOAuthClientAuthorization) List(opts metainternal.ListOptions) (*oauthapi.OAuthClientAuthorizationList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(oAuthClientAuthorizationsResource, opts), &oauthapi.OAuthClientAuthorizationList{}) if obj == nil { return nil, err } @@ -34,7 +34,7 @@ func (c *FakeOAuthClientAuthorization) List(opts kapi.ListOptions) (*oauthapi.OA } func (c *FakeOAuthClientAuthorization) Create(inObj *oauthapi.OAuthClientAuthorization) (*oauthapi.OAuthClientAuthorization, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(oAuthClientAuthorizationsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(oAuthClientAuthorizationsResource, inObj), inObj) if obj == nil { return nil, err } @@ -43,7 +43,7 @@ func (c *FakeOAuthClientAuthorization) Create(inObj *oauthapi.OAuthClientAuthori } func (c *FakeOAuthClientAuthorization) Update(inObj *oauthapi.OAuthClientAuthorization) (*oauthapi.OAuthClientAuthorization, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(oAuthClientAuthorizationsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(oAuthClientAuthorizationsResource, inObj), inObj) if obj == nil { return nil, err } @@ -52,10 +52,10 @@ func (c *FakeOAuthClientAuthorization) Update(inObj *oauthapi.OAuthClientAuthori } func (c *FakeOAuthClientAuthorization) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(oAuthClientAuthorizationsResource, name), &oauthapi.OAuthClientAuthorization{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(oAuthClientAuthorizationsResource, name), &oauthapi.OAuthClientAuthorization{}) return err } -func (c *FakeOAuthClientAuthorization) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(oAuthClientAuthorizationsResource, opts)) +func (c *FakeOAuthClientAuthorization) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(oAuthClientAuthorizationsResource, opts)) } diff --git a/pkg/client/testclient/fake_podsecuritypolicyreview.go b/pkg/client/testclient/fake_podsecuritypolicyreview.go index 318902bcad4c..140f824cbb98 100644 --- a/pkg/client/testclient/fake_podsecuritypolicyreview.go +++ b/pkg/client/testclient/fake_podsecuritypolicyreview.go @@ -2,8 +2,8 @@ package testclient import ( securityapi "github.com/openshift/origin/pkg/security/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" ) // FakePodSecurityPolicyReviews implements the PodSecurityPolicyReviews interface. @@ -14,10 +14,10 @@ type FakePodSecurityPolicyReviews struct { Namespace string } -var podSecurityPolicyReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicyreviews"} +var podSecurityPolicyReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicyreviews"} func (c *FakePodSecurityPolicyReviews) Create(inObj *securityapi.PodSecurityPolicyReview) (*securityapi.PodSecurityPolicyReview, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(podSecurityPolicyReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicyReview{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(podSecurityPolicyReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicyReview{}) if cast, ok := obj.(*securityapi.PodSecurityPolicyReview); ok { return cast, err } diff --git a/pkg/client/testclient/fake_podsecuritypolicysubjectreview.go b/pkg/client/testclient/fake_podsecuritypolicysubjectreview.go index 07072905cc41..24696b9a4758 100644 --- a/pkg/client/testclient/fake_podsecuritypolicysubjectreview.go +++ b/pkg/client/testclient/fake_podsecuritypolicysubjectreview.go @@ -2,8 +2,8 @@ package testclient import ( securityapi "github.com/openshift/origin/pkg/security/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" ) // FakePodSecurityPolicySubjectReviews implements the PodSecurityPolicySubjectReviews interface. @@ -14,10 +14,10 @@ type FakePodSecurityPolicySubjectReviews struct { Namespace string } -var podSecurityPolicySubjectReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicysubjectreviews"} +var podSecurityPolicySubjectReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicysubjectreviews"} func (c *FakePodSecurityPolicySubjectReviews) Create(inObj *securityapi.PodSecurityPolicySubjectReview) (*securityapi.PodSecurityPolicySubjectReview, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(podSecurityPolicySubjectReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicySubjectReview{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(podSecurityPolicySubjectReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicySubjectReview{}) if cast, ok := obj.(*securityapi.PodSecurityPolicySubjectReview); ok { return cast, err } @@ -32,10 +32,10 @@ type FakePodSecurityPolicySelfSubjectReviews struct { Namespace string } -var podSecurityPolicySelfSubjectReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicyselfsubjectreviews"} +var podSecurityPolicySelfSubjectReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "podsecuritypolicyselfsubjectreviews"} func (c *FakePodSecurityPolicySelfSubjectReviews) Create(inObj *securityapi.PodSecurityPolicySelfSubjectReview) (*securityapi.PodSecurityPolicySelfSubjectReview, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(podSecurityPolicySelfSubjectReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicySelfSubjectReview{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(podSecurityPolicySelfSubjectReviewsResource, c.Namespace, inObj), &securityapi.PodSecurityPolicySelfSubjectReview{}) if cast, ok := obj.(*securityapi.PodSecurityPolicySelfSubjectReview); ok { return cast, err } diff --git a/pkg/client/testclient/fake_policies.go b/pkg/client/testclient/fake_policies.go index b3a4ab6d005b..424ea59bd570 100644 --- a/pkg/client/testclient/fake_policies.go +++ b/pkg/client/testclient/fake_policies.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -16,10 +16,10 @@ type FakePolicies struct { Namespace string } -var policiesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "policies"} +var policiesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "policies"} func (c *FakePolicies) Get(name string) (*authorizationapi.Policy, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(policiesResource, c.Namespace, name), &authorizationapi.Policy{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(policiesResource, c.Namespace, name), &authorizationapi.Policy{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakePolicies) Get(name string) (*authorizationapi.Policy, error) { return obj.(*authorizationapi.Policy), err } -func (c *FakePolicies) List(opts kapi.ListOptions) (*authorizationapi.PolicyList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(policiesResource, c.Namespace, opts), &authorizationapi.PolicyList{}) +func (c *FakePolicies) List(opts metainternal.ListOptions) (*authorizationapi.PolicyList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(policiesResource, c.Namespace, opts), &authorizationapi.PolicyList{}) if obj == nil { return nil, err } @@ -37,10 +37,10 @@ func (c *FakePolicies) List(opts kapi.ListOptions) (*authorizationapi.PolicyList } func (c *FakePolicies) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(policiesResource, c.Namespace, name), &authorizationapi.Policy{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(policiesResource, c.Namespace, name), &authorizationapi.Policy{}) return err } -func (c *FakePolicies) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(policiesResource, c.Namespace, opts)) +func (c *FakePolicies) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(policiesResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_policybindings.go b/pkg/client/testclient/fake_policybindings.go index e09f77166e2b..d31b906d9c4a 100644 --- a/pkg/client/testclient/fake_policybindings.go +++ b/pkg/client/testclient/fake_policybindings.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -16,10 +16,10 @@ type FakePolicyBindings struct { Namespace string } -var policyBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "policybindings"} +var policyBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "policybindings"} func (c *FakePolicyBindings) Get(name string) (*authorizationapi.PolicyBinding, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(policyBindingsResource, c.Namespace, name), &authorizationapi.PolicyBinding{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(policyBindingsResource, c.Namespace, name), &authorizationapi.PolicyBinding{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakePolicyBindings) Get(name string) (*authorizationapi.PolicyBinding, return obj.(*authorizationapi.PolicyBinding), err } -func (c *FakePolicyBindings) List(opts kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(policyBindingsResource, c.Namespace, opts), &authorizationapi.PolicyBindingList{}) +func (c *FakePolicyBindings) List(opts metainternal.ListOptions) (*authorizationapi.PolicyBindingList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(policyBindingsResource, c.Namespace, opts), &authorizationapi.PolicyBindingList{}) if obj == nil { return nil, err } @@ -37,7 +37,7 @@ func (c *FakePolicyBindings) List(opts kapi.ListOptions) (*authorizationapi.Poli } func (c *FakePolicyBindings) Create(inObj *authorizationapi.PolicyBinding) (*authorizationapi.PolicyBinding, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(policyBindingsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(policyBindingsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -46,10 +46,10 @@ func (c *FakePolicyBindings) Create(inObj *authorizationapi.PolicyBinding) (*aut } func (c *FakePolicyBindings) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(policyBindingsResource, c.Namespace, name), &authorizationapi.PolicyBinding{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(policyBindingsResource, c.Namespace, name), &authorizationapi.PolicyBinding{}) return err } -func (c *FakePolicyBindings) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(policyBindingsResource, c.Namespace, opts)) +func (c *FakePolicyBindings) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(policyBindingsResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_projectrequests.go b/pkg/client/testclient/fake_projectrequests.go index 7371acf6a935..2f1c8a4873f4 100644 --- a/pkg/client/testclient/fake_projectrequests.go +++ b/pkg/client/testclient/fake_projectrequests.go @@ -1,9 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" projectapi "github.com/openshift/origin/pkg/project/api" ) @@ -14,19 +15,24 @@ type FakeProjectRequests struct { Fake *Fake } -var newProjectsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "newprojects"} +var newProjectsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "newprojects"} -func (c *FakeProjectRequests) List(opts kapi.ListOptions) (*unversioned.Status, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(newProjectsResource, opts), &unversioned.Status{}) +func (c *FakeProjectRequests) List(opts metainternal.ListOptions) (*metav1.Status, error) { + optsv1 := metav1.ListOptions{} + err := metainternal.Convert_internalversion_ListOptions_To_v1_ListOptions(&opts, &optsv1, nil) + if err != nil { + return nil, err + } + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(newProjectsResource, optsv1), &metav1.Status{}) if obj == nil { return nil, err } - return obj.(*unversioned.Status), err + return obj.(*metav1.Status), err } func (c *FakeProjectRequests) Create(inObj *projectapi.ProjectRequest) (*projectapi.Project, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(newProjectsResource, inObj), &projectapi.Project{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(newProjectsResource, inObj), &projectapi.Project{}) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_projects.go b/pkg/client/testclient/fake_projects.go index ee411491aaa1..f356405283f0 100644 --- a/pkg/client/testclient/fake_projects.go +++ b/pkg/client/testclient/fake_projects.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" projectapi "github.com/openshift/origin/pkg/project/api" ) @@ -15,10 +15,10 @@ type FakeProjects struct { Fake *Fake } -var projectsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "projects"} +var projectsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "projects"} func (c *FakeProjects) Get(name string) (*projectapi.Project, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(projectsResource, name), &projectapi.Project{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(projectsResource, name), &projectapi.Project{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeProjects) Get(name string) (*projectapi.Project, error) { return obj.(*projectapi.Project), err } -func (c *FakeProjects) List(opts kapi.ListOptions) (*projectapi.ProjectList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(projectsResource, opts), &projectapi.ProjectList{}) +func (c *FakeProjects) List(opts metainternal.ListOptions) (*projectapi.ProjectList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(projectsResource, opts), &projectapi.ProjectList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeProjects) List(opts kapi.ListOptions) (*projectapi.ProjectList, err } func (c *FakeProjects) Create(inObj *projectapi.Project) (*projectapi.Project, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(projectsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(projectsResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeProjects) Create(inObj *projectapi.Project) (*projectapi.Project, e } func (c *FakeProjects) Update(inObj *projectapi.Project) (*projectapi.Project, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(projectsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(projectsResource, inObj), inObj) if obj == nil { return nil, err } @@ -54,10 +54,10 @@ func (c *FakeProjects) Update(inObj *projectapi.Project) (*projectapi.Project, e } func (c *FakeProjects) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(projectsResource, name), &projectapi.Project{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(projectsResource, name), &projectapi.Project{}) return err } -func (c *FakeProjects) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(projectsResource, opts)) +func (c *FakeProjects) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(projectsResource, opts)) } diff --git a/pkg/client/testclient/fake_resourceaccessreview.go b/pkg/client/testclient/fake_resourceaccessreview.go index a9c98f2deac7..65543cbc95d2 100644 --- a/pkg/client/testclient/fake_resourceaccessreview.go +++ b/pkg/client/testclient/fake_resourceaccessreview.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -11,10 +11,10 @@ type FakeClusterResourceAccessReviews struct { Fake *Fake } -var resourceAccessReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "resourceaccessreviews"} +var resourceAccessReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "resourceaccessreviews"} func (c *FakeClusterResourceAccessReviews) Create(inObj *authorizationapi.ResourceAccessReview) (*authorizationapi.ResourceAccessReviewResponse, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(resourceAccessReviewsResource, inObj), &authorizationapi.ResourceAccessReviewResponse{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(resourceAccessReviewsResource, inObj), &authorizationapi.ResourceAccessReviewResponse{}) if cast, ok := obj.(*authorizationapi.ResourceAccessReviewResponse); ok { return cast, err } diff --git a/pkg/client/testclient/fake_rolebindingrestriction.go b/pkg/client/testclient/fake_rolebindingrestriction.go index fac33e049396..80eae8f3e37a 100644 --- a/pkg/client/testclient/fake_rolebindingrestriction.go +++ b/pkg/client/testclient/fake_rolebindingrestriction.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -17,10 +17,10 @@ type FakeRoleBindingRestrictions struct { Namespace string } -var roleBindingRestritionsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "rolebindingrestrictions"} +var roleBindingRestritionsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "rolebindingrestrictions"} func (c *FakeRoleBindingRestrictions) Get(name string) (*authorizationapi.RoleBindingRestriction, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(roleBindingRestritionsResource, c.Namespace, name), &authorizationapi.RoleBindingRestriction{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(roleBindingRestritionsResource, c.Namespace, name), &authorizationapi.RoleBindingRestriction{}) if obj == nil { return nil, err } @@ -28,8 +28,8 @@ func (c *FakeRoleBindingRestrictions) Get(name string) (*authorizationapi.RoleBi return obj.(*authorizationapi.RoleBindingRestriction), err } -func (c *FakeRoleBindingRestrictions) List(opts kapi.ListOptions) (*authorizationapi.RoleBindingRestrictionList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(roleBindingRestritionsResource, c.Namespace, opts), &authorizationapi.RoleBindingRestrictionList{}) +func (c *FakeRoleBindingRestrictions) List(opts metainternal.ListOptions) (*authorizationapi.RoleBindingRestrictionList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(roleBindingRestritionsResource, c.Namespace, opts), &authorizationapi.RoleBindingRestrictionList{}) if obj == nil { return nil, err } @@ -38,7 +38,7 @@ func (c *FakeRoleBindingRestrictions) List(opts kapi.ListOptions) (*authorizatio } func (c *FakeRoleBindingRestrictions) Create(inObj *authorizationapi.RoleBindingRestriction) (*authorizationapi.RoleBindingRestriction, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(roleBindingRestritionsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(roleBindingRestritionsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -47,7 +47,7 @@ func (c *FakeRoleBindingRestrictions) Create(inObj *authorizationapi.RoleBinding } func (c *FakeRoleBindingRestrictions) Update(inObj *authorizationapi.RoleBindingRestriction) (*authorizationapi.RoleBindingRestriction, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(roleBindingRestritionsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(roleBindingRestritionsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -55,10 +55,10 @@ func (c *FakeRoleBindingRestrictions) Update(inObj *authorizationapi.RoleBinding return obj.(*authorizationapi.RoleBindingRestriction), err } func (c *FakeRoleBindingRestrictions) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(roleBindingRestritionsResource, c.Namespace, name), &authorizationapi.RoleBindingRestriction{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(roleBindingRestritionsResource, c.Namespace, name), &authorizationapi.RoleBindingRestriction{}) return err } -func (c *FakeRoleBindingRestrictions) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(roleBindingRestritionsResource, c.Namespace, opts)) +func (c *FakeRoleBindingRestrictions) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(roleBindingRestritionsResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_rolebindings.go b/pkg/client/testclient/fake_rolebindings.go index b7df27408211..57d0916d320b 100644 --- a/pkg/client/testclient/fake_rolebindings.go +++ b/pkg/client/testclient/fake_rolebindings.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -15,10 +15,10 @@ type FakeRoleBindings struct { Namespace string } -var roleBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "rolebindings"} +var roleBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "rolebindings"} func (c *FakeRoleBindings) Get(name string) (*authorizationapi.RoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(roleBindingsResource, c.Namespace, name), &authorizationapi.RoleBinding{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(roleBindingsResource, c.Namespace, name), &authorizationapi.RoleBinding{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeRoleBindings) Get(name string) (*authorizationapi.RoleBinding, erro return obj.(*authorizationapi.RoleBinding), err } -func (c *FakeRoleBindings) List(opts kapi.ListOptions) (*authorizationapi.RoleBindingList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(roleBindingsResource, c.Namespace, opts), &authorizationapi.RoleBindingList{}) +func (c *FakeRoleBindings) List(opts metainternal.ListOptions) (*authorizationapi.RoleBindingList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(roleBindingsResource, c.Namespace, opts), &authorizationapi.RoleBindingList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeRoleBindings) List(opts kapi.ListOptions) (*authorizationapi.RoleBi } func (c *FakeRoleBindings) Create(inObj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(roleBindingsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(roleBindingsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeRoleBindings) Create(inObj *authorizationapi.RoleBinding) (*authori } func (c *FakeRoleBindings) Update(inObj *authorizationapi.RoleBinding) (*authorizationapi.RoleBinding, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(roleBindingsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(roleBindingsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -54,6 +54,6 @@ func (c *FakeRoleBindings) Update(inObj *authorizationapi.RoleBinding) (*authori } func (c *FakeRoleBindings) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(roleBindingsResource, c.Namespace, name), &authorizationapi.RoleBinding{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(roleBindingsResource, c.Namespace, name), &authorizationapi.RoleBinding{}) return err } diff --git a/pkg/client/testclient/fake_roles.go b/pkg/client/testclient/fake_roles.go index 79bdf9ce7273..65fa25dba316 100644 --- a/pkg/client/testclient/fake_roles.go +++ b/pkg/client/testclient/fake_roles.go @@ -1,9 +1,9 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -15,10 +15,10 @@ type FakeRoles struct { Namespace string } -var rolesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "roles"} +var rolesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "roles"} func (c *FakeRoles) Get(name string) (*authorizationapi.Role, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(rolesResource, c.Namespace, name), &authorizationapi.Role{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(rolesResource, c.Namespace, name), &authorizationapi.Role{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeRoles) Get(name string) (*authorizationapi.Role, error) { return obj.(*authorizationapi.Role), err } -func (c *FakeRoles) List(opts kapi.ListOptions) (*authorizationapi.RoleList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(rolesResource, c.Namespace, opts), &authorizationapi.RoleList{}) +func (c *FakeRoles) List(opts metainternal.ListOptions) (*authorizationapi.RoleList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(rolesResource, c.Namespace, opts), &authorizationapi.RoleList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeRoles) List(opts kapi.ListOptions) (*authorizationapi.RoleList, err } func (c *FakeRoles) Create(inObj *authorizationapi.Role) (*authorizationapi.Role, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(rolesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(rolesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeRoles) Create(inObj *authorizationapi.Role) (*authorizationapi.Role } func (c *FakeRoles) Update(inObj *authorizationapi.Role) (*authorizationapi.Role, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(rolesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(rolesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -54,6 +54,6 @@ func (c *FakeRoles) Update(inObj *authorizationapi.Role) (*authorizationapi.Role } func (c *FakeRoles) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(rolesResource, c.Namespace, name), &authorizationapi.Role{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(rolesResource, c.Namespace, name), &authorizationapi.Role{}) return err } diff --git a/pkg/client/testclient/fake_routes.go b/pkg/client/testclient/fake_routes.go index dad1a073b52c..e7ed958e42e9 100644 --- a/pkg/client/testclient/fake_routes.go +++ b/pkg/client/testclient/fake_routes.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" routeapi "github.com/openshift/origin/pkg/route/api" ) @@ -16,10 +16,10 @@ type FakeRoutes struct { Namespace string } -var routesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "routes"} +var routesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "routes"} func (c *FakeRoutes) Get(name string) (*routeapi.Route, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(routesResource, c.Namespace, name), &routeapi.Route{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(routesResource, c.Namespace, name), &routeapi.Route{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakeRoutes) Get(name string) (*routeapi.Route, error) { return obj.(*routeapi.Route), err } -func (c *FakeRoutes) List(opts kapi.ListOptions) (*routeapi.RouteList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(routesResource, c.Namespace, opts), &routeapi.RouteList{}) +func (c *FakeRoutes) List(opts metainternal.ListOptions) (*routeapi.RouteList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(routesResource, c.Namespace, opts), &routeapi.RouteList{}) if obj == nil { return nil, err } @@ -37,7 +37,7 @@ func (c *FakeRoutes) List(opts kapi.ListOptions) (*routeapi.RouteList, error) { } func (c *FakeRoutes) Create(inObj *routeapi.Route) (*routeapi.Route, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(routesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(routesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -46,7 +46,7 @@ func (c *FakeRoutes) Create(inObj *routeapi.Route) (*routeapi.Route, error) { } func (c *FakeRoutes) Update(inObj *routeapi.Route) (*routeapi.Route, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(routesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(routesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -55,7 +55,7 @@ func (c *FakeRoutes) Update(inObj *routeapi.Route) (*routeapi.Route, error) { } func (c *FakeRoutes) UpdateStatus(inObj *routeapi.Route) (*routeapi.Route, error) { - action := core.NewUpdateAction(routesResource, c.Namespace, inObj) + action := clientgotesting.NewUpdateAction(routesResource, c.Namespace, inObj) action.Subresource = "status" obj, err := c.Fake.Invokes(action, inObj) if obj == nil { @@ -66,10 +66,10 @@ func (c *FakeRoutes) UpdateStatus(inObj *routeapi.Route) (*routeapi.Route, error } func (c *FakeRoutes) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(routesResource, c.Namespace, name), &routeapi.Route{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(routesResource, c.Namespace, name), &routeapi.Route{}) return err } -func (c *FakeRoutes) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(routesResource, c.Namespace, opts)) +func (c *FakeRoutes) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(routesResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_selfsubjectrulesreview.go b/pkg/client/testclient/fake_selfsubjectrulesreview.go index adce47aa8425..e42cbe570ba3 100644 --- a/pkg/client/testclient/fake_selfsubjectrulesreview.go +++ b/pkg/client/testclient/fake_selfsubjectrulesreview.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,10 +12,10 @@ type FakeSelfSubjectRulesReviews struct { Namespace string } -var selfSubjectRulesReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "selfsubjectrulesreviews"} +var selfSubjectRulesReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "selfsubjectrulesreviews"} func (c *FakeSelfSubjectRulesReviews) Create(inObj *authorizationapi.SelfSubjectRulesReview) (*authorizationapi.SelfSubjectRulesReview, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(selfSubjectRulesReviewsResource, c.Namespace, inObj), &authorizationapi.SelfSubjectRulesReview{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(selfSubjectRulesReviewsResource, c.Namespace, inObj), &authorizationapi.SelfSubjectRulesReview{}) if cast, ok := obj.(*authorizationapi.SelfSubjectRulesReview); ok { return cast, err } diff --git a/pkg/client/testclient/fake_subjectaccessreview.go b/pkg/client/testclient/fake_subjectaccessreview.go index 83583d16cf5b..f2b9a9e13165 100644 --- a/pkg/client/testclient/fake_subjectaccessreview.go +++ b/pkg/client/testclient/fake_subjectaccessreview.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -14,10 +14,10 @@ type FakeClusterSubjectAccessReviews struct { Fake *Fake } -var subjectAccessReviewsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "subjectaccessreviews"} +var subjectAccessReviewsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "subjectaccessreviews"} func (c *FakeClusterSubjectAccessReviews) Create(inObj *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(subjectAccessReviewsResource, inObj), &authorizationapi.SubjectAccessReviewResponse{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(subjectAccessReviewsResource, inObj), &authorizationapi.SubjectAccessReviewResponse{}) if cast, ok := obj.(*authorizationapi.SubjectAccessReviewResponse); ok { return cast, err } diff --git a/pkg/client/testclient/fake_subjectrulesreview.go b/pkg/client/testclient/fake_subjectrulesreview.go index 89909da0af65..6fe34719a243 100644 --- a/pkg/client/testclient/fake_subjectrulesreview.go +++ b/pkg/client/testclient/fake_subjectrulesreview.go @@ -1,7 +1,7 @@ package testclient import ( - "k8s.io/kubernetes/pkg/client/testing/core" + clientgotesting "k8s.io/client-go/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -12,7 +12,7 @@ type FakeSubjectRulesReviews struct { } func (c *FakeSubjectRulesReviews) Create(inObj *authorizationapi.SubjectRulesReview) (*authorizationapi.SubjectRulesReview, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(selfSubjectRulesReviewsResource, c.Namespace, inObj), &authorizationapi.SubjectRulesReview{}) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(selfSubjectRulesReviewsResource, c.Namespace, inObj), &authorizationapi.SubjectRulesReview{}) if cast, ok := obj.(*authorizationapi.SubjectRulesReview); ok { return cast, err } diff --git a/pkg/client/testclient/fake_template_configs.go b/pkg/client/testclient/fake_template_configs.go index 603cc4e03e02..564bc0d660bd 100644 --- a/pkg/client/testclient/fake_template_configs.go +++ b/pkg/client/testclient/fake_template_configs.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" templateapi "github.com/openshift/origin/pkg/template/api" ) @@ -14,10 +14,10 @@ type FakeTemplateConfigs struct { Namespace string } -var templateConfigsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "templateconfigs"} +var templateConfigsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "templateconfigs"} func (c *FakeTemplateConfigs) Create(inObj *templateapi.Template) (*templateapi.Template, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(templateConfigsResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(templateConfigsResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } diff --git a/pkg/client/testclient/fake_templates.go b/pkg/client/testclient/fake_templates.go index cb0aeb74d7e7..4fa3b45686bc 100644 --- a/pkg/client/testclient/fake_templates.go +++ b/pkg/client/testclient/fake_templates.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" templateapi "github.com/openshift/origin/pkg/template/api" ) @@ -16,10 +16,10 @@ type FakeTemplates struct { Namespace string } -var templatesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "templates"} +var templatesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "templates"} func (c *FakeTemplates) Get(name string) (*templateapi.Template, error) { - obj, err := c.Fake.Invokes(core.NewGetAction(templatesResource, c.Namespace, name), &templateapi.Template{}) + obj, err := c.Fake.Invokes(clientgotesting.NewGetAction(templatesResource, c.Namespace, name), &templateapi.Template{}) if obj == nil { return nil, err } @@ -27,8 +27,8 @@ func (c *FakeTemplates) Get(name string) (*templateapi.Template, error) { return obj.(*templateapi.Template), err } -func (c *FakeTemplates) List(opts kapi.ListOptions) (*templateapi.TemplateList, error) { - obj, err := c.Fake.Invokes(core.NewListAction(templatesResource, c.Namespace, opts), &templateapi.TemplateList{}) +func (c *FakeTemplates) List(opts metainternal.ListOptions) (*templateapi.TemplateList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewListAction(templatesResource, c.Namespace, opts), &templateapi.TemplateList{}) if obj == nil { return nil, err } @@ -37,7 +37,7 @@ func (c *FakeTemplates) List(opts kapi.ListOptions) (*templateapi.TemplateList, } func (c *FakeTemplates) Create(inObj *templateapi.Template) (*templateapi.Template, error) { - obj, err := c.Fake.Invokes(core.NewCreateAction(templatesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewCreateAction(templatesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -46,7 +46,7 @@ func (c *FakeTemplates) Create(inObj *templateapi.Template) (*templateapi.Templa } func (c *FakeTemplates) Update(inObj *templateapi.Template) (*templateapi.Template, error) { - obj, err := c.Fake.Invokes(core.NewUpdateAction(templatesResource, c.Namespace, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewUpdateAction(templatesResource, c.Namespace, inObj), inObj) if obj == nil { return nil, err } @@ -55,10 +55,10 @@ func (c *FakeTemplates) Update(inObj *templateapi.Template) (*templateapi.Templa } func (c *FakeTemplates) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewDeleteAction(templatesResource, c.Namespace, name), &templateapi.Template{}) + _, err := c.Fake.Invokes(clientgotesting.NewDeleteAction(templatesResource, c.Namespace, name), &templateapi.Template{}) return err } -func (c *FakeTemplates) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewWatchAction(templatesResource, c.Namespace, opts)) +func (c *FakeTemplates) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewWatchAction(templatesResource, c.Namespace, opts)) } diff --git a/pkg/client/testclient/fake_useridentitymappings.go b/pkg/client/testclient/fake_useridentitymappings.go index e857fae8e08a..177d53ea8b5e 100644 --- a/pkg/client/testclient/fake_useridentitymappings.go +++ b/pkg/client/testclient/fake_useridentitymappings.go @@ -1,8 +1,8 @@ package testclient import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -13,10 +13,10 @@ type FakeUserIdentityMappings struct { Fake *Fake } -var userIdentityMappingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "useridentitymappings"} +var userIdentityMappingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "useridentitymappings"} func (c *FakeUserIdentityMappings) Get(name string) (*userapi.UserIdentityMapping, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(userIdentityMappingsResource, name), &userapi.UserIdentityMapping{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(userIdentityMappingsResource, name), &userapi.UserIdentityMapping{}) if obj == nil { return nil, err } @@ -25,7 +25,7 @@ func (c *FakeUserIdentityMappings) Get(name string) (*userapi.UserIdentityMappin } func (c *FakeUserIdentityMappings) Create(inObj *userapi.UserIdentityMapping) (*userapi.UserIdentityMapping, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(userIdentityMappingsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(userIdentityMappingsResource, inObj), inObj) if obj == nil { return nil, err } @@ -34,7 +34,7 @@ func (c *FakeUserIdentityMappings) Create(inObj *userapi.UserIdentityMapping) (* } func (c *FakeUserIdentityMappings) Update(inObj *userapi.UserIdentityMapping) (*userapi.UserIdentityMapping, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(userIdentityMappingsResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(userIdentityMappingsResource, inObj), inObj) if obj == nil { return nil, err } @@ -43,6 +43,6 @@ func (c *FakeUserIdentityMappings) Update(inObj *userapi.UserIdentityMapping) (* } func (c *FakeUserIdentityMappings) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(userIdentityMappingsResource, name), &userapi.UserIdentityMapping{}) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(userIdentityMappingsResource, name), &userapi.UserIdentityMapping{}) return err } diff --git a/pkg/client/testclient/fake_users.go b/pkg/client/testclient/fake_users.go index a95982911183..62a36ff489db 100644 --- a/pkg/client/testclient/fake_users.go +++ b/pkg/client/testclient/fake_users.go @@ -1,10 +1,10 @@ package testclient import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -15,10 +15,10 @@ type FakeUsers struct { Fake *Fake } -var usersResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "users"} +var usersResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "users"} func (c *FakeUsers) Get(name string) (*userapi.User, error) { - obj, err := c.Fake.Invokes(core.NewRootGetAction(usersResource, name), &userapi.User{}) + obj, err := c.Fake.Invokes(clientgotesting.NewRootGetAction(usersResource, name), &userapi.User{}) if obj == nil { return nil, err } @@ -26,8 +26,8 @@ func (c *FakeUsers) Get(name string) (*userapi.User, error) { return obj.(*userapi.User), err } -func (c *FakeUsers) List(opts kapi.ListOptions) (*userapi.UserList, error) { - obj, err := c.Fake.Invokes(core.NewRootListAction(usersResource, opts), &userapi.UserList{}) +func (c *FakeUsers) List(opts metainternal.ListOptions) (*userapi.UserList, error) { + obj, err := c.Fake.Invokes(clientgotesting.NewRootListAction(usersResource, opts), &userapi.UserList{}) if obj == nil { return nil, err } @@ -36,7 +36,7 @@ func (c *FakeUsers) List(opts kapi.ListOptions) (*userapi.UserList, error) { } func (c *FakeUsers) Create(inObj *userapi.User) (*userapi.User, error) { - obj, err := c.Fake.Invokes(core.NewRootCreateAction(usersResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootCreateAction(usersResource, inObj), inObj) if obj == nil { return nil, err } @@ -45,7 +45,7 @@ func (c *FakeUsers) Create(inObj *userapi.User) (*userapi.User, error) { } func (c *FakeUsers) Update(inObj *userapi.User) (*userapi.User, error) { - obj, err := c.Fake.Invokes(core.NewRootUpdateAction(usersResource, inObj), inObj) + obj, err := c.Fake.Invokes(clientgotesting.NewRootUpdateAction(usersResource, inObj), inObj) if obj == nil { return nil, err } @@ -54,10 +54,10 @@ func (c *FakeUsers) Update(inObj *userapi.User) (*userapi.User, error) { } func (c *FakeUsers) Delete(name string) error { - _, err := c.Fake.Invokes(core.NewRootDeleteAction(usersResource, name), nil) + _, err := c.Fake.Invokes(clientgotesting.NewRootDeleteAction(usersResource, name), nil) return err } -func (c *FakeUsers) Watch(opts kapi.ListOptions) (watch.Interface, error) { - return c.Fake.InvokesWatch(core.NewRootWatchAction(usersResource, opts)) +func (c *FakeUsers) Watch(opts metainternal.ListOptions) (watch.Interface, error) { + return c.Fake.InvokesWatch(clientgotesting.NewRootWatchAction(usersResource, opts)) } diff --git a/pkg/client/testclient/fixture.go b/pkg/client/testclient/fixture.go index 5936976d377b..8ef07e31a5b6 100644 --- a/pkg/client/testclient/fixture.go +++ b/pkg/client/testclient/fixture.go @@ -3,10 +3,10 @@ package testclient import ( "io/ioutil" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/yaml" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/yaml" + kapi "k8s.io/kubernetes/pkg/api" ) // ReadObjectsFromPath reads objects from the specified file for testing. @@ -54,7 +54,7 @@ func setNamespace(typer runtime.ObjectTyper, obj runtime.Object, namespace strin if err != nil { return err } - group, err := registered.Group(gvks[0].Group) + group, err := kapi.Registry.Group(gvks[0].Group) if err != nil { return err } diff --git a/pkg/client/testclient/testclient.go b/pkg/client/testclient/testclient.go index 670df820cc79..c418a0298e9e 100644 --- a/pkg/client/testclient/testclient.go +++ b/pkg/client/testclient/testclient.go @@ -1,10 +1,10 @@ package testclient import ( + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" ) @@ -19,11 +19,11 @@ func NewFixtureClients(objs ...runtime.Object) (client.Interface, kclientset.Int func NewErrorClients(err error) (client.Interface, kclientset.Interface) { oc := &Fake{} - oc.PrependReactor("*", "*", func(action core.Action) (bool, runtime.Object, error) { + oc.PrependReactor("*", "*", func(action clientgotesting.Action) (bool, runtime.Object, error) { return true, nil, err }) kc := &fake.Clientset{} - kc.PrependReactor("*", "*", func(action core.Action) (bool, runtime.Object, error) { + kc.PrependReactor("*", "*", func(action clientgotesting.Action) (bool, runtime.Object, error) { return true, nil, err }) return oc, kc diff --git a/pkg/client/testclient/testclient_test.go b/pkg/client/testclient/testclient_test.go index 5c066d770817..c37b9cf0fe41 100644 --- a/pkg/client/testclient/testclient_test.go +++ b/pkg/client/testclient/testclient_test.go @@ -3,8 +3,9 @@ package testclient import ( "testing" + "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -15,7 +16,7 @@ func TestNewClient(t *testing.T) { t.Fatal(err) } oc, _ := NewFixtureClients(o...) - list, err := oc.DeploymentConfigs("test").List(kapi.ListOptions{}) + list, err := oc.DeploymentConfigs("test").List(metainternal.ListOptions{}) if err != nil { t.Fatal(err) } @@ -24,7 +25,7 @@ func TestNewClient(t *testing.T) { } // same result - list, err = oc.DeploymentConfigs("test").List(kapi.ListOptions{}) + list, err = oc.DeploymentConfigs("test").List(metainternal.ListOptions{}) if err != nil { t.Fatal(err) } @@ -36,13 +37,13 @@ func TestNewClient(t *testing.T) { func TestErrors(t *testing.T) { oc, _ := NewErrorClients(errors.NewNotFound(deployapi.Resource("DeploymentConfigList"), "")) - _, err := oc.DeploymentConfigs("test").List(kapi.ListOptions{}) + _, err := oc.DeploymentConfigs("test").List(metainternal.ListOptions{}) if !errors.IsNotFound(err) { t.Fatalf("unexpected error: %v", err) } oc, _ = NewErrorClients(errors.NewForbidden(deployapi.Resource("DeploymentConfigList"), "", nil)) - _, err = oc.DeploymentConfigs("test").List(kapi.ListOptions{}) + _, err = oc.DeploymentConfigs("test").List(metainternal.ListOptions{}) if !errors.IsForbidden(err) { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/client/users.go b/pkg/client/users.go index 5149c5287b9c..a0e0b5e0cc31 100644 --- a/pkg/client/users.go +++ b/pkg/client/users.go @@ -1,8 +1,9 @@ package client import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" userapi "github.com/openshift/origin/pkg/user/api" ) @@ -14,12 +15,12 @@ type UsersInterface interface { // UserInterface exposes methods on user resources. type UserInterface interface { - List(opts kapi.ListOptions) (*userapi.UserList, error) + List(opts metainternal.ListOptions) (*userapi.UserList, error) Get(name string) (*userapi.User, error) Create(user *userapi.User) (*userapi.User, error) Update(user *userapi.User) (*userapi.User, error) Delete(name string) error - Watch(opts kapi.ListOptions) (watch.Interface, error) + Watch(opts metainternal.ListOptions) (watch.Interface, error) } // users implements UserInterface interface @@ -35,7 +36,7 @@ func newUsers(c *Client) *users { } // List returns a list of users that match the label and field selectors. -func (c *users) List(opts kapi.ListOptions) (result *userapi.UserList, err error) { +func (c *users) List(opts metainternal.ListOptions) (result *userapi.UserList, err error) { result = &userapi.UserList{} err = c.r.Get(). Resource("users"). @@ -72,7 +73,7 @@ func (c *users) Delete(name string) (err error) { } // Watch returns a watch.Interface that watches the requested users. -func (c *users) Watch(opts kapi.ListOptions) (watch.Interface, error) { +func (c *users) Watch(opts metainternal.ListOptions) (watch.Interface, error) { return c.r.Get(). Prefix("watch"). Resource("users"). diff --git a/pkg/cmd/admin/diagnostics/client.go b/pkg/cmd/admin/diagnostics/client.go index 71bc550aa0c0..4fb1801bb3dc 100644 --- a/pkg/cmd/admin/diagnostics/client.go +++ b/pkg/cmd/admin/diagnostics/client.go @@ -3,8 +3,8 @@ package diagnostics import ( "fmt" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" clientdiags "github.com/openshift/origin/pkg/diagnostics/client" networkdiags "github.com/openshift/origin/pkg/diagnostics/network" diff --git a/pkg/cmd/admin/diagnostics/cluster.go b/pkg/cmd/admin/diagnostics/cluster.go index 83a9de67de8c..a9089ffc2572 100644 --- a/pkg/cmd/admin/diagnostics/cluster.go +++ b/pkg/cmd/admin/diagnostics/cluster.go @@ -5,10 +5,10 @@ import ( "regexp" "strings" + "k8s.io/apimachinery/pkg/util/sets" + clientcmd "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - clientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/admin/diagnostics/config.go b/pkg/cmd/admin/diagnostics/config.go index 9317eb3131be..d8262122cdcb 100644 --- a/pkg/cmd/admin/diagnostics/config.go +++ b/pkg/cmd/admin/diagnostics/config.go @@ -3,7 +3,7 @@ package diagnostics import ( "errors" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/cmd/cli/config" clientdiagnostics "github.com/openshift/origin/pkg/diagnostics/client" diff --git a/pkg/cmd/admin/diagnostics/diagnostics.go b/pkg/cmd/admin/diagnostics/diagnostics.go index b3fa46987c4a..ccb557de75b8 100644 --- a/pkg/cmd/admin/diagnostics/diagnostics.go +++ b/pkg/cmd/admin/diagnostics/diagnostics.go @@ -11,9 +11,9 @@ import ( "github.com/spf13/cobra" flag "github.com/spf13/pflag" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/admin/diagnostics/options" "github.com/openshift/origin/pkg/cmd/cli/config" diff --git a/pkg/cmd/admin/diagnostics/host.go b/pkg/cmd/admin/diagnostics/host.go index 18cd0be5baf9..adad24282325 100644 --- a/pkg/cmd/admin/diagnostics/host.go +++ b/pkg/cmd/admin/diagnostics/host.go @@ -3,7 +3,7 @@ package diagnostics import ( "fmt" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" hostdiags "github.com/openshift/origin/pkg/diagnostics/host" systemddiags "github.com/openshift/origin/pkg/diagnostics/systemd" diff --git a/pkg/cmd/admin/diagnostics/network_pod.go b/pkg/cmd/admin/diagnostics/network_pod.go index c3c697cfaae9..4ee73878febf 100644 --- a/pkg/cmd/admin/diagnostics/network_pod.go +++ b/pkg/cmd/admin/diagnostics/network_pod.go @@ -9,9 +9,9 @@ import ( "github.com/spf13/cobra" flag "github.com/spf13/pflag" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/admin/diagnostics/options" "github.com/openshift/origin/pkg/cmd/admin/diagnostics/util" diff --git a/pkg/cmd/admin/diagnostics/options/flaginfo.go b/pkg/cmd/admin/diagnostics/options/flaginfo.go index 181754ae1cb5..daf5e160d5b1 100644 --- a/pkg/cmd/admin/diagnostics/options/flaginfo.go +++ b/pkg/cmd/admin/diagnostics/options/flaginfo.go @@ -4,7 +4,7 @@ import ( "strconv" "github.com/spf13/pflag" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + kclientcmd "k8s.io/client-go/tools/clientcmd" ) // FlagInfos serve as a customizable intermediary between the command flags and diff --git a/pkg/cmd/admin/diagnostics/pod.go b/pkg/cmd/admin/diagnostics/pod.go index 53932c8573d2..eb8d6ee9c3be 100644 --- a/pkg/cmd/admin/diagnostics/pod.go +++ b/pkg/cmd/admin/diagnostics/pod.go @@ -8,9 +8,9 @@ import ( "github.com/spf13/cobra" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/admin/diagnostics/options" "github.com/openshift/origin/pkg/cmd/admin/diagnostics/util" diff --git a/pkg/cmd/admin/diagnostics/util/util.go b/pkg/cmd/admin/diagnostics/util/util.go index 24785ff9202d..436c59f70981 100644 --- a/pkg/cmd/admin/diagnostics/util/util.go +++ b/pkg/cmd/admin/diagnostics/util/util.go @@ -4,7 +4,7 @@ import ( "fmt" "runtime/debug" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/diagnostics/log" "github.com/openshift/origin/pkg/diagnostics/types" diff --git a/pkg/cmd/admin/groups/changemembership.go b/pkg/cmd/admin/groups/changemembership.go index ec532f2f2f7e..d53d5de4e18b 100644 --- a/pkg/cmd/admin/groups/changemembership.go +++ b/pkg/cmd/admin/groups/changemembership.go @@ -5,8 +5,9 @@ import ( "fmt" "io" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/spf13/cobra" @@ -106,7 +107,7 @@ func (o *GroupModificationOptions) Complete(f *clientcmd.Factory, args []string) } func (o *GroupModificationOptions) AddUsers() error { - group, err := o.GroupClient.Get(o.Group) + group, err := o.GroupClient.Get(o.Group, metav1.GetOptions{}) if err != nil { return err } @@ -125,7 +126,7 @@ func (o *GroupModificationOptions) AddUsers() error { } func (o *GroupModificationOptions) RemoveUsers() error { - group, err := o.GroupClient.Get(o.Group) + group, err := o.GroupClient.Get(o.Group, metav1.GetOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/groups/examples/examples_test.go b/pkg/cmd/admin/groups/examples/examples_test.go index 66b09c66b4b9..fe906ad83e1b 100644 --- a/pkg/cmd/admin/groups/examples/examples_test.go +++ b/pkg/cmd/admin/groups/examples/examples_test.go @@ -4,8 +4,8 @@ import ( "io/ioutil" "testing" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/yaml" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/yaml" "github.com/openshift/origin/pkg/cmd/server/api" _ "github.com/openshift/origin/pkg/cmd/server/api/install" diff --git a/pkg/cmd/admin/groups/new.go b/pkg/cmd/admin/groups/new.go index 033cb9a04f32..98f1d7f9a331 100644 --- a/pkg/cmd/admin/groups/new.go +++ b/pkg/cmd/admin/groups/new.go @@ -5,10 +5,10 @@ import ( "fmt" "io" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/spf13/cobra" diff --git a/pkg/cmd/admin/groups/sync/ad/augmented_ldapinterface.go b/pkg/cmd/admin/groups/sync/ad/augmented_ldapinterface.go index 19f401029533..1e26769911b9 100644 --- a/pkg/cmd/admin/groups/sync/ad/augmented_ldapinterface.go +++ b/pkg/cmd/admin/groups/sync/ad/augmented_ldapinterface.go @@ -3,7 +3,7 @@ package ad import ( "gopkg.in/ldap.v2" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" diff --git a/pkg/cmd/admin/groups/sync/ad/ldapinterface.go b/pkg/cmd/admin/groups/sync/ad/ldapinterface.go index ee2475b0a03a..59c7245fde10 100644 --- a/pkg/cmd/admin/groups/sync/ad/ldapinterface.go +++ b/pkg/cmd/admin/groups/sync/ad/ldapinterface.go @@ -3,7 +3,7 @@ package ad import ( "gopkg.in/ldap.v2" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" diff --git a/pkg/cmd/admin/groups/sync/cli/prune.go b/pkg/cmd/admin/groups/sync/cli/prune.go index 993532930c7b..aebe93ba1c24 100644 --- a/pkg/cmd/admin/groups/sync/cli/prune.go +++ b/pkg/cmd/admin/groups/sync/cli/prune.go @@ -8,9 +8,9 @@ import ( "github.com/spf13/cobra" + kerrs "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/validation/field" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kerrs "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" diff --git a/pkg/cmd/admin/groups/sync/cli/sync.go b/pkg/cmd/admin/groups/sync/cli/sync.go index 1e00df887755..30020e51cbae 100644 --- a/pkg/cmd/admin/groups/sync/cli/sync.go +++ b/pkg/cmd/admin/groups/sync/cli/sync.go @@ -10,13 +10,13 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" + kerrs "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + kyaml "k8s.io/apimachinery/pkg/util/yaml" kapi "k8s.io/kubernetes/pkg/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" - kerrs "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" - kyaml "k8s.io/kubernetes/pkg/util/yaml" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" diff --git a/pkg/cmd/admin/groups/sync/grouplister.go b/pkg/cmd/admin/groups/sync/grouplister.go index 2551e7da8b9d..93e33963633a 100644 --- a/pkg/cmd/admin/groups/sync/grouplister.go +++ b/pkg/cmd/admin/groups/sync/grouplister.go @@ -4,9 +4,9 @@ import ( "fmt" "net" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/auth/ldaputil" osclient "github.com/openshift/origin/pkg/client" @@ -41,7 +41,7 @@ func (l *allOpenShiftGroupLister) ListGroups() ([]string, error) { return nil, err } hostSelector := labels.Set(map[string]string{ldaputil.LDAPHostLabel: host}).AsSelector() - allGroups, err := l.client.List(kapi.ListOptions{LabelSelector: hostSelector}) + allGroups, err := l.client.List(metav1.ListOptions{LabelSelector: hostSelector.String()}) if err != nil { return nil, err } @@ -131,7 +131,7 @@ func (l *openshiftGroupLister) ListGroups() ([]string, error) { continue } - group, err := l.client.Get(name) + group, err := l.client.Get(name, metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/cmd/admin/groups/sync/grouplister_test.go b/pkg/cmd/admin/groups/sync/grouplister_test.go index 7eefa8c81e92..f17a56ac5c16 100644 --- a/pkg/cmd/admin/groups/sync/grouplister_test.go +++ b/pkg/cmd/admin/groups/sync/grouplister_test.go @@ -5,9 +5,9 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/client/testclient" @@ -24,7 +24,7 @@ func TestListAllOpenShiftGroups(t *testing.T) { }{ "good": { startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "alpha", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alpha-uid", @@ -35,7 +35,7 @@ func TestListAllOpenShiftGroups(t *testing.T) { }, "no url annotation": { startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "alpha", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ldaputil.LDAPUIDAnnotation: "alpha-uid"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, }, @@ -43,7 +43,7 @@ func TestListAllOpenShiftGroups(t *testing.T) { }, "no uid annotation": { startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "alpha", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, }, @@ -51,13 +51,13 @@ func TestListAllOpenShiftGroups(t *testing.T) { }, "no match: different port": { startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "alpha", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port2", ldaputil.LDAPUIDAnnotation: "alpha-uid", }, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "beta", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "beta", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "beta-uid", @@ -68,13 +68,13 @@ func TestListAllOpenShiftGroups(t *testing.T) { }, "blacklist": { startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "alpha", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alpha-uid", }, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "beta", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "beta", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "beta-uid", @@ -111,7 +111,7 @@ func TestListAllOpenShiftGroups(t *testing.T) { func TestListAllOpenShiftGroupsListErr(t *testing.T) { listFailClient := testclient.NewSimpleFake() - listFailClient.PrependReactor("list", "groups", func(action core.Action) (bool, runtime.Object, error) { + listFailClient.PrependReactor("list", "groups", func(action clientgotesting.Action) (bool, runtime.Object, error) { return true, nil, errors.New("fail") }) @@ -139,7 +139,7 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { }{ "good": { startingGroups: []*userapi.Group{ - {ObjectMeta: kapi.ObjectMeta{Name: "alpha", + {ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alpha-uid", @@ -151,7 +151,7 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { }, "no url annotation": { startingGroups: []*userapi.Group{ - {ObjectMeta: kapi.ObjectMeta{Name: "alpha", + {ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ldaputil.LDAPUIDAnnotation: "alpha-uid"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, }, @@ -160,7 +160,7 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { }, "no uid annotation": { startingGroups: []*userapi.Group{ - {ObjectMeta: kapi.ObjectMeta{Name: "alpha", + {ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, }, @@ -169,7 +169,7 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { }, "no match: different port": { startingGroups: []*userapi.Group{ - {ObjectMeta: kapi.ObjectMeta{Name: "alpha", + {ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port2", ldaputil.LDAPUIDAnnotation: "alpha-uid", @@ -181,13 +181,13 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { }, "blacklist": { startingGroups: []*userapi.Group{ - {ObjectMeta: kapi.ObjectMeta{Name: "alpha", + {ObjectMeta: metav1.ObjectMeta{Name: "alpha", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alpha-uid", }, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}}, - {ObjectMeta: kapi.ObjectMeta{Name: "beta", + {ObjectMeta: metav1.ObjectMeta{Name: "beta", Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "beta-uid", @@ -202,12 +202,12 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { for name, testCase := range testCases { fakeClient := testclient.NewSimpleFake() - fakeClient.PrependReactor("get", "groups", func(action core.Action) (bool, runtime.Object, error) { + fakeClient.PrependReactor("get", "groups", func(action clientgotesting.Action) (bool, runtime.Object, error) { groups := map[string]*userapi.Group{} for _, group := range testCase.startingGroups { groups[group.Name] = group } - if group, exists := groups[action.(core.GetAction).GetName()]; exists { + if group, exists := groups[action.(clientgotesting.GetAction).GetName()]; exists { return true, group, nil } return false, nil, nil @@ -235,7 +235,7 @@ func TestListWhitelistOpenShiftGroups(t *testing.T) { func TestListOpenShiftGroupsListErr(t *testing.T) { listFailClient := testclient.NewSimpleFake() - listFailClient.PrependReactor("get", "groups", func(action core.Action) (bool, runtime.Object, error) { + listFailClient.PrependReactor("get", "groups", func(action clientgotesting.Action) (bool, runtime.Object, error) { return true, nil, errors.New("fail") }) diff --git a/pkg/cmd/admin/groups/sync/groupnamemapper.go b/pkg/cmd/admin/groups/sync/groupnamemapper.go index ea7572e45555..c72a8f398f39 100644 --- a/pkg/cmd/admin/groups/sync/groupnamemapper.go +++ b/pkg/cmd/admin/groups/sync/groupnamemapper.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/cmd/admin/groups/sync/interfaces" diff --git a/pkg/cmd/admin/groups/sync/grouppruner_test.go b/pkg/cmd/admin/groups/sync/grouppruner_test.go index 41233cdc798e..8bcecb1f5cc7 100644 --- a/pkg/cmd/admin/groups/sync/grouppruner_test.go +++ b/pkg/cmd/admin/groups/sync/grouppruner_test.go @@ -6,9 +6,9 @@ import ( "io/ioutil" "testing" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/cmd/admin/groups/sync/interfaces" @@ -64,8 +64,8 @@ func TestLocateFails(t *testing.T) { func TestDeleteFails(t *testing.T) { testGroupPruner, tc := newTestPruner() deleteErr := fmt.Errorf("failed to delete group: %s", "os"+Group1UID) - tc.PrependReactor("delete", "groups", func(action core.Action) (handled bool, ret runtime.Object, err error) { - deleteAction := action.(core.DeleteAction) + tc.PrependReactor("delete", "groups", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + deleteAction := action.(clientgotesting.DeleteAction) if deleteAction.GetName() == "os"+Group1UID { return true, nil, deleteErr } @@ -99,7 +99,7 @@ func extractDeletedGroups(tc *testclient.Fake) []string { ret := []string{} for _, genericAction := range tc.Actions() { switch action := genericAction.(type) { - case core.DeleteAction: + case clientgotesting.DeleteAction: ret = append(ret, action.GetName()) } } @@ -109,7 +109,7 @@ func extractDeletedGroups(tc *testclient.Fake) []string { func newTestPruner() (*LDAPGroupPruner, *testclient.Fake) { tc := testclient.NewSimpleFake() - tc.PrependReactor("delete", "groups", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.PrependReactor("delete", "groups", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, nil }) diff --git a/pkg/cmd/admin/groups/sync/groupsyncer.go b/pkg/cmd/admin/groups/sync/groupsyncer.go index 3a6a03d837e4..57b3b849bf85 100644 --- a/pkg/cmd/admin/groups/sync/groupsyncer.go +++ b/pkg/cmd/admin/groups/sync/groupsyncer.go @@ -9,7 +9,8 @@ import ( "github.com/golang/glog" "gopkg.in/ldap.v2" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/client" @@ -140,7 +141,7 @@ func (s *LDAPGroupSyncer) makeOpenShiftGroup(ldapGroupUID string, usernames []st return nil, err } - group, err := s.GroupClient.Get(groupName) + group, err := s.GroupClient.Get(groupName, metav1.GetOptions{}) if kapierrors.IsNotFound(err) { group = &userapi.Group{} group.Name = groupName diff --git a/pkg/cmd/admin/groups/sync/groupsyncer_test.go b/pkg/cmd/admin/groups/sync/groupsyncer_test.go index 8a93ff9f6106..0f4c6278024c 100644 --- a/pkg/cmd/admin/groups/sync/groupsyncer_test.go +++ b/pkg/cmd/admin/groups/sync/groupsyncer_test.go @@ -9,9 +9,10 @@ import ( "testing" "gopkg.in/ldap.v2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/client/testclient" @@ -45,7 +46,7 @@ func TestMakeOpenShiftGroup(t *testing.T) { "good": { ldapGroupUID: "alfa", usernames: []string{"valerie"}, - expectedGroup: &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + expectedGroup: &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alfa"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}, Users: []string{"valerie"}}, @@ -53,12 +54,12 @@ func TestMakeOpenShiftGroup(t *testing.T) { "replaced good": { ldapGroupUID: "alfa", usernames: []string{"valerie"}, - expectedGroup: &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + expectedGroup: &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alfa"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}, Users: []string{"valerie"}}, startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "alfa"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}, Users: []string{"other-user"}}, @@ -68,7 +69,7 @@ func TestMakeOpenShiftGroup(t *testing.T) { ldapGroupUID: "alfa", usernames: []string{"valerie"}, startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port", ldaputil.LDAPUIDAnnotation: "bravo"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}, Users: []string{"other-user"}}, @@ -79,7 +80,7 @@ func TestMakeOpenShiftGroup(t *testing.T) { ldapGroupUID: "alfa", usernames: []string{"valerie"}, startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "bad-host:port", ldaputil.LDAPUIDAnnotation: "alfa"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "bad-host"}}, Users: []string{"other-user"}}, @@ -90,7 +91,7 @@ func TestMakeOpenShiftGroup(t *testing.T) { ldapGroupUID: "alfa", usernames: []string{"valerie"}, startingGroups: []runtime.Object{ - &userapi.Group{ObjectMeta: kapi.ObjectMeta{Name: "zulu", + &userapi.Group{ObjectMeta: metav1.ObjectMeta{Name: "zulu", Annotations: map[string]string{ldaputil.LDAPURLAnnotation: "test-host:port2", ldaputil.LDAPUIDAnnotation: "alfa"}, Labels: map[string]string{ldaputil.LDAPHostLabel: "test-host"}}, Users: []string{"other-user"}}, @@ -258,9 +259,9 @@ func extractActualGroups(tc *testclient.Fake) []*userapi.Group { ret := []*userapi.Group{} for _, genericAction := range tc.Actions() { switch action := genericAction.(type) { - case core.CreateAction: + case clientgotesting.CreateAction: ret = append(ret, action.GetObject().(*userapi.Group)) - case core.UpdateAction: + case clientgotesting.UpdateAction: ret = append(ret, action.GetObject().(*userapi.Group)) } } @@ -271,7 +272,7 @@ func extractActualGroups(tc *testclient.Fake) []*userapi.Group { func newDefaultOpenShiftGroups(host string) []*userapi.Group { return []*userapi.Group{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "os" + Group1UID, Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: host, @@ -284,7 +285,7 @@ func newDefaultOpenShiftGroups(host string) []*userapi.Group { Users: []string{Member1UID, Member2UID}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "os" + Group2UID, Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: host, @@ -297,7 +298,7 @@ func newDefaultOpenShiftGroups(host string) []*userapi.Group { Users: []string{Member2UID, Member3UID}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "os" + Group3UID, Annotations: map[string]string{ ldaputil.LDAPURLAnnotation: host, @@ -315,12 +316,12 @@ func newDefaultOpenShiftGroups(host string) []*userapi.Group { func newTestSyncer() (*LDAPGroupSyncer, *testclient.Fake) { tc := testclient.NewSimpleFake() - tc.PrependReactor("create", "groups", func(action core.Action) (handled bool, ret runtime.Object, err error) { - createAction := action.(core.CreateAction) + tc.PrependReactor("create", "groups", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + createAction := action.(clientgotesting.CreateAction) return true, createAction.GetObject(), nil }) - tc.PrependReactor("update", "groups", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updateAction := action.(core.UpdateAction) + tc.PrependReactor("update", "groups", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updateAction := action.(clientgotesting.UpdateAction) return true, updateAction.GetObject(), nil }) diff --git a/pkg/cmd/admin/groups/sync/rfc2307/ldapinterface.go b/pkg/cmd/admin/groups/sync/rfc2307/ldapinterface.go index 450453d6b0b6..764f30d434a5 100644 --- a/pkg/cmd/admin/groups/sync/rfc2307/ldapinterface.go +++ b/pkg/cmd/admin/groups/sync/rfc2307/ldapinterface.go @@ -5,7 +5,7 @@ import ( "gopkg.in/ldap.v2" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/auth/ldaputil/ldapclient" diff --git a/pkg/cmd/admin/migrate/images/imagerefs.go b/pkg/cmd/admin/migrate/images/imagerefs.go index 9adc0286ade1..3979853fc53a 100644 --- a/pkg/cmd/admin/migrate/images/imagerefs.go +++ b/pkg/cmd/admin/migrate/images/imagerefs.go @@ -9,11 +9,11 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/credentialprovider" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/admin/migrate/images/imagerefs_test.go b/pkg/cmd/admin/migrate/images/imagerefs_test.go index 8b8ea9dc9cae..41d348adbb68 100644 --- a/pkg/cmd/admin/migrate/images/imagerefs_test.go +++ b/pkg/cmd/admin/migrate/images/imagerefs_test.go @@ -3,11 +3,11 @@ package images import ( "testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" kbatch "k8s.io/kubernetes/pkg/apis/batch" kextensions "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/admin/migrate/migrator.go b/pkg/cmd/admin/migrate/migrator.go index b9ab532dda3f..099cff3b94f3 100644 --- a/pkg/cmd/admin/migrate/migrator.go +++ b/pkg/cmd/admin/migrate/migrator.go @@ -8,12 +8,12 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/util/sets" cmdutil "github.com/openshift/origin/pkg/cmd/util" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -52,7 +52,7 @@ type ResourceOptions struct { ToKey string OverlappingResources []sets.String - DefaultExcludes []unversioned.GroupResource + DefaultExcludes []schema.GroupResource Builder *resource.Builder SaveFn MigrateActionFunc @@ -440,7 +440,7 @@ func (t *migrateTracker) try(info *resource.Info) (attemptResult, error) { } if canRetry(err) { if t.retries > 0 { - if glog.V(1) && err != ErrRecalculate { + if bool(glog.V(1)) && err != ErrRecalculate { t.report("retry:", info, err) } result, err := t.try(info) diff --git a/pkg/cmd/admin/migrate/storage/storage.go b/pkg/cmd/admin/migrate/storage/storage.go index ce2472bc630a..cf819c5e7719 100644 --- a/pkg/cmd/admin/migrate/storage/storage.go +++ b/pkg/cmd/admin/migrate/storage/storage.go @@ -7,12 +7,12 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/admin/migrate" "github.com/openshift/origin/pkg/cmd/templates" @@ -67,7 +67,7 @@ func NewCmdMigrateAPIStorage(name, fullName string, f *clientcmd.Factory, in io. ErrOut: errout, Include: []string{"*"}, - DefaultExcludes: []unversioned.GroupResource{ + DefaultExcludes: []schema.GroupResource{ // openshift resources: {Resource: "appliedclusterresourcequotas"}, {Resource: "imagestreamimages"}, {Resource: "imagestreamtags"}, {Resource: "imagestreammappings"}, {Resource: "imagestreamimports"}, diff --git a/pkg/cmd/admin/network/isolate_projects.go b/pkg/cmd/admin/network/isolate_projects.go index 23443ce6db77..66b536320fec 100644 --- a/pkg/cmd/admin/network/isolate_projects.go +++ b/pkg/cmd/admin/network/isolate_projects.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/util/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/admin/network/join_projects.go b/pkg/cmd/admin/network/join_projects.go index 3ee1ecae0705..860cab594c17 100644 --- a/pkg/cmd/admin/network/join_projects.go +++ b/pkg/cmd/admin/network/join_projects.go @@ -7,8 +7,8 @@ import ( "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/util/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/admin/network/make_projects_global.go b/pkg/cmd/admin/network/make_projects_global.go index 5c2c4432b2f1..28c90dc7d8c2 100644 --- a/pkg/cmd/admin/network/make_projects_global.go +++ b/pkg/cmd/admin/network/make_projects_global.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/util/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/admin/network/project_options.go b/pkg/cmd/admin/network/project_options.go index 1b04e082ee46..e57c6a1da3c6 100644 --- a/pkg/cmd/admin/network/project_options.go +++ b/pkg/cmd/admin/network/project_options.go @@ -10,16 +10,17 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" osclient "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -85,7 +86,7 @@ func (p *ProjectOptions) Validate() error { errList = append(errList, errors.New("must provide --selector= or projects")) } - clusterNetwork, err := p.Oclient.ClusterNetwork().Get(sdnapi.ClusterNetworkDefault) + clusterNetwork, err := p.Oclient.ClusterNetwork().Get(sdnapi.ClusterNetworkDefault, metav1.GetOptions{}) if err != nil { if kapierrors.IsNotFound(err) { errList = append(errList, errors.New("Managing pod network is only supported for openshift multitenant network plugin")) @@ -154,7 +155,7 @@ func (p *ProjectOptions) GetProjects() ([]*api.Project, error) { func (p *ProjectOptions) UpdatePodNetwork(nsName string, action sdnapi.PodNetworkAction, args string) error { // Get corresponding NetNamespace for given namespace - netns, err := p.Oclient.NetNamespaces().Get(nsName) + netns, err := p.Oclient.NetNamespaces().Get(nsName, metav1.GetOptions{}) if err != nil { return err } @@ -175,7 +176,7 @@ func (p *ProjectOptions) UpdatePodNetwork(nsName string, action sdnapi.PodNetwor Factor: 1.1, } return wait.ExponentialBackoff(backoff, func() (bool, error) { - updatedNetNs, err := p.Oclient.NetNamespaces().Get(netns.NetName) + updatedNetNs, err := p.Oclient.NetNamespaces().Get(netns.NetName, metav1.GetOptions{}) if err != nil { return false, err } diff --git a/pkg/cmd/admin/node/evacuate.go b/pkg/cmd/admin/node/evacuate.go index b1519a51c188..1f2553118c3a 100644 --- a/pkg/cmd/admin/node/evacuate.go +++ b/pkg/cmd/admin/node/evacuate.go @@ -6,11 +6,12 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + kerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - kerrors "k8s.io/kubernetes/pkg/util/errors" ) const ( @@ -85,7 +86,7 @@ func (e *EvacuateOptions) RunEvacuate(node *kapi.Node) error { fieldSelector := fields.Set{GetPodHostFieldLabel(node.TypeMeta.APIVersion): node.ObjectMeta.Name}.AsSelector() // Filter all pods that satisfies pod label selector and belongs to the given node - pods, err := e.Options.KubeClient.Core().Pods(kapi.NamespaceAll).List(kapi.ListOptions{LabelSelector: labelSelector, FieldSelector: fieldSelector}) + pods, err := e.Options.KubeClient.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}) if err != nil { return err } @@ -93,27 +94,27 @@ func (e *EvacuateOptions) RunEvacuate(node *kapi.Node) error { fmt.Fprint(e.Options.ErrWriter, "\nNo pods found on node: ", node.ObjectMeta.Name, "\n\n") return nil } - rcs, err := e.Options.KubeClient.Core().ReplicationControllers(kapi.NamespaceAll).List(kapi.ListOptions{}) + rcs, err := e.Options.KubeClient.Core().ReplicationControllers(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } - rss, err := e.Options.KubeClient.Extensions().ReplicaSets(kapi.NamespaceAll).List(kapi.ListOptions{}) + rss, err := e.Options.KubeClient.Extensions().ReplicaSets(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } - dss, err := e.Options.KubeClient.Extensions().DaemonSets(kapi.NamespaceAll).List(kapi.ListOptions{}) + dss, err := e.Options.KubeClient.Extensions().DaemonSets(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } - jobs, err := e.Options.KubeClient.Batch().Jobs(kapi.NamespaceAll).List(kapi.ListOptions{}) + jobs, err := e.Options.KubeClient.Batch().Jobs(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } - printer, err := e.Options.GetPrintersByResource(unversioned.GroupVersionResource{Resource: "pod"}) + printer, err := e.Options.GetPrintersByResource(schema.GroupVersionResource{Resource: "pod"}) if err != nil { return err } @@ -122,7 +123,7 @@ func (e *EvacuateOptions) RunEvacuate(node *kapi.Node) error { firstPod := true numUnmanagedPods := 0 - var deleteOptions *kapi.DeleteOptions + var deleteOptions *metav1.DeleteOptions if e.GracePeriod >= 0 { deleteOptions = e.makeDeleteOptions() } @@ -195,6 +196,6 @@ Suggested options: } // makeDeleteOptions creates the delete options that will be used for pod evacuation. -func (e *EvacuateOptions) makeDeleteOptions() *kapi.DeleteOptions { - return &kapi.DeleteOptions{GracePeriodSeconds: &e.GracePeriod} +func (e *EvacuateOptions) makeDeleteOptions() *metav1.DeleteOptions { + return &metav1.DeleteOptions{GracePeriodSeconds: &e.GracePeriod} } diff --git a/pkg/cmd/admin/node/listpods.go b/pkg/cmd/admin/node/listpods.go index 4df1363f7e99..abfd72e7a246 100644 --- a/pkg/cmd/admin/node/listpods.go +++ b/pkg/cmd/admin/node/listpods.go @@ -5,13 +5,14 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + kerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/labels" - kerrors "k8s.io/kubernetes/pkg/util/errors" ) type ListPodsOptions struct { @@ -32,7 +33,7 @@ func (l *ListPodsOptions) Run() error { if l.Options.CmdPrinterOutput { printer = l.Options.CmdPrinter } else { - printer, err = l.Options.GetPrintersByResource(unversioned.GroupVersionResource{Resource: "pod"}) + printer, err = l.Options.GetPrintersByResource(schema.GroupVersionResource{Resource: "pod"}) if err != nil { return err } @@ -64,7 +65,7 @@ func (l *ListPodsOptions) runListPods(node *kapi.Node, printer kubectl.ResourceP fieldSelector := fields.Set{GetPodHostFieldLabel(node.TypeMeta.APIVersion): node.ObjectMeta.Name}.AsSelector() // Filter all pods that satisfies pod label selector and belongs to the given node - pods, err := l.Options.KubeClient.Core().Pods(kapi.NamespaceAll).List(kapi.ListOptions{LabelSelector: labelSelector, FieldSelector: fieldSelector}) + pods, err := l.Options.KubeClient.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}) if err != nil { return err } @@ -90,7 +91,7 @@ func (l *ListPodsOptions) handleRESTOutput(nodes []*kapi.Node, printer kubectl.R } fieldSelector := fields.Set{GetPodHostFieldLabel(node.TypeMeta.APIVersion): node.ObjectMeta.Name}.AsSelector() - pods, err := l.Options.KubeClient.Core().Pods(kapi.NamespaceAll).List(kapi.ListOptions{LabelSelector: labelSelector, FieldSelector: fieldSelector}) + pods, err := l.Options.KubeClient.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}) if err != nil { errList = append(errList, err) continue diff --git a/pkg/cmd/admin/node/node_options.go b/pkg/cmd/admin/node/node_options.go index 84f8d598db63..89d86ff34239 100644 --- a/pkg/cmd/admin/node/node_options.go +++ b/pkg/cmd/admin/node/node_options.go @@ -9,17 +9,17 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/util/clientcmd" ) @@ -165,7 +165,7 @@ func (n *NodeOptions) GetPrintersByObject(obj runtime.Object) (kubectl.ResourceP return n.GetPrinters(gvk[0]) } -func (n *NodeOptions) GetPrintersByResource(resource unversioned.GroupVersionResource) (kubectl.ResourcePrinter, error) { +func (n *NodeOptions) GetPrintersByResource(resource schema.GroupVersionResource) (kubectl.ResourcePrinter, error) { gvks, err := n.Mapper.KindsFor(resource) if err != nil { return nil, err @@ -173,7 +173,7 @@ func (n *NodeOptions) GetPrintersByResource(resource unversioned.GroupVersionRes return n.GetPrinters(gvks[0]) } -func (n *NodeOptions) GetPrinters(gvk unversioned.GroupVersionKind) (kubectl.ResourcePrinter, error) { +func (n *NodeOptions) GetPrinters(gvk schema.GroupVersionKind) (kubectl.ResourcePrinter, error) { mapping, err := n.Mapper.RESTMapping(gvk.GroupKind(), gvk.Version) if err != nil { return nil, err diff --git a/pkg/cmd/admin/node/schedulable.go b/pkg/cmd/admin/node/schedulable.go index c859552ef102..d34938255221 100644 --- a/pkg/cmd/admin/node/schedulable.go +++ b/pkg/cmd/admin/node/schedulable.go @@ -3,9 +3,9 @@ package node import ( "fmt" + kerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl" - kerrors "k8s.io/kubernetes/pkg/util/errors" ) type SchedulableOptions struct { diff --git a/pkg/cmd/admin/policy/cani.go b/pkg/cmd/admin/policy/cani.go index 2fd055f0c4ce..327c0f0a61a6 100644 --- a/pkg/cmd/admin/policy/cani.go +++ b/pkg/cmd/admin/policy/cani.go @@ -11,10 +11,10 @@ import ( "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -38,7 +38,7 @@ type canIOptions struct { SARClient client.SubjectAccessReviews Verb string - Resource unversioned.GroupVersionResource + Resource schema.GroupVersionResource ResourceName string Out io.Writer @@ -125,7 +125,7 @@ func (o *canIOptions) Complete(f *clientcmd.Factory, args []string) error { o.RulesReviewClient = oclient o.SARClient = oclient - o.Namespace = kapi.NamespaceAll + o.Namespace = metav1.NamespaceAll if !o.AllNamespaces { o.Namespace, _, err = f.DefaultNamespace() if err != nil { diff --git a/pkg/cmd/admin/policy/modify_roles.go b/pkg/cmd/admin/policy/modify_roles.go index aee1762fcdd5..788a52eeb228 100644 --- a/pkg/cmd/admin/policy/modify_roles.go +++ b/pkg/cmd/admin/policy/modify_roles.go @@ -7,8 +7,8 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" authorizationapi "github.com/openshift/origin/pkg/authorization/api" diff --git a/pkg/cmd/admin/policy/modify_scc.go b/pkg/cmd/admin/policy/modify_scc.go index b2b093b0c1ca..6a7fe9788587 100644 --- a/pkg/cmd/admin/policy/modify_scc.go +++ b/pkg/cmd/admin/policy/modify_scc.go @@ -7,6 +7,7 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -185,7 +186,7 @@ func (o *SCCModificationOptions) CompleteGroups(f *clientcmd.Factory, args []str } func (o *SCCModificationOptions) AddSCC() error { - scc, err := o.SCCInterface.SecurityContextConstraints().Get(o.SCCName) + scc, err := o.SCCInterface.SecurityContextConstraints().Get(o.SCCName, metav1.GetOptions{}) if err != nil { return err } @@ -206,7 +207,7 @@ func (o *SCCModificationOptions) AddSCC() error { } func (o *SCCModificationOptions) RemoveSCC() error { - scc, err := o.SCCInterface.SecurityContextConstraints().Get(o.SCCName) + scc, err := o.SCCInterface.SecurityContextConstraints().Get(o.SCCName, metav1.GetOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/policy/modify_scc_test.go b/pkg/cmd/admin/policy/modify_scc_test.go index 18c5ee4ac3c0..c7002eeb1d4e 100644 --- a/pkg/cmd/admin/policy/modify_scc_test.go +++ b/pkg/cmd/admin/policy/modify_scc_test.go @@ -4,10 +4,10 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -118,12 +118,12 @@ func TestModifySCC(t *testing.T) { for tcName, tc := range tests { fakeClient := fake.NewSimpleClientset() - fakeClient.PrependReactor("get", "securitycontextconstraints", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeClient.PrependReactor("get", "securitycontextconstraints", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, tc.startingSCC, nil }) var actualSCC *kapi.SecurityContextConstraints - fakeClient.PrependReactor("update", "securitycontextconstraints", func(action core.Action) (handled bool, ret runtime.Object, err error) { - actualSCC = action.(core.UpdateAction).GetObject().(*kapi.SecurityContextConstraints) + fakeClient.PrependReactor("update", "securitycontextconstraints", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + actualSCC = action.(clientgotesting.UpdateAction).GetObject().(*kapi.SecurityContextConstraints) return true, actualSCC, nil }) diff --git a/pkg/cmd/admin/policy/policy.go b/pkg/cmd/admin/policy/policy.go index ebcebdda67c4..29ba7850d2c0 100644 --- a/pkg/cmd/admin/policy/policy.go +++ b/pkg/cmd/admin/policy/policy.go @@ -4,11 +4,11 @@ import ( "fmt" "io" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/uuid" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/uuid" "github.com/spf13/cobra" @@ -132,7 +132,7 @@ func NewLocalRoleBindingAccessor(bindingNamespace string, client client.Interfac } func (a LocalRoleBindingAccessor) GetExistingRoleBindingsForRole(roleNamespace, role string) ([]*authorizationapi.RoleBinding, error) { - existingBindings, err := a.Client.PolicyBindings(a.BindingNamespace).Get(authorizationapi.GetPolicyBindingName(roleNamespace)) + existingBindings, err := a.Client.PolicyBindings(a.BindingNamespace).Get(authorizationapi.GetPolicyBindingName(roleNamespace), metav1.GetOptions{}) if err != nil && !kapierrors.IsNotFound(err) { return nil, err } @@ -150,7 +150,7 @@ func (a LocalRoleBindingAccessor) GetExistingRoleBindingsForRole(roleNamespace, } func (a LocalRoleBindingAccessor) GetExistingRoleBindingNames() (*sets.String, error) { - policyBindings, err := a.Client.PolicyBindings(a.BindingNamespace).List(kapi.ListOptions{}) + policyBindings, err := a.Client.PolicyBindings(a.BindingNamespace).List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -187,7 +187,7 @@ func NewClusterRoleBindingAccessor(client client.Interface) ClusterRoleBindingAc } func (a ClusterRoleBindingAccessor) GetExistingRoleBindingsForRole(roleNamespace, role string) ([]*authorizationapi.RoleBinding, error) { - uncast, err := a.Client.ClusterPolicyBindings().Get(authorizationapi.GetPolicyBindingName(roleNamespace)) + uncast, err := a.Client.ClusterPolicyBindings().Get(authorizationapi.GetPolicyBindingName(roleNamespace), metav1.GetOptions{}) if err != nil && !kapierrors.IsNotFound(err) { return nil, err } @@ -206,7 +206,7 @@ func (a ClusterRoleBindingAccessor) GetExistingRoleBindingsForRole(roleNamespace } func (a ClusterRoleBindingAccessor) GetExistingRoleBindingNames() (*sets.String, error) { - uncast, err := a.Client.ClusterPolicyBindings().List(kapi.ListOptions{}) + uncast, err := a.Client.ClusterPolicyBindings().List(metav1.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/cmd/admin/policy/reconcile_clusterrolebindings.go b/pkg/cmd/admin/policy/reconcile_clusterrolebindings.go index da9381bbbe43..02a77dbe026e 100644 --- a/pkg/cmd/admin/policy/reconcile_clusterrolebindings.go +++ b/pkg/cmd/admin/policy/reconcile_clusterrolebindings.go @@ -8,11 +8,12 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -206,7 +207,7 @@ func (o *ReconcileClusterRoleBindingsOptions) ChangedClusterRoleBindings() ([]*a } rolesNotFound.Delete(expectedClusterRoleBinding.RoleRef.Name) - actualClusterRoleBinding, err := o.RoleBindingClient.Get(expectedClusterRoleBinding.Name) + actualClusterRoleBinding, err := o.RoleBindingClient.Get(expectedClusterRoleBinding.Name, metav1.GetOptions{}) if kapierrors.IsNotFound(err) { // Remove excluded subjects from the new role binding expectedClusterRoleBinding.Subjects, _ = DiffObjectReferenceLists(expectedClusterRoleBinding.Subjects, o.ExcludeSubjects) @@ -240,7 +241,7 @@ func (o *ReconcileClusterRoleBindingsOptions) ChangedClusterRoleBindings() ([]*a func (o *ReconcileClusterRoleBindingsOptions) ReplaceChangedRoleBindings(changedRoleBindings []*authorizationapi.ClusterRoleBinding) error { errs := []error{} for i := range changedRoleBindings { - roleBinding, err := o.RoleBindingClient.Get(changedRoleBindings[i].Name) + roleBinding, err := o.RoleBindingClient.Get(changedRoleBindings[i].Name, metav1.GetOptions{}) if err != nil && !kapierrors.IsNotFound(err) { errs = append(errs, err) continue diff --git a/pkg/cmd/admin/policy/reconcile_clusterroles.go b/pkg/cmd/admin/policy/reconcile_clusterroles.go index 3ff288f11803..fa7553b7eb79 100644 --- a/pkg/cmd/admin/policy/reconcile_clusterroles.go +++ b/pkg/cmd/admin/policy/reconcile_clusterroles.go @@ -7,11 +7,12 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/rulevalidation" @@ -197,7 +198,7 @@ func (o *ReconcileClusterRolesOptions) ChangedClusterRoles() ([]*authorizationap } rolesNotFound.Delete(expectedClusterRole.Name) - actualClusterRole, err := o.RoleClient.Get(expectedClusterRole.Name) + actualClusterRole, err := o.RoleClient.Get(expectedClusterRole.Name, metav1.GetOptions{}) if kapierrors.IsNotFound(err) { changedRoles = append(changedRoles, expectedClusterRole) continue @@ -259,7 +260,7 @@ func computeReconciledRole(expected authorizationapi.ClusterRole, actual authori func (o *ReconcileClusterRolesOptions) ReplaceChangedRoles(changedRoles []*authorizationapi.ClusterRole) error { errs := []error{} for i := range changedRoles { - role, err := o.RoleClient.Get(changedRoles[i].Name) + role, err := o.RoleClient.Get(changedRoles[i].Name, metav1.GetOptions{}) if err != nil && !kapierrors.IsNotFound(err) { errs = append(errs, err) continue diff --git a/pkg/cmd/admin/policy/reconcile_clusterroles_test.go b/pkg/cmd/admin/policy/reconcile_clusterroles_test.go index 15e81833e6f7..4dbc028d5065 100644 --- a/pkg/cmd/admin/policy/reconcile_clusterroles_test.go +++ b/pkg/cmd/admin/policy/reconcile_clusterroles_test.go @@ -3,14 +3,15 @@ package policy import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) func role(rules []authorizationapi.PolicyRule, labels map[string]string, annotations map[string]string) *authorizationapi.ClusterRole { - return &authorizationapi.ClusterRole{Rules: rules, ObjectMeta: kapi.ObjectMeta{Labels: labels, Annotations: annotations}} + return &authorizationapi.ClusterRole{Rules: rules, ObjectMeta: metav1.ObjectMeta{Labels: labels, Annotations: annotations}} } func rules(resources ...string) []authorizationapi.PolicyRule { diff --git a/pkg/cmd/admin/policy/reconcile_sccs.go b/pkg/cmd/admin/policy/reconcile_sccs.go index 52907962d7f2..e84d1796a13b 100644 --- a/pkg/cmd/admin/policy/reconcile_sccs.go +++ b/pkg/cmd/admin/policy/reconcile_sccs.go @@ -8,12 +8,13 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" sccutil "k8s.io/kubernetes/pkg/securitycontextconstraints/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" "github.com/openshift/origin/pkg/cmd/templates" @@ -128,7 +129,7 @@ func (o *ReconcileSCCOptions) Validate() error { if o.SCCClient == nil { return errors.New("a SCC client is required") } - if _, err := o.NSClient.Get(o.InfraNamespace); err != nil { + if _, err := o.NSClient.Get(o.InfraNamespace, metav1.GetOptions{}); err != nil { return fmt.Errorf("%s is not a valid namespace", o.InfraNamespace) } return nil @@ -175,7 +176,7 @@ func (o *ReconcileSCCOptions) ChangedSCCs() ([]*kapi.SecurityContextConstraints, for i := range bootstrapSCCs { expectedSCC := &bootstrapSCCs[i] - actualSCC, err := o.SCCClient.Get(expectedSCC.Name) + actualSCC, err := o.SCCClient.Get(expectedSCC.Name, metav1.GetOptions{}) // if not found it needs to be created if kapierrors.IsNotFound(err) { changedSCCs = append(changedSCCs, expectedSCC) @@ -196,7 +197,7 @@ func (o *ReconcileSCCOptions) ChangedSCCs() ([]*kapi.SecurityContextConstraints, // ReplaceChangedSCCs persists the changed SCCs. func (o *ReconcileSCCOptions) ReplaceChangedSCCs(changedSCCs []*kapi.SecurityContextConstraints) error { for i := range changedSCCs { - _, err := o.SCCClient.Get(changedSCCs[i].Name) + _, err := o.SCCClient.Get(changedSCCs[i].Name, metav1.GetOptions{}) if err != nil && !kapierrors.IsNotFound(err) { return err } diff --git a/pkg/cmd/admin/policy/reconcile_sccs_test.go b/pkg/cmd/admin/policy/reconcile_sccs_test.go index 81046d8e448d..80acb44e5fab 100644 --- a/pkg/cmd/admin/policy/reconcile_sccs_test.go +++ b/pkg/cmd/admin/policy/reconcile_sccs_test.go @@ -4,6 +4,7 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" ) @@ -153,26 +154,26 @@ func TestComputeDefinitions(t *testing.T) { func TestComputeMetadata(t *testing.T) { tests := map[string]struct { union bool - desired kapi.ObjectMeta - actual kapi.ObjectMeta + desired metav1.ObjectMeta + actual metav1.ObjectMeta needsUpdate bool - computed kapi.ObjectMeta + computed metav1.ObjectMeta }{ "identical with union": { union: true, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, ResourceVersion: "2", }, needsUpdate: false, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, @@ -181,19 +182,19 @@ func TestComputeMetadata(t *testing.T) { }, "identical without union": { union: false, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, ResourceVersion: "2", }, needsUpdate: false, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, @@ -203,19 +204,19 @@ func TestComputeMetadata(t *testing.T) { "missing labels and annotations with union": { union: true, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, ResourceVersion: "2", }, needsUpdate: true, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, @@ -224,19 +225,19 @@ func TestComputeMetadata(t *testing.T) { }, "missing labels and annotations without union": { union: false, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, ResourceVersion: "2", }, needsUpdate: true, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, @@ -246,19 +247,19 @@ func TestComputeMetadata(t *testing.T) { "extra labels and annotations with union": { union: true, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, ResourceVersion: "2", }, needsUpdate: false, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, @@ -267,19 +268,19 @@ func TestComputeMetadata(t *testing.T) { }, "extra labels and annotations without union": { union: false, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, ResourceVersion: "2", }, needsUpdate: true, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, @@ -289,19 +290,19 @@ func TestComputeMetadata(t *testing.T) { "disjoint labels and annotations with union": { union: true, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labelb": "b"}, Annotations: map[string]string{"annotationb": "b"}, ResourceVersion: "2", }, needsUpdate: true, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a", "labelb": "b"}, Annotations: map[string]string{"annotationa": "a", "annotationb": "b"}, @@ -310,19 +311,19 @@ func TestComputeMetadata(t *testing.T) { }, "disjoint labels and annotations without union": { union: false, - desired: kapi.ObjectMeta{ + desired: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, }, - actual: kapi.ObjectMeta{ + actual: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labelb": "b"}, Annotations: map[string]string{"annotationb": "b"}, ResourceVersion: "2", }, needsUpdate: true, - computed: kapi.ObjectMeta{ + computed: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"labela": "a"}, Annotations: map[string]string{"annotationa": "a"}, @@ -570,7 +571,7 @@ func goodSCCWithPriority(priority int32) kapi.SecurityContextConstraints { func goodSCC() kapi.SecurityContextConstraints { return kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "scc-admin", }, RunAsUser: kapi.RunAsUserStrategyOptions{ diff --git a/pkg/cmd/admin/policy/remove_from_project.go b/pkg/cmd/admin/policy/remove_from_project.go index 31cb902f98f8..f898f9c82150 100644 --- a/pkg/cmd/admin/policy/remove_from_project.go +++ b/pkg/cmd/admin/policy/remove_from_project.go @@ -7,9 +7,10 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -95,7 +96,7 @@ func (o *RemoveFromProjectOptions) Complete(f *clientcmd.Factory, args []string, } func (o *RemoveFromProjectOptions) Run() error { - bindingList, err := o.Client.PolicyBindings(o.BindingNamespace).List(kapi.ListOptions{}) + bindingList, err := o.Client.PolicyBindings(o.BindingNamespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/policy/review.go b/pkg/cmd/admin/policy/review.go index d093a5e7ab07..cdabf05e4552 100644 --- a/pkg/cmd/admin/policy/review.go +++ b/pkg/cmd/admin/policy/review.go @@ -8,15 +8,16 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/serviceaccount" - utilerrors "k8s.io/kubernetes/pkg/util/errors" + kprinters "k8s.io/kubernetes/pkg/printers" ometa "github.com/openshift/origin/pkg/api/meta" "github.com/openshift/origin/pkg/client" @@ -206,7 +207,7 @@ type sccReviewPrinter interface { } type sccReviewOutputPrinter struct { - kubectl.ResourcePrinter + kprinters.ResourcePrinter } var _ sccReviewPrinter = &sccReviewOutputPrinter{} diff --git a/pkg/cmd/admin/policy/subject_review.go b/pkg/cmd/admin/policy/subject_review.go index bac901448e8b..1ad6e3f732a6 100644 --- a/pkg/cmd/admin/policy/subject_review.go +++ b/pkg/cmd/admin/policy/subject_review.go @@ -8,14 +8,15 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/serviceaccount" - utilerrors "k8s.io/kubernetes/pkg/util/errors" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -206,7 +207,7 @@ type sccSubjectReviewPrinter interface { } type sccSubjectReviewOutputPrinter struct { - kubectl.ResourcePrinter + kprinters.ResourcePrinter } var _ sccSubjectReviewPrinter = &sccSubjectReviewOutputPrinter{} diff --git a/pkg/cmd/admin/policy/who_can.go b/pkg/cmd/admin/policy/who_can.go index 298d91da8081..db69fe30c483 100644 --- a/pkg/cmd/admin/policy/who_can.go +++ b/pkg/cmd/admin/policy/who_can.go @@ -8,9 +8,9 @@ import ( "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -26,7 +26,7 @@ type whoCanOptions struct { client *client.Client verb string - resource unversioned.GroupVersionResource + resource schema.GroupVersionResource resourceName string } @@ -75,9 +75,9 @@ func (o *whoCanOptions) complete(f *clientcmd.Factory, args []string) error { return nil } -func resourceFor(mapper meta.RESTMapper, resourceArg string) unversioned.GroupVersionResource { - fullySpecifiedGVR, groupResource := unversioned.ParseResourceArg(strings.ToLower(resourceArg)) - gvr := unversioned.GroupVersionResource{} +func resourceFor(mapper meta.RESTMapper, resourceArg string) schema.GroupVersionResource { + fullySpecifiedGVR, groupResource := schema.ParseResourceArg(strings.ToLower(resourceArg)) + gvr := schema.GroupVersionResource{} if fullySpecifiedGVR != nil { gvr, _ = mapper.ResourceFor(*fullySpecifiedGVR) } @@ -85,7 +85,7 @@ func resourceFor(mapper meta.RESTMapper, resourceArg string) unversioned.GroupVe var err error gvr, err = mapper.ResourceFor(groupResource.WithVersion("")) if err != nil { - return unversioned.GroupVersionResource{Resource: resourceArg} + return schema.GroupVersionResource{Resource: resourceArg} } } @@ -112,7 +112,7 @@ func (o *whoCanOptions) run() error { return err } - if resourceAccessReviewResponse.Namespace == kapi.NamespaceAll { + if resourceAccessReviewResponse.Namespace == metav1.NamespaceAll { fmt.Printf("Namespace: \n") } else { fmt.Printf("Namespace: %s\n", resourceAccessReviewResponse.Namespace) diff --git a/pkg/cmd/admin/project/new_project.go b/pkg/cmd/admin/project/new_project.go index 8ce4a87b6c70..a72c1353ea98 100644 --- a/pkg/cmd/admin/project/new_project.go +++ b/pkg/cmd/admin/project/new_project.go @@ -7,9 +7,10 @@ import ( "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + errorsutil "k8s.io/apimachinery/pkg/util/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - errorsutil "k8s.io/kubernetes/pkg/util/errors" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/client" @@ -89,7 +90,7 @@ func (o *NewProjectOptions) complete(args []string) error { } func (o *NewProjectOptions) Run(useNodeSelector bool) error { - if _, err := o.Client.Projects().Get(o.ProjectName); err != nil { + if _, err := o.Client.Projects().Get(o.ProjectName, metav1.GetOptions{}); err != nil { if !kerrors.IsNotFound(err) { return err } diff --git a/pkg/cmd/admin/prune/builds.go b/pkg/cmd/admin/prune/builds.go index da94cc73180f..161fec2497c0 100644 --- a/pkg/cmd/admin/prune/builds.go +++ b/pkg/cmd/admin/prune/builds.go @@ -9,7 +9,7 @@ import ( "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" buildapi "github.com/openshift/origin/pkg/build/api" @@ -87,7 +87,7 @@ func (o *PruneBuildsOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, return kcmdutil.UsageError(cmd, "no arguments are allowed to this command") } - o.Namespace = kapi.NamespaceAll + o.Namespace = metav1.NamespaceAll if cmd.Flags().Lookup("namespace").Changed { var err error o.Namespace, _, err = f.DefaultNamespace() @@ -122,7 +122,7 @@ func (o PruneBuildsOptions) Validate() error { // Run contains all the necessary functionality for the OpenShift cli prune builds command. func (o PruneBuildsOptions) Run() error { - buildConfigList, err := o.OSClient.BuildConfigs(o.Namespace).List(kapi.ListOptions{}) + buildConfigList, err := o.OSClient.BuildConfigs(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -131,7 +131,7 @@ func (o PruneBuildsOptions) Run() error { buildConfigs = append(buildConfigs, &buildConfigList.Items[i]) } - buildList, err := o.OSClient.Builds(o.Namespace).List(kapi.ListOptions{}) + buildList, err := o.OSClient.Builds(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/prune/deployments.go b/pkg/cmd/admin/prune/deployments.go index a027f5396b21..ef16266c0476 100644 --- a/pkg/cmd/admin/prune/deployments.go +++ b/pkg/cmd/admin/prune/deployments.go @@ -9,6 +9,7 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -89,7 +90,7 @@ func (o *PruneDeploymentsOptions) Complete(f *clientcmd.Factory, cmd *cobra.Comm return kcmdutil.UsageError(cmd, "no arguments are allowed to this command") } - o.Namespace = kapi.NamespaceAll + o.Namespace = metav1.NamespaceAll if cmd.Flags().Lookup("namespace").Changed { var err error o.Namespace, _, err = f.DefaultNamespace() @@ -125,7 +126,7 @@ func (o PruneDeploymentsOptions) Validate() error { // Run contains all the necessary functionality for the OpenShift cli prune deployments command. func (o PruneDeploymentsOptions) Run() error { - deploymentConfigList, err := o.OSClient.DeploymentConfigs(o.Namespace).List(kapi.ListOptions{}) + deploymentConfigList, err := o.OSClient.DeploymentConfigs(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -134,7 +135,7 @@ func (o PruneDeploymentsOptions) Run() error { deploymentConfigs = append(deploymentConfigs, &deploymentConfigList.Items[i]) } - deploymentList, err := o.KClient.Core().ReplicationControllers(o.Namespace).List(kapi.ListOptions{}) + deploymentList, err := o.KClient.Core().ReplicationControllers(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/prune/images.go b/pkg/cmd/admin/prune/images.go index bd321547d3ac..d69235ba793f 100644 --- a/pkg/cmd/admin/prune/images.go +++ b/pkg/cmd/admin/prune/images.go @@ -14,11 +14,12 @@ import ( "time" "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + knet "k8s.io/apimachinery/pkg/util/net" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - knet "k8s.io/kubernetes/pkg/util/net" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -144,7 +145,7 @@ func (o *PruneImagesOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, return kcmdutil.UsageError(cmd, "--registry-url must be specified when --all is true") } } - o.Namespace = kapi.NamespaceAll + o.Namespace = metav1.NamespaceAll if cmd.Flags().Lookup("namespace").Changed { var err error o.Namespace, _, err = f.DefaultNamespace() @@ -184,46 +185,46 @@ func (o PruneImagesOptions) Validate() error { // Run contains all the necessary functionality for the OpenShift cli prune images command. func (o PruneImagesOptions) Run() error { - allImages, err := o.OSClient.Images().List(kapi.ListOptions{}) + allImages, err := o.OSClient.Images().List(metav1.ListOptions{}) if err != nil { return err } - allStreams, err := o.OSClient.ImageStreams(o.Namespace).List(kapi.ListOptions{}) + allStreams, err := o.OSClient.ImageStreams(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } - allPods, err := o.KClient.Core().Pods(o.Namespace).List(kapi.ListOptions{}) + allPods, err := o.KClient.Core().Pods(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } - allRCs, err := o.KClient.Core().ReplicationControllers(o.Namespace).List(kapi.ListOptions{}) + allRCs, err := o.KClient.Core().ReplicationControllers(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } - allBCs, err := o.OSClient.BuildConfigs(o.Namespace).List(kapi.ListOptions{}) + allBCs, err := o.OSClient.BuildConfigs(o.Namespace).List(metav1.ListOptions{}) // We need to tolerate 'not found' errors for buildConfigs since they may be disabled in Atomic err = oserrors.TolerateNotFoundError(err) if err != nil { return err } - allBuilds, err := o.OSClient.Builds(o.Namespace).List(kapi.ListOptions{}) + allBuilds, err := o.OSClient.Builds(o.Namespace).List(metav1.ListOptions{}) // We need to tolerate 'not found' errors for builds since they may be disabled in Atomic err = oserrors.TolerateNotFoundError(err) if err != nil { return err } - allDCs, err := o.OSClient.DeploymentConfigs(o.Namespace).List(kapi.ListOptions{}) + allDCs, err := o.OSClient.DeploymentConfigs(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } - limitRangesList, err := o.KClient.Core().LimitRanges(o.Namespace).List(kapi.ListOptions{}) + limitRangesList, err := o.KClient.Core().LimitRanges(o.Namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -255,7 +256,7 @@ func (o PruneImagesOptions) Run() error { RegistryClient: o.RegistryClient, RegistryURL: o.RegistryUrlOverride, } - if o.Namespace != kapi.NamespaceAll { + if o.Namespace != metav1.NamespaceAll { options.Namespace = o.Namespace } pruner := prune.NewPruner(options) diff --git a/pkg/cmd/admin/registry/registry.go b/pkg/cmd/admin/registry/registry.go index 7654d80cdb27..84d28ea31e44 100644 --- a/pkg/cmd/admin/registry/registry.go +++ b/pkg/cmd/admin/registry/registry.go @@ -12,14 +12,15 @@ import ( "strings" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/apis/extensions" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" authapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/templates" @@ -282,7 +283,7 @@ func (opts *RegistryOptions) RunCmdRegistry() error { output := opts.Config.Action.ShouldPrint() generate := output - service, err := opts.serviceClient.Services(opts.namespace).Get(name) + service, err := opts.serviceClient.Services(opts.namespace).Get(name, metav1.GetOptions{}) if err != nil { if !generate { if !errors.IsNotFound(err) { @@ -349,7 +350,7 @@ func (opts *RegistryOptions) RunCmdRegistry() error { mountHost := len(opts.Config.HostMount) > 0 podTemplate := &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{Labels: opts.label}, + ObjectMeta: metav1.ObjectMeta{Labels: opts.label}, Spec: kapi.PodSpec{ NodeSelector: opts.nodeSelector, Containers: []kapi.Container{ @@ -395,9 +396,9 @@ func (opts *RegistryOptions) RunCmdRegistry() error { } objects = append(objects, - &kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: opts.Config.ServiceAccount}}, + &kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: opts.Config.ServiceAccount}}, &authapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: fmt.Sprintf("registry-%s-role", opts.Config.Name)}, + ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("registry-%s-role", opts.Config.Name)}, Subjects: []kapi.ObjectReference{ { Kind: "ServiceAccount", @@ -414,7 +415,7 @@ func (opts *RegistryOptions) RunCmdRegistry() error { if opts.Config.DaemonSet { objects = append(objects, &extensions.DaemonSet{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: opts.label, }, @@ -427,7 +428,7 @@ func (opts *RegistryOptions) RunCmdRegistry() error { }) } else { objects = append(objects, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: opts.label, }, @@ -527,7 +528,7 @@ func generateSecretsConfig( if len(defaultCrt) > 0 { secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("%s-certs", cfg.Name), }, Type: kapi.SecretTypeTLS, diff --git a/pkg/cmd/admin/router/router.go b/pkg/cmd/admin/router/router.go index b3089842c1dd..6a9cf0a86cce 100644 --- a/pkg/cmd/admin/router/router.go +++ b/pkg/cmd/admin/router/router.go @@ -13,15 +13,16 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/kubernetes/pkg/util/validation" authapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -325,7 +326,7 @@ func generateSecretsConfig(cfg *RouterConfig, namespace string, defaultCert []by } secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: privkeySecretName, }, Data: map[string][]byte{privkeyName: privkeyData}, @@ -366,7 +367,7 @@ func generateSecretsConfig(cfg *RouterConfig, namespace string, defaultCert []by } // The TLSCertKey contains the pem file passed in as the default cert secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: certName, }, Type: kapi.SecretTypeTLS, @@ -576,7 +577,7 @@ func RunCmdRouter(f *clientcmd.Factory, cmd *cobra.Command, out, errout io.Write output := cfg.Action.ShouldPrint() generate := output - service, err := kClient.Core().Services(namespace).Get(name) + service, err := kClient.Core().Services(namespace).Get(name, metav1.GetOptions{}) if err != nil { if !generate { if !errors.IsNotFound(err) { @@ -733,9 +734,9 @@ func RunCmdRouter(f *clientcmd.Factory, cmd *cobra.Command, out, errout io.Write } objects = append(objects, - &kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: cfg.ServiceAccount}}, + &kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: cfg.ServiceAccount}}, &authapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: generateRoleBindingName(cfg.Name)}, + ObjectMeta: metav1.ObjectMeta{Name: generateRoleBindingName(cfg.Name)}, Subjects: []kapi.ObjectReference{ { Kind: "ServiceAccount", @@ -751,7 +752,7 @@ func RunCmdRouter(f *clientcmd.Factory, cmd *cobra.Command, out, errout io.Write ) objects = append(objects, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: label, }, @@ -766,7 +767,7 @@ func RunCmdRouter(f *clientcmd.Factory, cmd *cobra.Command, out, errout io.Write {Type: deployapi.DeploymentTriggerOnConfigChange}, }, Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{Labels: label}, + ObjectMeta: metav1.ObjectMeta{Labels: label}, Spec: kapi.PodSpec{ SecurityContext: &kapi.PodSecurityContext{ HostNetwork: cfg.HostNetwork, @@ -874,7 +875,7 @@ func validateServiceAccount(client kclientset.Interface, ns string, serviceAccou return nil } // get cluster sccs - sccList, err := client.Core().SecurityContextConstraints().List(kapi.ListOptions{}) + sccList, err := client.Core().SecurityContextConstraints().List(metav1.ListOptions{}) if err != nil { if !errors.IsUnauthorized(err) { return fmt.Errorf("could not retrieve list of security constraints to verify service account %q: %v", serviceAccount, err) diff --git a/pkg/cmd/admin/top/images.go b/pkg/cmd/admin/top/images.go index aec12c4b14a9..ef3452ffa148 100644 --- a/pkg/cmd/admin/top/images.go +++ b/pkg/cmd/admin/top/images.go @@ -7,10 +7,11 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -80,23 +81,23 @@ func (o *TopImagesOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, ar } namespace := cmd.Flag("namespace").Value.String() if len(namespace) == 0 { - namespace = kapi.NamespaceAll + namespace = metav1.NamespaceAll } o.out = out - allImages, err := osClient.Images().List(kapi.ListOptions{}) + allImages, err := osClient.Images().List(metav1.ListOptions{}) if err != nil { return err } o.Images = allImages - allStreams, err := osClient.ImageStreams(namespace).List(kapi.ListOptions{}) + allStreams, err := osClient.ImageStreams(namespace).List(metav1.ListOptions{}) if err != nil { return err } o.Streams = allStreams - allPods, err := kClient.Core().Pods(namespace).List(kapi.ListOptions{}) + allPods, err := kClient.Core().Pods(namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/top/images_test.go b/pkg/cmd/admin/top/images_test.go index db772c5a82a6..c0a8082ca424 100644 --- a/pkg/cmd/admin/top/images_test.go +++ b/pkg/cmd/admin/top/images_test.go @@ -3,6 +3,7 @@ package top import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/docker/distribution/digest" @@ -22,13 +23,13 @@ func TestImagesTop(t *testing.T) { "no metadata": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -54,7 +55,7 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(512)}, {Name: "layer2", LayerSize: int64(512)}, @@ -66,7 +67,7 @@ func TestImagesTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -93,7 +94,7 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(512)}, {Name: "layer2", LayerSize: int64(512)}, @@ -122,7 +123,7 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(512)}, {Name: "layer2", LayerSize: int64(256)}, @@ -152,7 +153,7 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}, {Name: "layer2"}}, }, }, @@ -160,7 +161,7 @@ func TestImagesTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -189,7 +190,7 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}, {Name: "layer2"}}, }, }, @@ -197,7 +198,7 @@ func TestImagesTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -210,7 +211,7 @@ func TestImagesTop(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "stream2", Namespace: "ns2"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream2", Namespace: "ns2"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -235,7 +236,7 @@ func TestImagesTop(t *testing.T) { "image without a stream": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{}, @@ -254,12 +255,12 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}}, DockerImageManifest: "non empty metadata", }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1"}, {Name: "layer2"}, @@ -291,12 +292,12 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}}, DockerImageManifest: "non empty metadata", }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1"}, {Name: digest.DigestSha256EmptyTar}, @@ -329,12 +330,12 @@ func TestImagesTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}}, DockerImageManifest: "non empty metadata", }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1"}, {Name: digestSHA256GzippedEmptyTar}, @@ -366,13 +367,13 @@ func TestImagesTop(t *testing.T) { "build pending": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -386,7 +387,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{buildapi.BuildAnnotation: "build1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{buildapi.BuildAnnotation: "build1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodPending}, }, @@ -405,13 +406,13 @@ func TestImagesTop(t *testing.T) { "build running": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -425,7 +426,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{buildapi.BuildAnnotation: "build1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{buildapi.BuildAnnotation: "build1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodRunning}, }, @@ -444,13 +445,13 @@ func TestImagesTop(t *testing.T) { "deployer pending": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -464,7 +465,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentPodAnnotation: "deployer1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentPodAnnotation: "deployer1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodPending}, }, @@ -483,13 +484,13 @@ func TestImagesTop(t *testing.T) { "deployer running": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -503,7 +504,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentPodAnnotation: "deployer1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentPodAnnotation: "deployer1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodRunning}, }, @@ -522,13 +523,13 @@ func TestImagesTop(t *testing.T) { "deployement pending": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -542,7 +543,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentAnnotation: "deplyment1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentAnnotation: "deplyment1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodPending}, }, @@ -561,13 +562,13 @@ func TestImagesTop(t *testing.T) { "deployment running": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -581,7 +582,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentAnnotation: "deplyment1"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{deployapi.DeploymentAnnotation: "deplyment1"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodRunning}, }, @@ -600,13 +601,13 @@ func TestImagesTop(t *testing.T) { "unknown controller 1": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -620,7 +621,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1"}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodRunning}, }, @@ -639,13 +640,13 @@ func TestImagesTop(t *testing.T) { "unknown controller 2": { images: &imageapi.ImageList{ Items: []imageapi.Image{ - {ObjectMeta: kapi.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}, }, }, streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -659,7 +660,7 @@ func TestImagesTop(t *testing.T) { pods: &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{"unknown controller": "unknown"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Annotations: map[string]string{"unknown controller": "unknown"}}, Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "image@sha256:08151bf2fc92355f236918bb16905921e6f66e1d03100fb9b18d60125db3df3a"}}}, Status: kapi.PodStatus{Phase: kapi.PodRunning}, }, diff --git a/pkg/cmd/admin/top/imagestreams.go b/pkg/cmd/admin/top/imagestreams.go index f79683d94921..9ad33877b4b7 100644 --- a/pkg/cmd/admin/top/imagestreams.go +++ b/pkg/cmd/admin/top/imagestreams.go @@ -7,9 +7,9 @@ import ( gonum "github.com/gonum/graph" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/graph" "github.com/openshift/origin/pkg/cmd/templates" @@ -71,17 +71,17 @@ func (o *TopImageStreamsOptions) Complete(f *clientcmd.Factory, cmd *cobra.Comma } namespace := cmd.Flag("namespace").Value.String() if len(namespace) == 0 { - namespace = kapi.NamespaceAll + namespace = metav1.NamespaceAll } o.out = out - allImages, err := osClient.Images().List(kapi.ListOptions{}) + allImages, err := osClient.Images().List(metav1.ListOptions{}) if err != nil { return err } o.Images = allImages - allStreams, err := osClient.ImageStreams(namespace).List(kapi.ListOptions{}) + allStreams, err := osClient.ImageStreams(namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/admin/top/imagestreams_test.go b/pkg/cmd/admin/top/imagestreams_test.go index 4182f4a60f98..b614376de4c2 100644 --- a/pkg/cmd/admin/top/imagestreams_test.go +++ b/pkg/cmd/admin/top/imagestreams_test.go @@ -3,6 +3,7 @@ package top import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -19,7 +20,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -42,7 +43,7 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1"}}, }, }, @@ -50,7 +51,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -73,7 +74,7 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1", LayerSize: int64(1024)}}, }, }, @@ -81,7 +82,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -105,7 +106,7 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: 1024}, {Name: "layer2", LayerSize: 512}, @@ -116,7 +117,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -140,11 +141,11 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1", LayerSize: int64(1024)}}, }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(1024)}, {Name: "layer2", LayerSize: int64(128)}, @@ -155,7 +156,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -182,7 +183,7 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1", LayerSize: int64(1024)}}, DockerImageConfig: "raw image config", DockerImageMetadata: imageapi.DockerImage{ @@ -190,7 +191,7 @@ func TestImageStreamsTop(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(1024)}, {Name: "layer2", LayerSize: int64(128)}, @@ -205,7 +206,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { @@ -232,11 +233,11 @@ func TestImageStreamsTop(t *testing.T) { images: &imageapi.ImageList{ Items: []imageapi.Image{ { - ObjectMeta: kapi.ObjectMeta{Name: "image1"}, + ObjectMeta: metav1.ObjectMeta{Name: "image1"}, DockerImageLayers: []imageapi.ImageLayer{{Name: "layer1", LayerSize: int64(1024)}}, }, { - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageLayers: []imageapi.ImageLayer{ {Name: "layer1", LayerSize: int64(1024)}, {Name: "layer2", LayerSize: int64(128)}, @@ -247,7 +248,7 @@ func TestImageStreamsTop(t *testing.T) { streams: &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "stream1", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "stream1", Namespace: "ns1"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "tag1": { diff --git a/pkg/cmd/admin/validate/master.go b/pkg/cmd/admin/validate/master.go index 7135632322f6..ae7e3a679f8a 100644 --- a/pkg/cmd/admin/validate/master.go +++ b/pkg/cmd/admin/validate/master.go @@ -9,8 +9,8 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/util/validation/field" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/validation/field" configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/cli/cmd/buildlogs.go b/pkg/cmd/cli/cmd/buildlogs.go index 52ea1c116e12..653883fb7a9c 100644 --- a/pkg/cmd/cli/cmd/buildlogs.go +++ b/pkg/cmd/cli/cmd/buildlogs.go @@ -9,7 +9,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/cmd/cli/cmd/cancelbuild.go b/pkg/cmd/cli/cmd/cancelbuild.go index e8475a4d08f4..0825f5fe532b 100644 --- a/pkg/cmd/cli/cmd/cancelbuild.go +++ b/pkg/cmd/cli/cmd/cancelbuild.go @@ -9,11 +9,11 @@ import ( "time" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/wait" buildapi "github.com/openshift/origin/pkg/build/api" buildclient "github.com/openshift/origin/pkg/build/client" @@ -163,7 +163,7 @@ func (o *CancelBuildOptions) RunCancelBuild() error { var builds []*buildapi.Build for _, name := range o.BuildNames { - build, err := o.BuildClient.Get(name) + build, err := o.BuildClient.Get(name, metav1.GetOptions{}) if err != nil { o.ReportError(fmt.Errorf("build %s/%s not found", o.Namespace, name)) continue @@ -210,7 +210,7 @@ func (o *CancelBuildOptions) RunCancelBuild() error { case err == nil: return true, nil case kapierrors.IsConflict(err): - build, err = o.BuildClient.Get(build.Name) + build, err = o.BuildClient.Get(build.Name, metav1.GetOptions{}) return false, err } return true, err @@ -222,7 +222,7 @@ func (o *CancelBuildOptions) RunCancelBuild() error { // Make sure the build phase is really cancelled. err = wait.Poll(500*time.Millisecond, 30*time.Second, func() (bool, error) { - updatedBuild, err := o.BuildClient.Get(build.Name) + updatedBuild, err := o.BuildClient.Get(build.Name, metav1.GetOptions{}) if err != nil { return true, err } @@ -241,7 +241,7 @@ func (o *CancelBuildOptions) RunCancelBuild() error { if o.Restart { for _, b := range builds { - request := &buildapi.BuildRequest{ObjectMeta: kapi.ObjectMeta{Namespace: b.Namespace, Name: b.Name}} + request := &buildapi.BuildRequest{ObjectMeta: metav1.ObjectMeta{Namespace: b.Namespace, Name: b.Name}} build, err := o.BuildClient.Clone(request) if err != nil { o.ReportError(fmt.Errorf("build %s/%s failed to restart: %v", b.Namespace, b.Name, err)) diff --git a/pkg/cmd/cli/cmd/cancelbuild_test.go b/pkg/cmd/cli/cmd/cancelbuild_test.go index 26c750f661c8..d61afbbfcfcc 100644 --- a/pkg/cmd/cli/cmd/cancelbuild_test.go +++ b/pkg/cmd/cli/cmd/cancelbuild_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client/testclient" @@ -131,7 +131,7 @@ func TestCancelBuildRun(t *testing.T) { // which is a BuildRequest. It needs to be able to "update"/"get" a // BuildRequest, so we stub one out here. stubbedBuildRequest := &buildapi.BuildRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: test.opts.Namespace, Name: build.Name, }, @@ -144,7 +144,7 @@ func TestCancelBuildRun(t *testing.T) { test.opts.ReportError = func(err error) { test.opts.HasError = true } - test.opts.Mapper = registered.RESTMapper() + test.opts.Mapper = kapi.Registry.RESTMapper() test.opts.BuildNames = []string{"ruby-ex"} test.opts.States = []string{"new", "pending", "running"} @@ -182,8 +182,8 @@ func NewFakeTestBuilds(c *testclient.Fake, ns string) *FakeTestBuilds { return &f } -func (c *FakeTestBuilds) Get(name string) (*buildapi.Build, error) { - obj, err := c.FakeBuilds.Get(name) +func (c *FakeTestBuilds) Get(name string, options metav1.GetOptions) (*buildapi.Build, error) { + obj, err := c.FakeBuilds.Get(name, options) if c.Obj == nil { c.Obj = obj } @@ -203,7 +203,7 @@ func (c *FakeTestBuilds) Update(inObj *buildapi.Build) (*buildapi.Build, error) func genBuild(phase buildapi.BuildPhase) *buildapi.Build { build := buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "ruby-ex", Namespace: "test", }, diff --git a/pkg/cmd/cli/cmd/create/clusterquota.go b/pkg/cmd/cli/cmd/create/clusterquota.go index 7810708c6ffb..f51ccdb1bbf4 100644 --- a/pkg/cmd/cli/cmd/create/clusterquota.go +++ b/pkg/cmd/cli/cmd/create/clusterquota.go @@ -8,12 +8,12 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -78,11 +78,11 @@ func (o *CreateClusterQuotaOptions) Complete(cmd *cobra.Command, f *clientcmd.Fa o.DryRun = cmdutil.GetFlagBool(cmd, "dry-run") - var labelSelector *unversioned.LabelSelector + var labelSelector *metav1.LabelSelector labelSelectorString := cmdutil.GetFlagString(cmd, "project-label-selector") if len(labelSelectorString) > 0 { var err error - labelSelector, err = unversioned.ParseToLabelSelector(labelSelectorString) + labelSelector, err = metav1.ParseToLabelSelector(labelSelectorString) if err != nil { return err } @@ -94,7 +94,7 @@ func (o *CreateClusterQuotaOptions) Complete(cmd *cobra.Command, f *clientcmd.Fa } o.ClusterQuota = "aapi.ClusterResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Name: args[0]}, + ObjectMeta: metav1.ObjectMeta{Name: args[0]}, Spec: quotaapi.ClusterResourceQuotaSpec{ Selector: quotaapi.ClusterResourceQuotaSelector{ LabelSelector: labelSelector, diff --git a/pkg/cmd/cli/cmd/create/deploymentconfig.go b/pkg/cmd/cli/cmd/create/deploymentconfig.go index 8436f22a474f..4af1c0d056c1 100644 --- a/pkg/cmd/cli/cmd/create/deploymentconfig.go +++ b/pkg/cmd/cli/cmd/create/deploymentconfig.go @@ -6,10 +6,11 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -80,12 +81,12 @@ func (o *CreateDeploymentConfigOptions) Complete(cmd *cobra.Command, f *clientcm o.DryRun = cmdutil.GetFlagBool(cmd, "dry-run") o.DC = &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: args[0]}, + ObjectMeta: metav1.ObjectMeta{Name: args[0]}, Spec: deployapi.DeploymentConfigSpec{ Selector: labels, Replicas: 1, Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{Labels: labels}, + ObjectMeta: metav1.ObjectMeta{Labels: labels}, Spec: kapi.PodSpec{ Containers: []kapi.Container{ { diff --git a/pkg/cmd/cli/cmd/create/identity.go b/pkg/cmd/cli/cmd/create/identity.go index 07c336e9b6ba..54477a2bbb36 100644 --- a/pkg/cmd/cli/cmd/create/identity.go +++ b/pkg/cmd/cli/cmd/create/identity.go @@ -7,9 +7,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/cli/cmd/create/imagestream.go b/pkg/cmd/cli/cmd/create/imagestream.go index 8e550db71595..34caa625b2c5 100644 --- a/pkg/cmd/cli/cmd/create/imagestream.go +++ b/pkg/cmd/cli/cmd/create/imagestream.go @@ -6,10 +6,10 @@ import ( "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -67,7 +67,7 @@ func NewCmdCreateImageStream(name, fullName string, f *clientcmd.Factory, out io func (o *CreateImageStreamOptions) Complete(cmd *cobra.Command, f *clientcmd.Factory, args []string) error { o.IS = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{}, + ObjectMeta: metav1.ObjectMeta{}, Spec: imageapi.ImageStreamSpec{}, } diff --git a/pkg/cmd/cli/cmd/create/policy_binding.go b/pkg/cmd/cli/cmd/create/policy_binding.go index 8bd30f45d7cb..49a7ae26941d 100644 --- a/pkg/cmd/cli/cmd/create/policy_binding.go +++ b/pkg/cmd/cli/cmd/create/policy_binding.go @@ -6,9 +6,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/cli/cmd/create/route.go b/pkg/cmd/cli/cmd/create/route.go index 42eae9ebe303..006b260bc643 100644 --- a/pkg/cmd/cli/cmd/create/route.go +++ b/pkg/cmd/cli/cmd/create/route.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -161,7 +161,7 @@ func CreateEdgeRoute(f *clientcmd.Factory, out io.Writer, cmd *cobra.Command, ar RESTMapper: mapper, ClientMapper: resource.ClientMapperFunc(f.ClientForMapping), } - info, err := resourceMapper.InfoForObject(actualRoute, []unversioned.GroupVersionKind{{Group: ""}}) + info, err := resourceMapper.InfoForObject(actualRoute, []schema.GroupVersionKind{{Group: ""}}) if err != nil { return err } @@ -267,7 +267,7 @@ func CreatePassthroughRoute(f *clientcmd.Factory, out io.Writer, cmd *cobra.Comm RESTMapper: mapper, ClientMapper: resource.ClientMapperFunc(f.ClientForMapping), } - info, err := resourceMapper.InfoForObject(actualRoute, []unversioned.GroupVersionKind{{Group: ""}}) + info, err := resourceMapper.InfoForObject(actualRoute, []schema.GroupVersionKind{{Group: ""}}) if err != nil { return err } @@ -405,7 +405,7 @@ func CreateReencryptRoute(f *clientcmd.Factory, out io.Writer, cmd *cobra.Comman RESTMapper: mapper, ClientMapper: resource.ClientMapperFunc(f.ClientForMapping), } - info, err := resourceMapper.InfoForObject(actualRoute, []unversioned.GroupVersionKind{{Group: ""}}) + info, err := resourceMapper.InfoForObject(actualRoute, []schema.GroupVersionKind{{Group: ""}}) if err != nil { return err } diff --git a/pkg/cmd/cli/cmd/create/user.go b/pkg/cmd/cli/cmd/create/user.go index 5303e8e3e45a..bcf3b23746e9 100644 --- a/pkg/cmd/cli/cmd/create/user.go +++ b/pkg/cmd/cli/cmd/create/user.go @@ -6,9 +6,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/cli/cmd/create/user_identity_mapping.go b/pkg/cmd/cli/cmd/create/user_identity_mapping.go index 3f0139a3f4b2..32289c856b5b 100644 --- a/pkg/cmd/cli/cmd/create/user_identity_mapping.go +++ b/pkg/cmd/cli/cmd/create/user_identity_mapping.go @@ -6,10 +6,10 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/cli/cmd/debug.go b/pkg/cmd/cli/cmd/debug.go index 229e293aa00f..ce248cace5c1 100644 --- a/pkg/cmd/cli/cmd/debug.go +++ b/pkg/cmd/cli/cmd/debug.go @@ -11,19 +11,18 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" kclient "k8s.io/kubernetes/pkg/client/unversioned" - "k8s.io/kubernetes/pkg/fields" kcmd "k8s.io/kubernetes/pkg/kubectl/cmd" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/interrupt" "k8s.io/kubernetes/pkg/util/term" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -303,15 +302,6 @@ func (o DebugOptions) Validate() error { return nil } -// SingleObject returns a ListOptions for watching a single object. -// TODO: move to pkg/api/helpers.go upstream. -func SingleObject(meta kapi.ObjectMeta) kapi.ListOptions { - return kapi.ListOptions{ - FieldSelector: fields.OneTermEqualSelector("metadata.name", meta.Name), - ResourceVersion: meta.ResourceVersion, - } -} - // Debug creates and runs a debugging pod. func (o *DebugOptions) Debug() error { pod, originalCommand := o.transformPodForDebug(o.Annotations) @@ -343,7 +333,7 @@ func (o *DebugOptions) Debug() error { stderr = os.Stderr } fmt.Fprintf(stderr, "\nRemoving debug pod ...\n") - if err := o.Attach.PodClient.Pods(pod.Namespace).Delete(pod.Name, kapi.NewDeleteOptions(0)); err != nil { + if err := o.Attach.PodClient.Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)); err != nil { if !kapierrors.IsNotFound(err) { fmt.Fprintf(stderr, "error: unable to delete the debug pod %q: %v\n", pod.Name, err) } @@ -353,7 +343,7 @@ func (o *DebugOptions) Debug() error { glog.V(5).Infof("Created attach arguments: %#v", o.Attach) return o.Attach.InterruptParent.Run(func() error { - w, err := o.Attach.PodClient.Pods(pod.Namespace).Watch(SingleObject(pod.ObjectMeta)) + w, err := o.Attach.PodClient.Pods(pod.Namespace).Watch(metav1.SingleObject(pod.ObjectMeta)) if err != nil { return err } @@ -369,7 +359,7 @@ func (o *DebugOptions) Debug() error { return fmt.Errorf(msg) // switch to logging output case err == kclient.ErrPodCompleted, err == kclient.ErrContainerTerminated, !o.Attach.Stdin: - _, err := kcmd.LogsOptions{ + return kcmd.LogsOptions{ Object: pod, Options: &kapi.PodLogOptions{ Container: o.Attach.ContainerName, @@ -379,7 +369,6 @@ func (o *DebugOptions) Debug() error { LogsForObject: o.LogsForObject, }.RunLogs() - return err case err != nil: return err default: @@ -415,7 +404,7 @@ func (o *DebugOptions) getContainerImageViaDeploymentConfig(pod *kapi.Pod, conta return nil, nil // Pod doesn't appear to have been created by a DeploymentConfig } - dc, err := o.Client.DeploymentConfigs(o.Attach.Pod.Namespace).Get(dcname) + dc, err := o.Client.DeploymentConfigs(o.Attach.Pod.Namespace).Get(dcname, metav1.GetOptions{}) if err != nil { return nil, err } @@ -454,7 +443,7 @@ func (o *DebugOptions) getContainerImageViaDeploymentConfig(pod *kapi.Pod, conta // reasons. func (o *DebugOptions) getContainerImageViaImageStreamImport(container *kapi.Container) (*imageapi.Image, error) { isi := &imageapi.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "oc-debug", }, Spec: imageapi.ImageStreamImportSpec{ @@ -594,7 +583,7 @@ func (o *DebugOptions) transformPodForDebug(annotations map[string]string) (*kap pod.Status = kapi.PodStatus{} pod.UID = "" - pod.CreationTimestamp = unversioned.Time{} + pod.CreationTimestamp = metav1.Time{} pod.SelfLink = "" return pod, originalCommand @@ -612,7 +601,7 @@ func (o *DebugOptions) createPod(pod *kapi.Pod) (*kapi.Pod, error) { } // only continue if the pod has the right annotations - existing, err := o.Attach.PodClient.Pods(namespace).Get(name) + existing, err := o.Attach.PodClient.Pods(namespace).Get(name, metav1.GetOptions{}) if err != nil { return nil, err } @@ -621,7 +610,7 @@ func (o *DebugOptions) createPod(pod *kapi.Pod) (*kapi.Pod, error) { } // delete the existing pod - if err := o.Attach.PodClient.Pods(namespace).Delete(name, kapi.NewDeleteOptions(0)); err != nil && !kapierrors.IsNotFound(err) { + if err := o.Attach.PodClient.Pods(namespace).Delete(name, metav1.NewDeleteOptions(0)); err != nil && !kapierrors.IsNotFound(err) { return nil, fmt.Errorf("unable to delete existing debug pod %q: %v", name, err) } return o.Attach.PodClient.Pods(namespace).Create(pod) diff --git a/pkg/cmd/cli/cmd/deploy.go b/pkg/cmd/cli/cmd/deploy.go index 8e8d6ec67f45..8032586cf8ed 100644 --- a/pkg/cmd/cli/cmd/deploy.go +++ b/pkg/cmd/cli/cmd/deploy.go @@ -13,8 +13,9 @@ import ( units "github.com/docker/go-units" "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -240,7 +241,7 @@ func (o DeployOptions) deploy(config *deployapi.DeploymentConfig) error { // responsibility of the main controller. We need to start by unplugging this assumption from // our client tools. deploymentName := deployutil.LatestDeploymentNameForConfig(config) - deployment, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName) + deployment, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName, metav1.GetOptions{}) if err == nil && !deployutil.IsTerminatedDeployment(deployment) { // Reject attempts to start a concurrent deployment. return fmt.Errorf("#%d is already in progress (%s).\nOptionally, you can cancel this deployment using 'oc rollout cancel dc/%s'.", @@ -293,7 +294,7 @@ func (o DeployOptions) retry(config *deployapi.DeploymentConfig) error { // responsibility of the main controller. We need to start by unplugging this assumption from // our client tools. deploymentName := deployutil.LatestDeploymentNameForConfig(config) - deployment, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName) + deployment, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return fmt.Errorf("unable to find the latest deployment (#%d).\nYou can start a new deployment with 'oc deploy --latest dc/%s'.", config.Status.LatestVersion, config.Name) @@ -313,12 +314,12 @@ func (o DeployOptions) retry(config *deployapi.DeploymentConfig) error { } // Delete the deployer pod as well as the deployment hooks pods, if any - pods, err := o.kubeClient.Core().Pods(config.Namespace).List(kapi.ListOptions{LabelSelector: deployutil.DeployerPodSelector(deploymentName)}) + pods, err := o.kubeClient.Core().Pods(config.Namespace).List(metav1.ListOptions{LabelSelector: deployutil.DeployerPodSelector(deploymentName).String()}) if err != nil { return fmt.Errorf("failed to list deployer/hook pods for deployment #%d: %v", config.Status.LatestVersion, err) } for _, pod := range pods.Items { - err := o.kubeClient.Core().Pods(pod.Namespace).Delete(pod.Name, kapi.NewDeleteOptions(0)) + err := o.kubeClient.Core().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) if err != nil { return fmt.Errorf("failed to delete deployer/hook pod %s for deployment #%d: %v", pod.Name, config.Status.LatestVersion, err) } @@ -346,7 +347,7 @@ func (o DeployOptions) cancel(config *deployapi.DeploymentConfig) error { if config.Spec.Paused { return fmt.Errorf("cannot cancel a paused deployment config") } - deploymentList, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(config.Name)}) + deploymentList, err := o.kubeClient.Core().ReplicationControllers(config.Namespace).List(metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(config.Name).String()}) if err != nil { return err } diff --git a/pkg/cmd/cli/cmd/deploy_test.go b/pkg/cmd/cli/cmd/deploy_test.go index 38b9fb0b78d9..33d955a11ba8 100644 --- a/pkg/cmd/cli/cmd/deploy_test.go +++ b/pkg/cmd/cli/cmd/deploy_test.go @@ -7,11 +7,12 @@ import ( "sort" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" tc "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -44,16 +45,16 @@ func TestCmdDeploy_latestOk(t *testing.T) { updatedConfig := config osClient := &tc.Fake{} - osClient.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + osClient.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, config, nil }) - osClient.AddReactor("update", "deploymentconfigs/instantiate", func(action core.Action) (handled bool, ret runtime.Object, err error) { + osClient.AddReactor("update", "deploymentconfigs/instantiate", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { updatedConfig.Status.LatestVersion++ return true, updatedConfig, nil }) kubeClient := fake.NewSimpleClientset() - kubeClient.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeClient.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploymentFor(config, status), nil }) @@ -95,7 +96,7 @@ func TestCmdDeploy_latestConcurrentRejection(t *testing.T) { // existing deployments can't be looked up due to some fatal server error. func TestCmdDeploy_latestLookupError(t *testing.T) { kubeClient := fake.NewSimpleClientset() - kubeClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeClient.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kerrors.NewInternalError(fmt.Errorf("internal error")) }) @@ -120,7 +121,7 @@ func TestCmdDeploy_retryOk(t *testing.T) { mkpod := func(name string) kapi.Pod { return kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: map[string]string{ deployapi.DeployerPodForDeploymentLabel: existingDeployment.Name, @@ -133,18 +134,18 @@ func TestCmdDeploy_retryOk(t *testing.T) { } kubeClient := fake.NewSimpleClientset() - kubeClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeClient.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, existingDeployment, nil }) - kubeClient.PrependReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updatedDeployment = action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + kubeClient.PrependReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updatedDeployment = action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) return true, updatedDeployment, nil }) - kubeClient.PrependReactor("list", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeClient.PrependReactor("list", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.PodList{Items: existingDeployerPods}, nil }) - kubeClient.PrependReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - deletedPods = append(deletedPods, action.(core.DeleteAction).GetName()) + kubeClient.PrependReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + deletedPods = append(deletedPods, action.(clientgotesting.DeleteAction).GetName()) return true, nil, nil }) @@ -244,12 +245,12 @@ func TestCmdDeploy_cancelOk(t *testing.T) { } kubeClient := fake.NewSimpleClientset() - kubeClient.PrependReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updated := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + kubeClient.PrependReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updated := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployments = append(updatedDeployments, *updated) return true, updated, nil }) - kubeClient.PrependReactor("list", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeClient.PrependReactor("list", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, existingDeployments, nil }) @@ -295,8 +296,8 @@ func TestDeploy_reenableTriggers(t *testing.T) { var updated *deployapi.DeploymentConfig osClient := &tc.Fake{} - osClient.AddReactor("update", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updated = action.(core.UpdateAction).GetObject().(*deployapi.DeploymentConfig) + osClient.AddReactor("update", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updated = action.(clientgotesting.UpdateAction).GetObject().(*deployapi.DeploymentConfig) return true, updated, nil }) diff --git a/pkg/cmd/cli/cmd/export.go b/pkg/cmd/cli/cmd/export.go index ea12cc171ea2..20cff839d5c4 100644 --- a/pkg/cmd/cli/cmd/export.go +++ b/pkg/cmd/cli/cmd/export.go @@ -7,12 +7,12 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" diff --git a/pkg/cmd/cli/cmd/exporter.go b/pkg/cmd/cli/cmd/exporter.go index 504f739598b9..9d3662982278 100644 --- a/pkg/cmd/cli/cmd/exporter.go +++ b/pkg/cmd/cli/cmd/exporter.go @@ -8,19 +8,20 @@ import ( "github.com/golang/glog" "github.com/spf13/pflag" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/registry/core/controller" "k8s.io/kubernetes/pkg/registry/core/endpoint" "k8s.io/kubernetes/pkg/registry/core/namespace" "k8s.io/kubernetes/pkg/registry/core/node" "k8s.io/kubernetes/pkg/registry/core/persistentvolume" "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim" "k8s.io/kubernetes/pkg/registry/core/pod" + "k8s.io/kubernetes/pkg/registry/core/replicationcontroller" "k8s.io/kubernetes/pkg/registry/core/resourcequota" "k8s.io/kubernetes/pkg/registry/core/secret" "k8s.io/kubernetes/pkg/registry/core/serviceaccount" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" buildrest "github.com/openshift/origin/pkg/build/registry/build" @@ -44,12 +45,12 @@ type DefaultExporter struct{} func (e *DefaultExporter) AddExportOptions(flags *pflag.FlagSet) { } -func exportObjectMeta(objMeta *kapi.ObjectMeta, exact bool) { +func exportObjectMeta(objMeta *metav1.ObjectMeta, exact bool) { objMeta.UID = "" if !exact { objMeta.Namespace = "" } - objMeta.CreationTimestamp = unversioned.Time{} + objMeta.CreationTimestamp = metav1.Time{} objMeta.DeletionTimestamp = nil objMeta.ResourceVersion = "" objMeta.SelfLink = "" @@ -59,12 +60,12 @@ func exportObjectMeta(objMeta *kapi.ObjectMeta, exact bool) { } func (e *DefaultExporter) Export(obj runtime.Object, exact bool) error { - if meta, err := kapi.ObjectMetaFor(obj); err == nil { + if meta, err := metav1.ObjectMetaFor(obj); err == nil { exportObjectMeta(meta, exact) } else { glog.V(4).Infof("Object of type %v does not have ObjectMeta: %v", reflect.TypeOf(obj), err) } - ctx := kapi.NewContext() + ctx := apirequest.NewContext() switch t := obj.(type) { case *kapi.Endpoints: @@ -89,7 +90,7 @@ func (e *DefaultExporter) Export(obj runtime.Object, exact bool) error { case *kapi.PersistentVolume: persistentvolume.Strategy.PrepareForCreate(ctx, obj) case *kapi.ReplicationController: - controller.Strategy.PrepareForCreate(ctx, obj) + replicationcontroller.Strategy.PrepareForCreate(ctx, obj) case *kapi.Pod: pod.Strategy.PrepareForCreate(ctx, obj) case *kapi.PodTemplate: diff --git a/pkg/cmd/cli/cmd/exporter_test.go b/pkg/cmd/cli/cmd/exporter_test.go index 350b7a54c66b..44f8357f446c 100644 --- a/pkg/cmd/cli/cmd/exporter_test.go +++ b/pkg/cmd/cli/cmd/exporter_test.go @@ -4,8 +4,9 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -30,7 +31,7 @@ func TestExport(t *testing.T) { name: "export deploymentConfig", object: deploytest.OkDeploymentConfig(1), expectedObj: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "config", Generation: 1, }, @@ -42,7 +43,7 @@ func TestExport(t *testing.T) { { name: "export imageStream", object: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "other", }, @@ -63,7 +64,7 @@ func TestExport(t *testing.T) { }, }, expectedObj: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "", }, @@ -87,7 +88,7 @@ func TestExport(t *testing.T) { { name: "remove unexportable SA secrets", object: &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: baseSA.Name, }, ImagePullSecrets: []kapi.LocalObjectReference{ @@ -101,7 +102,7 @@ func TestExport(t *testing.T) { }, }, expectedObj: &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: baseSA.Name, }, ImagePullSecrets: []kapi.LocalObjectReference{ @@ -116,7 +117,7 @@ func TestExport(t *testing.T) { { name: "do not remove unexportable SA secrets with exact", object: &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: baseSA.Name, }, ImagePullSecrets: []kapi.LocalObjectReference{ @@ -130,7 +131,7 @@ func TestExport(t *testing.T) { }, }, expectedObj: &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: baseSA.Name, }, ImagePullSecrets: []kapi.LocalObjectReference{ diff --git a/pkg/cmd/cli/cmd/extract.go b/pkg/cmd/cli/cmd/extract.go index 358574c8af9d..bf6bb577a31a 100644 --- a/pkg/cmd/cli/cmd/extract.go +++ b/pkg/cmd/cli/cmd/extract.go @@ -10,11 +10,11 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" diff --git a/pkg/cmd/cli/cmd/idle.go b/pkg/cmd/cli/cmd/idle.go index 1dd9bd614dfb..07f0464bb8ae 100644 --- a/pkg/cmd/cli/cmd/idle.go +++ b/pkg/cmd/cli/cmd/idle.go @@ -10,22 +10,24 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apis/extensions" + extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/strategicpatch" osclient "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" "github.com/openshift/origin/pkg/cmd/util/clientcmd" deployapi "github.com/openshift/origin/pkg/deploy/api" - deployclient "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" + deployclient "github.com/openshift/origin/pkg/deploy/clientset/internalclientset/typed/deploy/internalversion" unidlingapi "github.com/openshift/origin/pkg/unidling/api" utilunidling "github.com/openshift/origin/pkg/unidling/util" utilerrors "github.com/openshift/origin/pkg/util/errors" @@ -202,7 +204,7 @@ func (o *IdleOptions) calculateIdlableAnnotationsByService(f *clientcmd.Factory) if pod, ok := podsLoaded[ref]; ok { return pod, nil } - pod, err := client.Pods(ref.Namespace).Get(ref.Name) + pod, err := client.Core().Pods(ref.Namespace).Get(ref.Name, metav1.GetOptions{}) if err != nil { return nil, err } @@ -213,21 +215,21 @@ func (o *IdleOptions) calculateIdlableAnnotationsByService(f *clientcmd.Factory) } controllersLoaded := make(map[kapi.ObjectReference]runtime.Object) - helpers := make(map[unversioned.GroupKind]*resource.Helper) + helpers := make(map[schema.GroupKind]*resource.Helper) getController := func(ref kapi.ObjectReference) (runtime.Object, error) { if controller, ok := controllersLoaded[ref]; ok { return controller, nil } - gv, err := unversioned.ParseGroupVersion(ref.APIVersion) + gv, err := schema.ParseGroupVersion(ref.APIVersion) if err != nil { return nil, err } // just get the unversioned version of this - gk := unversioned.GroupKind{Group: gv.Group, Kind: ref.Kind} + gk := schema.GroupKind{Group: gv.Group, Kind: ref.Kind} helper, ok := helpers[gk] if !ok { var mapping *meta.RESTMapping - mapping, err = mapper.RESTMapping(unversioned.GroupKind{Group: gv.Group, Kind: ref.Kind}, "") + mapping, err = mapper.RESTMapping(schema.GroupKind{Group: gv.Group, Kind: ref.Kind}, "") if err != nil { return nil, err } @@ -326,7 +328,7 @@ func getControllerRef(obj runtime.Object, decoder runtime.Decoder) (*kapi.Object } func makeCrossGroupObjRef(ref *kapi.ObjectReference) (unidlingapi.CrossGroupObjectReference, error) { - gv, err := unversioned.ParseGroupVersion(ref.APIVersion) + gv, err := schema.ParseGroupVersion(ref.APIVersion) if err != nil { return unidlingapi.CrossGroupObjectReference{}, err } @@ -482,7 +484,7 @@ func setIdleAnnotations(serviceName types.NamespacedName, annotations map[string } // patchObj patches calculates a patch between the given new object and the existing marshaled object -func patchObj(obj runtime.Object, metadata meta.Object, oldData []byte, mapping *meta.RESTMapping, f *clientcmd.Factory) (runtime.Object, error) { +func patchObj(obj runtime.Object, metadata metav1.Object, oldData []byte, mapping *meta.RESTMapping, f *clientcmd.Factory) (runtime.Object, error) { newData, err := json.Marshal(obj) if err != nil { return nil, err @@ -499,7 +501,7 @@ func patchObj(obj runtime.Object, metadata meta.Object, oldData []byte, mapping } helper := resource.NewHelper(client, mapping) - return helper.Patch(metadata.GetNamespace(), metadata.GetName(), kapi.StrategicMergePatchType, patchBytes) + return helper.Patch(metadata.GetNamespace(), metadata.GetName(), types.StrategicMergePatchType, patchBytes) } type scaleInfo struct { @@ -535,7 +537,8 @@ func (o *IdleOptions) RunIdle(f *clientcmd.Factory) error { return err } - delegScaleGetter := osclient.NewDelegatingScaleNamespacer(oclient, kclient.Extensions()) + externalKubeExtensionClient := kextensionsclient.New(kclient.Core().RESTClient()) + delegScaleGetter := osclient.NewDelegatingScaleNamespacer(oclient, externalKubeExtensionClient) dcGetter := deployclient.New(oclient.RESTClient) scaleAnnotater := utilunidling.NewScaleAnnotater(delegScaleGetter, dcGetter, kclient.Core(), func(currentReplicas int32, annotations map[string]string) { diff --git a/pkg/cmd/cli/cmd/idle_test.go b/pkg/cmd/cli/cmd/idle_test.go index ad70d1498bfb..b32fe9b6547d 100644 --- a/pkg/cmd/cli/cmd/idle_test.go +++ b/pkg/cmd/cli/cmd/idle_test.go @@ -7,11 +7,12 @@ import ( deployapi "github.com/openshift/origin/pkg/deploy/api" unidlingapi "github.com/openshift/origin/pkg/unidling/api" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kruntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + ktypes "k8s.io/apimachinery/pkg/types" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - kunversioned "k8s.io/kubernetes/pkg/api/unversioned" - kruntime "k8s.io/kubernetes/pkg/runtime" - ktypes "k8s.io/kubernetes/pkg/types" // install all APIs _ "github.com/openshift/origin/pkg/api/install" @@ -22,7 +23,7 @@ func makePod(name, rcName string, t *testing.T) kapi.Pod { // this snippet is from kube's code to set the created-by annotation // (which itself does not do quite what we want here) - codec := kapi.Codecs.LegacyCodec(kunversioned.GroupVersion{Group: kapi.GroupName, Version: "v1"}) + codec := kapi.Codecs.LegacyCodec(schema.GroupVersion{Group: kapi.GroupName, Version: "v1"}) createdByRefJson, err := kruntime.Encode(codec, &kapi.SerializedReference{ Reference: kapi.ObjectReference{ @@ -37,7 +38,7 @@ func makePod(name, rcName string, t *testing.T) kapi.Pod { } return kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: "somens", Annotations: map[string]string{ @@ -49,7 +50,7 @@ func makePod(name, rcName string, t *testing.T) kapi.Pod { func makeRC(name, dcName, createdByDCName string, t *testing.T) *kapi.ReplicationController { rc := kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: "somens", Annotations: make(map[string]string), @@ -57,7 +58,7 @@ func makeRC(name, dcName, createdByDCName string, t *testing.T) *kapi.Replicatio } if createdByDCName != "" { - codec := kapi.Codecs.LegacyCodec(kunversioned.GroupVersion{Group: kapi.GroupName, Version: "v1"}) + codec := kapi.Codecs.LegacyCodec(schema.GroupVersion{Group: kapi.GroupName, Version: "v1"}) createdByRefJson, err := kruntime.Encode(codec, &kapi.SerializedReference{ Reference: kapi.ObjectReference{ Kind: "DeploymentConfig", @@ -148,7 +149,7 @@ func TestFindIdlablesForEndpoints(t *testing.T) { if pod, ok := pods[ref]; ok { return &pod, nil } - return nil, kerrors.NewNotFound(kunversioned.GroupResource{Group: kapi.GroupName, Resource: "Pod"}, ref.Name) + return nil, kerrors.NewNotFound(schema.GroupResource{Group: kapi.GroupName, Resource: "Pod"}, ref.Name) } controllers := map[kapi.ObjectReference]kruntime.Object{ @@ -166,11 +167,11 @@ func TestFindIdlablesForEndpoints(t *testing.T) { // NB: this GroupResource declaration plays fast and loose with various distinctions // but is good enough for being an error in a test - return nil, kerrors.NewNotFound(kunversioned.GroupResource{Group: kapi.GroupName, Resource: ref.Kind}, ref.Name) + return nil, kerrors.NewNotFound(schema.GroupResource{Group: kapi.GroupName, Resource: ref.Kind}, ref.Name) } - codec := kapi.Codecs.LegacyCodec(kunversioned.GroupVersion{Group: kapi.GroupName, Version: "v1"}) + codec := kapi.Codecs.LegacyCodec(schema.GroupVersion{Group: kapi.GroupName, Version: "v1"}) refSet, err := findScalableResourcesForEndpoints(endpoints, codec, getPod, getController) if err != nil { diff --git a/pkg/cmd/cli/cmd/importer/appjson.go b/pkg/cmd/cli/cmd/importer/appjson.go index 8775699eb360..99353a1c3e8c 100644 --- a/pkg/cmd/cli/cmd/importer/appjson.go +++ b/pkg/cmd/cli/cmd/importer/appjson.go @@ -13,12 +13,11 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -65,7 +64,7 @@ type AppJSONOptions struct { AsTemplate string PrintObject func(runtime.Object) error - OutputVersions []unversioned.GroupVersion + OutputVersions []schema.GroupVersion Namespace string Client client.TemplateConfigsNamespacer @@ -116,13 +115,13 @@ func NewCmdAppJSON(fullName string, f *clientcmd.Factory, in io.Reader, out, err func (o *AppJSONOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args []string) error { version, _ := cmd.Flags().GetString("output-version") for _, v := range strings.Split(version, ",") { - gv, err := unversioned.ParseGroupVersion(v) + gv, err := schema.ParseGroupVersion(v) if err != nil { return fmt.Errorf("provided output-version %q is not valid: %v", v, err) } o.OutputVersions = append(o.OutputVersions, gv) } - o.OutputVersions = append(o.OutputVersions, registered.EnabledVersions()...) + o.OutputVersions = append(o.OutputVersions, kapi.Registry.EnabledVersions()...) o.Action.Bulk.Mapper = clientcmd.ResourceMapper(f) o.Action.Bulk.Op = configcmd.Create diff --git a/pkg/cmd/cli/cmd/importimage.go b/pkg/cmd/cli/cmd/importimage.go index 94496cd04820..05c41da61864 100644 --- a/pkg/cmd/cli/cmd/importimage.go +++ b/pkg/cmd/cli/cmd/importimage.go @@ -8,13 +8,13 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/fields" - kctl "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/watch" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/describe" @@ -165,7 +165,7 @@ func (o *ImportImageOptions) Run() error { // optimization, use the image stream returned by the call d := describe.ImageStreamDescriber{Interface: o.osClient} - info, err := d.Describe(o.Namespace, stream.Name, kctl.DescriberSettings{}) + info, err := d.Describe(o.Namespace, stream.Name, kprinters.DescriberSettings{}) if err != nil { return err } @@ -210,7 +210,7 @@ func (o *ImportImageOptions) Run() error { fmt.Fprint(o.out, "The import completed successfully.\n\n") d := describe.ImageStreamDescriber{Interface: o.osClient} - info, err := d.Describe(updatedStream.Namespace, updatedStream.Name, kctl.DescriberSettings{}) + info, err := d.Describe(updatedStream.Namespace, updatedStream.Name, kprinters.DescriberSettings{}) if err != nil { return err } @@ -221,11 +221,11 @@ func (o *ImportImageOptions) Run() error { func wasError(isi *imageapi.ImageStreamImport) bool { for _, image := range isi.Status.Images { - if image.Status.Status == unversioned.StatusFailure { + if image.Status.Status == metav1.StatusFailure { return true } } - if isi.Status.Repository != nil && isi.Status.Repository.Status.Status == unversioned.StatusFailure { + if isi.Status.Repository != nil && isi.Status.Repository.Status.Status == metav1.StatusFailure { return true } return false @@ -241,7 +241,7 @@ func (e importError) Error() string { } func (o *ImportImageOptions) waitForImport(resourceVersion string) (*imageapi.ImageStream, error) { - streamWatch, err := o.isClient.Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", o.Name), ResourceVersion: resourceVersion}) + streamWatch, err := o.isClient.Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", o.Name).String(), ResourceVersion: resourceVersion}) if err != nil { return nil, err } @@ -281,7 +281,7 @@ func (o *ImportImageOptions) waitForImport(resourceVersion string) (*imageapi.Im func (o *ImportImageOptions) createImageImport() (*imageapi.ImageStream, *imageapi.ImageStreamImport, error) { var isi *imageapi.ImageStreamImport - stream, err := o.isClient.Get(o.Name) + stream, err := o.isClient.Get(o.Name, metav1.GetOptions{}) // no stream, try creating one if err != nil { if !errors.IsNotFound(err) { @@ -438,13 +438,13 @@ func (o *ImportImageOptions) newImageStream() (*imageapi.ImageStream, *imageapi. // this is only for the legacy path that we need to create the IS. if o.All { stream = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: o.Name}, + ObjectMeta: metav1.ObjectMeta{Name: o.Name}, Spec: imageapi.ImageStreamSpec{DockerImageRepository: from}, } isi = o.newImageStreamImportAll(stream, from) } else { stream = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: o.Name}, + ObjectMeta: metav1.ObjectMeta{Name: o.Name}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ tag: { @@ -479,7 +479,7 @@ func (o *ImportImageOptions) getReferencePolicy() imageapi.TagReferencePolicy { func (o *ImportImageOptions) newImageStreamImport(stream *imageapi.ImageStream) (*imageapi.ImageStreamImport, bool) { isi := &imageapi.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: stream.Name, Namespace: o.Namespace, ResourceVersion: stream.ResourceVersion, diff --git a/pkg/cmd/cli/cmd/importimage_test.go b/pkg/cmd/cli/cmd/importimage_test.go index 96eeb3dea8f0..3a61b1e93e13 100644 --- a/pkg/cmd/cli/cmd/importimage_test.go +++ b/pkg/cmd/cli/cmd/importimage_test.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "github.com/openshift/origin/pkg/client/testclient" imageapi "github.com/openshift/origin/pkg/image/api" @@ -49,7 +49,7 @@ func TestCreateImageImport(t *testing.T) { "import from .spec.dockerImageRepository": { name: "testis", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -63,7 +63,7 @@ func TestCreateImageImport(t *testing.T) { "import from .spec.dockerImageRepository non-existing tag": { name: "testis:nonexisting", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -75,7 +75,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis", all: true, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -91,7 +91,7 @@ func TestCreateImageImport(t *testing.T) { all: true, err: "different import spec", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -104,7 +104,7 @@ func TestCreateImageImport(t *testing.T) { all: true, confirm: true, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -118,7 +118,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis", all: true, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ "latest": {From: &kapi.ObjectReference{Kind: "DockerImage", Name: "repo.com/somens/someimage:latest"}}, @@ -141,7 +141,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis", all: true, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", Annotations: map[string]string{imageapi.InsecureRepositoryAnnotation: "true"}, @@ -171,7 +171,7 @@ func TestCreateImageImport(t *testing.T) { all: true, insecure: newBool(true), stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ "latest": {From: &kapi.ObjectReference{Kind: "DockerImage", Name: "repo.com/somens/someimage:latest"}}, @@ -197,7 +197,7 @@ func TestCreateImageImport(t *testing.T) { all: true, err: "does not have tags pointing to external docker images", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ "latest": {From: &kapi.ObjectReference{Kind: "ImageStreamTag", Name: "otheris:latest"}}, @@ -209,13 +209,13 @@ func TestCreateImageImport(t *testing.T) { name: "testis", err: "does not have valid docker images", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, }, }, "import latest tag": { name: "testis:latest", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", }, @@ -233,7 +233,7 @@ func TestCreateImageImport(t *testing.T) { "import existing tag": { name: "testis:existing", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", }, @@ -252,7 +252,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis:latest", err: "does not exist on the image stream", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", }, @@ -266,7 +266,7 @@ func TestCreateImageImport(t *testing.T) { "import tag from .spec.tags": { name: "testis:mytag", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", }, @@ -286,7 +286,7 @@ func TestCreateImageImport(t *testing.T) { "import tag from .spec.tags with Kind != DockerImage": { name: "testis:mytag", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", }, @@ -303,7 +303,7 @@ func TestCreateImageImport(t *testing.T) { "use insecure annotation": { name: "testis", stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", Annotations: map[string]string{imageapi.InsecureRepositoryAnnotation: "true"}, @@ -323,7 +323,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis", insecure: newBool(false), stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testis", Namespace: "other", Annotations: map[string]string{imageapi.InsecureRepositoryAnnotation: "true"}, @@ -343,7 +343,7 @@ func TestCreateImageImport(t *testing.T) { name: "testis:mytag", referencePolicy: localReferencePolicy, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ "mytag": { @@ -363,7 +363,7 @@ func TestCreateImageImport(t *testing.T) { all: true, referencePolicy: localReferencePolicy, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ Tags: map[string]imageapi.TagReference{ "mytag": {From: &kapi.ObjectReference{Kind: "DockerImage", Name: "repo.com/somens/someimage:mytag"}}, @@ -389,7 +389,7 @@ func TestCreateImageImport(t *testing.T) { all: true, referencePolicy: localReferencePolicy, stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "testis", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "testis", Namespace: "other"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "repo.com/somens/someimage", Tags: make(map[string]imageapi.TagReference), @@ -461,7 +461,7 @@ func TestWasError(t *testing.T) { isi: &imageapi.ImageStreamImport{ Status: imageapi.ImageStreamImportStatus{ Images: []imageapi.ImageImportStatus{ - {Status: unversioned.Status{Status: unversioned.StatusFailure}}, + {Status: metav1.Status{Status: metav1.StatusFailure}}, }, }, }, @@ -471,7 +471,7 @@ func TestWasError(t *testing.T) { isi: &imageapi.ImageStreamImport{ Status: imageapi.ImageStreamImportStatus{ Repository: &imageapi.RepositoryImportStatus{ - Status: unversioned.Status{Status: unversioned.StatusFailure}, + Status: metav1.Status{Status: metav1.StatusFailure}, }, }, }, diff --git a/pkg/cmd/cli/cmd/login/helpers.go b/pkg/cmd/cli/cmd/login/helpers.go index e8be1945571b..bc8aaeea0165 100644 --- a/pkg/cmd/cli/cmd/login/helpers.go +++ b/pkg/cmd/cli/cmd/login/helpers.go @@ -12,14 +12,14 @@ import ( "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/user/api" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/cmd/util/term" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/util/sets" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" kterm "k8s.io/kubernetes/pkg/util/term" ) @@ -127,7 +127,7 @@ func getHostPort(hostURL string) (string, string, *url.URL, error) { func whoAmI(clientConfig *restclient.Config) (*api.User, error) { client, err := client.New(clientConfig) - me, err := client.Users().Get("~") + me, err := client.Users().Get("~", metav1.GetOptions{}) // if we're talking to kube (or likely talking to kube), if kerrors.IsNotFound(err) || kerrors.IsForbidden(err) { @@ -135,10 +135,10 @@ func whoAmI(clientConfig *restclient.Config) (*api.User, error) { case len(clientConfig.BearerToken) > 0: // the user has already been willing to provide the token on the CLI, so they probably // don't mind using it again if they switch to and from this user - return &api.User{ObjectMeta: kapi.ObjectMeta{Name: clientConfig.BearerToken}}, nil + return &api.User{ObjectMeta: metav1.ObjectMeta{Name: clientConfig.BearerToken}}, nil case len(clientConfig.Username) > 0: - return &api.User{ObjectMeta: kapi.ObjectMeta{Name: clientConfig.Username}}, nil + return &api.User{ObjectMeta: metav1.ObjectMeta{Name: clientConfig.Username}}, nil } } diff --git a/pkg/cmd/cli/cmd/login/login.go b/pkg/cmd/cli/cmd/login/login.go index 6af5f1506345..790a565db205 100644 --- a/pkg/cmd/cli/cmd/login/login.go +++ b/pkg/cmd/cli/cmd/login/login.go @@ -9,9 +9,9 @@ import ( "github.com/spf13/cobra" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/util/term" @@ -139,7 +139,7 @@ func (o *LoginOptions) Complete(f *osclientcmd.Factory, cmd *cobra.Command, args o.CertFile = kcmdutil.GetFlagString(cmd, "client-certificate") o.KeyFile = kcmdutil.GetFlagString(cmd, "client-key") apiVersionString := kcmdutil.GetFlagString(cmd, "api-version") - o.APIVersion = unversioned.GroupVersion{} + o.APIVersion = schema.GroupVersion{} // if the API version isn't explicitly passed, use the API version from the default context (same rules as the server above) if len(apiVersionString) == 0 { @@ -150,7 +150,7 @@ func (o *LoginOptions) Complete(f *osclientcmd.Factory, cmd *cobra.Command, args } } - o.APIVersion, err = unversioned.ParseGroupVersion(apiVersionString) + o.APIVersion, err = schema.ParseGroupVersion(apiVersionString) if err != nil { return err } diff --git a/pkg/cmd/cli/cmd/login/loginoptions.go b/pkg/cmd/cli/cmd/login/loginoptions.go index 6e571c0586d0..eebc33a77942 100644 --- a/pkg/cmd/cli/cmd/login/loginoptions.go +++ b/pkg/cmd/cli/cmd/login/loginoptions.go @@ -11,13 +11,13 @@ import ( "os" "path/filepath" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/util/sets" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" kterm "k8s.io/kubernetes/pkg/util/term" "github.com/openshift/origin/pkg/client" @@ -44,7 +44,7 @@ type LoginOptions struct { Server string CAFile string InsecureTLS bool - APIVersion unversioned.GroupVersion + APIVersion schema.GroupVersion // flags and printing helpers Username string @@ -266,7 +266,7 @@ func (o *LoginOptions) gatherProjectInfo() error { return err } - projectsList, err := oClient.Projects().List(kapi.ListOptions{}) + projectsList, err := oClient.Projects().List(metav1.ListOptions{}) // if we're running on kube (or likely kube), just set it to "default" if kerrors.IsNotFound(err) || kerrors.IsForbidden(err) { fmt.Fprintf(o.Out, "Using \"default\". You can switch projects with:\n\n '%s project '\n", o.CommandName) @@ -285,7 +285,7 @@ func (o *LoginOptions) gatherProjectInfo() error { if len(o.DefaultNamespace) > 0 && !projects.Has(o.DefaultNamespace) { // Attempt a direct get of our current project in case it hasn't appeared in the list yet - if currentProject, err := oClient.Projects().Get(o.DefaultNamespace); err == nil { + if currentProject, err := oClient.Projects().Get(o.DefaultNamespace, metav1.GetOptions{}); err == nil { // If we get it successfully, add it to the list projectsItems = append(projectsItems, *currentProject) projects.Insert(currentProject.Name) @@ -310,14 +310,14 @@ func (o *LoginOptions) gatherProjectInfo() error { default: namespace := o.DefaultNamespace if !projects.Has(namespace) { - if namespace != kapi.NamespaceDefault && projects.Has(kapi.NamespaceDefault) { - namespace = kapi.NamespaceDefault + if namespace != metav1.NamespaceDefault && projects.Has(metav1.NamespaceDefault) { + namespace = metav1.NamespaceDefault } else { namespace = projects.List()[0] } } - current, err := oClient.Projects().Get(namespace) + current, err := oClient.Projects().Get(namespace, metav1.GetOptions{}) if err != nil && !kerrors.IsNotFound(err) && !clientcmd.IsForbidden(err) { return err } diff --git a/pkg/cmd/cli/cmd/login/loginoptions_test.go b/pkg/cmd/cli/cmd/login/loginoptions_test.go index 000f7ebf392a..b65b74d2f3b2 100644 --- a/pkg/cmd/cli/cmd/login/loginoptions_test.go +++ b/pkg/cmd/cli/cmd/login/loginoptions_test.go @@ -14,8 +14,8 @@ import ( "github.com/openshift/origin/pkg/cmd/cli/config" "github.com/openshift/origin/pkg/cmd/util/clientcmd" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + restclient "k8s.io/client-go/rest" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) func TestNormalizeServerURL(t *testing.T) { @@ -282,8 +282,10 @@ func TestDialToHTTPSServer(t *testing.T) { for name, test := range testCases { t.Logf("evaluating test: %s", name) clientConfig := &restclient.Config{ - Host: test.serverURL, - Insecure: test.skipTLSVerify, + Host: test.serverURL, + TLSClientConfig: restclient.TLSClientConfig{ + Insecure: test.skipTLSVerify, + }, } if err := dialToServer(*clientConfig); err != nil { if test.evalExpectedErr == nil || !test.evalExpectedErr(err) { diff --git a/pkg/cmd/cli/cmd/login/logout.go b/pkg/cmd/cli/cmd/login/logout.go index ffdc34fab6e5..94c1009d2aed 100644 --- a/pkg/cmd/cli/cmd/login/logout.go +++ b/pkg/cmd/cli/cmd/login/logout.go @@ -8,9 +8,9 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/cli/cmd/login/util/util.go b/pkg/cmd/cli/cmd/login/util/util.go index eff71f5b5ebb..d8cac0793121 100644 --- a/pkg/cmd/cli/cmd/login/util/util.go +++ b/pkg/cmd/cli/cmd/login/util/util.go @@ -1,7 +1,7 @@ package util import ( - "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/cli/cmd/logs.go b/pkg/cmd/cli/cmd/logs.go index 8276d605be60..489d38540f9f 100644 --- a/pkg/cmd/cli/cmd/logs.go +++ b/pkg/cmd/cli/cmd/logs.go @@ -7,12 +7,12 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" kcmd "k8s.io/kubernetes/pkg/kubectl/cmd" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/templates" @@ -189,6 +189,5 @@ func (o OpenShiftLogsOptions) RunLog() error { // Use our own options object. o.KubeLogOptions.Options = o.Options } - _, err := o.KubeLogOptions.RunLogs() - return err + return o.KubeLogOptions.RunLogs() } diff --git a/pkg/cmd/cli/cmd/newapp.go b/pkg/cmd/cli/cmd/newapp.go index 5fd5817be57f..85bd1bc360f3 100644 --- a/pkg/cmd/cli/cmd/newapp.go +++ b/pkg/cmd/cli/cmd/newapp.go @@ -15,18 +15,19 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" ctl "k8s.io/kubernetes/pkg/kubectl" kcmd "k8s.io/kubernetes/pkg/kubectl/cmd" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/templates" @@ -387,7 +388,7 @@ func followInstallation(config *newcmd.AppConfig, input string, pod *kapi.Pod, l LogsForObject: logsForObjectFn, Out: config.Out, } - _, logErr := opts.RunLogs() + logErr := opts.RunLogs() // status of the pod may take tens of seconds to propagate if err := wait.PollImmediate(500*time.Millisecond, 30*time.Second, installationComplete(podClient, pod.Name, config.Out)); err != nil { @@ -407,7 +408,7 @@ func followInstallation(config *newcmd.AppConfig, input string, pod *kapi.Pod, l func installationStarted(c kcoreclient.PodInterface, name string, s kcoreclient.SecretInterface) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Get(name) + pod, err := c.Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -415,7 +416,7 @@ func installationStarted(c kcoreclient.PodInterface, name string, s kcoreclient. return false, nil } // delete a secret named the same as the pod if it exists - if secret, err := s.Get(name); err == nil { + if secret, err := s.Get(name, metav1.GetOptions{}); err == nil { if secret.Annotations[newcmd.GeneratedForJob] == "true" && secret.Annotations[newcmd.GeneratedForJobFor] == pod.Annotations[newcmd.GeneratedForJobFor] { if err := s.Delete(name, nil); err != nil { @@ -429,7 +430,7 @@ func installationStarted(c kcoreclient.PodInterface, name string, s kcoreclient. func installationComplete(c kcoreclient.PodInterface, name string, out io.Writer) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Get(name) + pod, err := c.Get(name, metav1.GetOptions{}) if err != nil { if kapierrors.IsNotFound(err) { return false, fmt.Errorf("installation pod was deleted; unable to determine whether it completed successfully") diff --git a/pkg/cmd/cli/cmd/newapp_test.go b/pkg/cmd/cli/cmd/newapp_test.go index 1447809a7a91..48ec33a3fd1e 100644 --- a/pkg/cmd/cli/cmd/newapp_test.go +++ b/pkg/cmd/cli/cmd/newapp_test.go @@ -9,7 +9,7 @@ import ( "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/generate/app" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" configcmd "github.com/openshift/origin/pkg/config/cmd" newcmd "github.com/openshift/origin/pkg/generate/app/cmd" @@ -355,7 +355,7 @@ func TestNewAppRunQueryActions(t *testing.T) { tfVisited = true match := &app.ComponentMatch{ Template: &templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testfile", Namespace: "openshift", }, @@ -400,7 +400,7 @@ func fakeTemplateList() *templateapi.TemplateList { return &templateapi.TemplateList{ Items: []templateapi.Template{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "openshift", }, @@ -413,7 +413,7 @@ func fakeImagestreamList() *imageapi.ImageStreamList { return &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testimage", Namespace: "openshift", }, diff --git a/pkg/cmd/cli/cmd/observe/observe.go b/pkg/cmd/cli/cmd/observe/observe.go index cc9b1a2c524f..71c7bec80846 100644 --- a/pkg/cmd/cli/cmd/observe/observe.go +++ b/pkg/cmd/cli/cmd/observe/observe.go @@ -22,16 +22,18 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/healthz" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/server/healthz" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/jsonpath" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/jsonpath" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -289,7 +291,7 @@ func (o *ObserveOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args return fmt.Errorf("you may only specify one argument containing the resource to observe (use '--' to separate your resource and your command)") } - gr := unversioned.ParseGroupResource(args[0]) + gr := schema.ParseGroupResource(args[0]) if gr.Empty() { return fmt.Errorf("unknown resource argument") } @@ -599,7 +601,7 @@ func (o *ObserveOptions) calculateArguments(delta cache.Delta) (runtime.Object, if err != nil { return nil, nil, nil, err } - unstructured := &runtime.Unstructured{} + unstructured := &unstructured.Unstructured{} unstructured.SetNamespace(namespace) unstructured.SetName(name) object = unstructured @@ -770,12 +772,20 @@ type restListWatcher struct { namespace string } -func (lw restListWatcher) List(opt api.ListOptions) (runtime.Object, error) { - return lw.Helper.List(lw.namespace, "", opt.LabelSelector, false) +func (lw restListWatcher) List(opt metav1.ListOptions) (runtime.Object, error) { + labelSelector, err := labels.Parse(opt.LabelSelector) + if err != nil { + return nil, err + } + return lw.Helper.List(lw.namespace, "", labelSelector, false) } -func (lw restListWatcher) Watch(opt api.ListOptions) (watch.Interface, error) { - return lw.Helper.Watch(lw.namespace, opt.ResourceVersion, "", opt.LabelSelector) +func (lw restListWatcher) Watch(opt metav1.ListOptions) (watch.Interface, error) { + labelSelector, err := labels.Parse(opt.LabelSelector) + if err != nil { + return nil, err + } + return lw.Helper.Watch(lw.namespace, opt.ResourceVersion, "", labelSelector) } type JSONPathColumnPrinter struct { diff --git a/pkg/cmd/cli/cmd/process.go b/pkg/cmd/cli/cmd/process.go index 07876a9b14a0..6418b44a67dc 100644 --- a/pkg/cmd/cli/cmd/process.go +++ b/pkg/cmd/cli/cmd/process.go @@ -9,17 +9,16 @@ import ( "time" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/describe" @@ -177,7 +176,7 @@ func RunProcess(f *clientcmd.Factory, in io.Reader, out, errout io.Writer, cmd * if local { // TODO: Change f.Object() so that it can fall back to local RESTMapper safely (currently glog.Fatals) - mapper = registered.RESTMapper() + mapper = kapi.Registry.RESTMapper() typer = kapi.Scheme clientMappingFn = func(*meta.RESTMapping) (resource.RESTClient, error) { return nil, nil } // client is deliberately left nil @@ -214,14 +213,14 @@ func RunProcess(f *clientcmd.Factory, in io.Reader, out, errout io.Writer, cmd * return fmt.Errorf("invalid value syntax %q", templateName) } - templateObj, err := client.Templates(sourceNamespace).Get(storedTemplate) + templateObj, err := client.Templates(sourceNamespace).Get(storedTemplate, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { return fmt.Errorf("template %q could not be found", storedTemplate) } return err } - templateObj.CreationTimestamp = unversioned.Now() + templateObj.CreationTimestamp = metav1.Now() infos = append(infos, &resource.Info{Object: templateObj}) } else { infos, err = resource.NewBuilder(mapper, typer, clientMappingFn, kapi.Codecs.UniversalDecoder()). @@ -327,7 +326,7 @@ func RunProcess(f *clientcmd.Factory, in io.Reader, out, errout io.Writer, cmd * } return p.PrintObj(&kapi.List{ - ListMeta: unversioned.ListMeta{}, + ListMeta: metav1.ListMeta{}, Items: objects, }, out) } diff --git a/pkg/cmd/cli/cmd/project.go b/pkg/cmd/cli/cmd/project.go index a9e4ddbe4869..6fade23e6561 100644 --- a/pkg/cmd/cli/cmd/project.go +++ b/pkg/cmd/cli/cmd/project.go @@ -7,12 +7,12 @@ import ( "io" "net/url" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/client" @@ -314,13 +314,13 @@ func (o *ProjectOptions) GetContextFromName(contextName string) (*clientcmdapi.C } func confirmProjectAccess(currentProject string, oClient *client.Client, kClient kclientset.Interface) error { - _, projectErr := oClient.Projects().Get(currentProject) + _, projectErr := oClient.Projects().Get(currentProject, metav1.GetOptions{}) if !kapierrors.IsNotFound(projectErr) && !kapierrors.IsForbidden(projectErr) { return projectErr } // at this point we know the error is a not found or forbidden, but we'll test namespaces just in case we're running on kube - if _, err := kClient.Core().Namespaces().Get(currentProject); err == nil { + if _, err := kClient.Core().Namespaces().Get(currentProject, metav1.GetOptions{}); err == nil { return nil } @@ -329,7 +329,7 @@ func confirmProjectAccess(currentProject string, oClient *client.Client, kClient } func getProjects(oClient *client.Client, kClient kclientset.Interface) ([]api.Project, error) { - projects, err := oClient.Projects().List(kapi.ListOptions{}) + projects, err := oClient.Projects().List(metav1.ListOptions{}) if err == nil { return projects.Items, nil } @@ -338,7 +338,7 @@ func getProjects(oClient *client.Client, kClient kclientset.Interface) ([]api.Pr return nil, err } - namespaces, err := kClient.Core().Namespaces().List(kapi.ListOptions{}) + namespaces, err := kClient.Core().Namespaces().List(metav1.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/cmd/cli/cmd/projects.go b/pkg/cmd/cli/cmd/projects.go index 0b44c31de6ad..3a8a9a5e5f6c 100644 --- a/pkg/cmd/cli/cmd/projects.go +++ b/pkg/cmd/cli/cmd/projects.go @@ -5,10 +5,10 @@ import ( "io" "sort" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" oapi "github.com/openshift/origin/pkg/api" diff --git a/pkg/cmd/cli/cmd/request_project.go b/pkg/cmd/cli/cmd/request_project.go index 7fe2b56fc984..e387eeb59039 100644 --- a/pkg/cmd/cli/cmd/request_project.go +++ b/pkg/cmd/cli/cmd/request_project.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/client" @@ -130,7 +130,7 @@ func (o *NewProjectOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, a // Run implements all the necessary functionality for RequestProject. func (o *NewProjectOptions) Run() error { // TODO eliminate this when we get better forbidden messages - _, err := o.Client.ProjectRequests().List(kapi.ListOptions{}) + _, err := o.Client.ProjectRequests().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/cli/cmd/rollback.go b/pkg/cmd/cli/cmd/rollback.go index 808193e9883e..ac1dac8e9bed 100644 --- a/pkg/cmd/cli/cmd/rollback.go +++ b/pkg/cmd/cli/cmd/rollback.go @@ -7,13 +7,15 @@ import ( "strings" "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kubectl "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" latest "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/client" @@ -192,7 +194,7 @@ func (o *RollbackOptions) Run() error { switch r := obj.(type) { case *kapi.ReplicationController: dcName := deployutil.DeploymentConfigNameFor(r) - dc, err := o.oc.DeploymentConfigs(r.Namespace).Get(dcName) + dc, err := o.oc.DeploymentConfigs(r.Namespace).Get(dcName, metav1.GetOptions{}) if err != nil { return err } @@ -334,7 +336,7 @@ func (o *RollbackOptions) findResource(targetName string) (runtime.Object, error // version will be returned. func (o *RollbackOptions) findTargetDeployment(config *deployapi.DeploymentConfig, desiredVersion int64) (*kapi.ReplicationController, error) { // Find deployments for the config sorted by version descending. - deploymentList, err := o.kc.Core().ReplicationControllers(config.Namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(config.Name)}) + deploymentList, err := o.kc.Core().ReplicationControllers(config.Namespace).List(metainternal.ListOptions{LabelSelector: deployutil.ConfigSelector(config.Name)}) if err != nil { return nil, err } diff --git a/pkg/cmd/cli/cmd/rollout/cancel.go b/pkg/cmd/cli/cmd/rollout/cancel.go index aceccf9e0c4e..f3f7fa4636a3 100644 --- a/pkg/cmd/cli/cmd/rollout/cancel.go +++ b/pkg/cmd/cli/cmd/rollout/cancel.go @@ -7,9 +7,11 @@ import ( "strings" "time" - "k8s.io/kubernetes/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" units "github.com/docker/go-units" "github.com/openshift/origin/pkg/cmd/templates" @@ -17,11 +19,11 @@ import ( deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" "github.com/spf13/cobra" + utilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/cmd/set" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - utilerrors "k8s.io/kubernetes/pkg/util/errors" ) type CancelOptions struct { @@ -137,7 +139,7 @@ func (o CancelOptions) Run() error { return false } - _, err := o.Clientset.Core().ReplicationControllers(rc.Namespace).Patch(rc.Name, kapi.StrategicMergePatchType, patches[0].Patch) + _, err := o.Clientset.Core().ReplicationControllers(rc.Namespace).Patch(rc.Name, types.StrategicMergePatchType, patches[0].Patch) if err != nil { allErrs = append(allErrs, kcmdutil.AddSourceToErr("cancelling", info.Source, err)) return false @@ -171,7 +173,7 @@ func (o CancelOptions) Run() error { } func (o CancelOptions) forEachControllerInConfig(namespace, name string, mutateFunc func(*kapi.ReplicationController) bool) ([]*kapi.ReplicationController, bool, error) { - deploymentList, err := o.Clientset.Core().ReplicationControllers(namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(name)}) + deploymentList, err := o.Clientset.Core().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(name).String()}) if err != nil { return nil, false, err } diff --git a/pkg/cmd/cli/cmd/rollout/latest.go b/pkg/cmd/cli/cmd/rollout/latest.go index e2dbb6d9a0d5..d3e0ae125db6 100644 --- a/pkg/cmd/cli/cmd/rollout/latest.go +++ b/pkg/cmd/cli/cmd/rollout/latest.go @@ -7,12 +7,13 @@ import ( "github.com/openshift/origin/pkg/cmd/templates" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -139,7 +140,7 @@ func (o RolloutLatestOptions) RunRolloutLatest() error { } deploymentName := deployutil.LatestDeploymentNameForConfig(config) - deployment, err := o.kc.Core().ReplicationControllers(config.Namespace).Get(deploymentName) + deployment, err := o.kc.Core().ReplicationControllers(config.Namespace).Get(deploymentName, metav1.GetOptions{}) switch { case err == nil: // Reject attempts to start a concurrent deployment. diff --git a/pkg/cmd/cli/cmd/rollout/retry.go b/pkg/cmd/cli/cmd/rollout/retry.go index 9167439b246f..4a254ad69766 100644 --- a/pkg/cmd/cli/cmd/rollout/retry.go +++ b/pkg/cmd/cli/cmd/rollout/retry.go @@ -6,21 +6,23 @@ import ( "io" "strings" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + utilerrors "k8s.io/apimachinery/pkg/util/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/cmd/set" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - utilerrors "k8s.io/kubernetes/pkg/util/errors" ) type RetryOptions struct { @@ -127,7 +129,7 @@ func (o RetryOptions) Run() error { } latestDeploymentName := deployutil.LatestDeploymentNameForConfig(config) - rc, err := o.Clientset.Core().ReplicationControllers(config.Namespace).Get(latestDeploymentName) + rc, err := o.Clientset.Core().ReplicationControllers(config.Namespace).Get(latestDeploymentName, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, fmt.Errorf("unable to find the latest rollout (#%d).\nYou can start a new rollout with 'oc rollout latest dc/%s'.", config.Status.LatestVersion, config.Name))) @@ -149,14 +151,14 @@ func (o RetryOptions) Run() error { } // Delete the deployer pod as well as the deployment hooks pods, if any - pods, err := o.Clientset.Core().Pods(config.Namespace).List(kapi.ListOptions{LabelSelector: deployutil.DeployerPodSelector(latestDeploymentName)}) + pods, err := o.Clientset.Core().Pods(config.Namespace).List(metav1.ListOptions{LabelSelector: deployutil.DeployerPodSelector(latestDeploymentName).String()}) if err != nil { allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, fmt.Errorf("failed to list deployer/hook pods for deployment #%d: %v", config.Status.LatestVersion, err))) continue } hasError := false for _, pod := range pods.Items { - err := o.Clientset.Core().Pods(pod.Namespace).Delete(pod.Name, kapi.NewDeleteOptions(0)) + err := o.Clientset.Core().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) if err != nil { allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, fmt.Errorf("failed to delete deployer/hook pod %s for deployment #%d: %v", pod.Name, config.Status.LatestVersion, err))) hasError = true @@ -178,7 +180,7 @@ func (o RetryOptions) Run() error { continue } - if _, err := o.Clientset.Core().ReplicationControllers(rc.Namespace).Patch(rc.Name, kapi.StrategicMergePatchType, patches[0].Patch); err != nil { + if _, err := o.Clientset.Core().ReplicationControllers(rc.Namespace).Patch(rc.Name, types.StrategicMergePatchType, patches[0].Patch); err != nil { allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, err)) continue } diff --git a/pkg/cmd/cli/cmd/rsh.go b/pkg/cmd/cli/cmd/rsh.go index 4078f82f363f..9546d4126a7d 100644 --- a/pkg/cmd/cli/cmd/rsh.go +++ b/pkg/cmd/cli/cmd/rsh.go @@ -144,7 +144,7 @@ func (o *RshOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args []s if err != nil { return err } - o.PodClient = client + o.PodClient = client.Core() o.PodName, err = f.PodForResource(resource, time.Duration(o.Timeout)*time.Second) return err diff --git a/pkg/cmd/cli/cmd/rsync/copymulti.go b/pkg/cmd/cli/cmd/rsync/copymulti.go index e3c4ab3004f7..3a87f5a4d07a 100644 --- a/pkg/cmd/cli/cmd/rsync/copymulti.go +++ b/pkg/cmd/cli/cmd/rsync/copymulti.go @@ -7,7 +7,7 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/errors" ) // copyStrategies is an ordered list of copyStrategy objects that behaves as a single diff --git a/pkg/cmd/cli/cmd/rsync/copyrsync.go b/pkg/cmd/cli/cmd/rsync/copyrsync.go index d0accf81a868..7460e845e401 100644 --- a/pkg/cmd/cli/cmd/rsync/copyrsync.go +++ b/pkg/cmd/cli/cmd/rsync/copyrsync.go @@ -10,8 +10,8 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" "github.com/spf13/pflag" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" cmdutil "github.com/openshift/origin/pkg/cmd/util" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/cli/cmd/rsync/copyrsync_test.go b/pkg/cmd/cli/cmd/rsync/copyrsync_test.go index faea019a4e05..471ac31063c7 100644 --- a/pkg/cmd/cli/cmd/rsync/copyrsync_test.go +++ b/pkg/cmd/cli/cmd/rsync/copyrsync_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) // rshAllowedFlags is the set of flags in the rsync command that diff --git a/pkg/cmd/cli/cmd/rsync/copyrsyncd.go b/pkg/cmd/cli/cmd/rsync/copyrsyncd.go index 42b75d2df1ec..c81879a8a925 100644 --- a/pkg/cmd/cli/cmd/rsync/copyrsyncd.go +++ b/pkg/cmd/cli/cmd/rsync/copyrsyncd.go @@ -14,8 +14,8 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/util/errors" - krand "k8s.io/kubernetes/pkg/util/rand" + kerrors "k8s.io/apimachinery/pkg/util/errors" + krand "k8s.io/apimachinery/pkg/util/rand" "github.com/openshift/origin/pkg/cmd/util/clientcmd" ) diff --git a/pkg/cmd/cli/cmd/rsync/copytar.go b/pkg/cmd/cli/cmd/rsync/copytar.go index 112399a3a65f..27e685b3838c 100644 --- a/pkg/cmd/cli/cmd/rsync/copytar.go +++ b/pkg/cmd/cli/cmd/rsync/copytar.go @@ -14,7 +14,7 @@ import ( "github.com/golang/glog" "github.com/openshift/source-to-image/pkg/tar" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/util/errors" + kerrors "k8s.io/apimachinery/pkg/util/errors" s2iutil "github.com/openshift/source-to-image/pkg/util" diff --git a/pkg/cmd/cli/cmd/rsync/execremote.go b/pkg/cmd/cli/cmd/rsync/execremote.go index 9e6df9ce2d03..e3cbc142ac81 100644 --- a/pkg/cmd/cli/cmd/rsync/execremote.go +++ b/pkg/cmd/cli/cmd/rsync/execremote.go @@ -5,8 +5,8 @@ import ( "strings" "github.com/golang/glog" + restclient "k8s.io/client-go/rest" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" kubecmd "k8s.io/kubernetes/pkg/kubectl/cmd" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/cli/cmd/rsync/forwarder.go b/pkg/cmd/cli/cmd/rsync/forwarder.go index c8d77f5fe9bf..ee2748b7c10d 100644 --- a/pkg/cmd/cli/cmd/rsync/forwarder.go +++ b/pkg/cmd/cli/cmd/rsync/forwarder.go @@ -3,9 +3,9 @@ package rsync import ( "io" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/portforward" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/portforward" "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "github.com/openshift/origin/pkg/cmd/util/clientcmd" diff --git a/pkg/cmd/cli/cmd/rsync/util.go b/pkg/cmd/cli/cmd/rsync/util.go index a26d0266af5d..2e7a93d2172d 100644 --- a/pkg/cmd/cli/cmd/rsync/util.go +++ b/pkg/cmd/cli/cmd/rsync/util.go @@ -7,6 +7,7 @@ import ( "runtime" "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) @@ -108,6 +109,6 @@ type podAPIChecker struct { // CheckPods will check if pods exists in the provided context func (p podAPIChecker) CheckPod() error { - _, err := p.client.Core().Pods(p.namespace).Get(p.podName) + _, err := p.client.Core().Pods(p.namespace).Get(p.podName, metav1.GetOptions{}) return err } diff --git a/pkg/cmd/cli/cmd/set/buildhook.go b/pkg/cmd/cli/cmd/set/buildhook.go index ea0dcc5f92b8..e765405f1c87 100644 --- a/pkg/cmd/cli/cmd/set/buildhook.go +++ b/pkg/cmd/cli/cmd/set/buildhook.go @@ -6,12 +6,13 @@ import ( "os" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/templates" @@ -58,7 +59,7 @@ type BuildHookOptions struct { Infos []*resource.Info Encoder runtime.Encoder - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion Filenames []string Selector string @@ -234,7 +235,7 @@ func (o *BuildHookOptions) Run() error { continue } - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { fmt.Fprintf(o.Err, "error: %v\n", err) failed = true diff --git a/pkg/cmd/cli/cmd/set/buildsecret.go b/pkg/cmd/cli/cmd/set/buildsecret.go index 84e8f8e38686..e80176fdb782 100644 --- a/pkg/cmd/cli/cmd/set/buildsecret.go +++ b/pkg/cmd/cli/cmd/set/buildsecret.go @@ -6,13 +6,14 @@ import ( "os" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/errors" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/templates" @@ -56,7 +57,7 @@ type BuildSecretOptions struct { Infos []*resource.Info Encoder runtime.Encoder - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion Filenames []string Selector string @@ -257,7 +258,7 @@ func (o *BuildSecretOptions) Run() error { continue } - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { errs = append(errs, fmt.Errorf("%s/%s %v", info.Mapping.Resource, info.Name, err)) continue diff --git a/pkg/cmd/cli/cmd/set/deploymenthook.go b/pkg/cmd/cli/cmd/set/deploymenthook.go index fcb89164a8dc..f42d914fc8ca 100644 --- a/pkg/cmd/cli/cmd/set/deploymenthook.go +++ b/pkg/cmd/cli/cmd/set/deploymenthook.go @@ -6,12 +6,13 @@ import ( "os" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -63,7 +64,7 @@ type DeploymentHookOptions struct { Infos []*resource.Info Encoder runtime.Encoder - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion Filenames []string Container string @@ -282,7 +283,7 @@ func (o *DeploymentHookOptions) Run() error { continue } - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { fmt.Fprintf(o.Err, "error: %v\n", err) failed = true diff --git a/pkg/cmd/cli/cmd/set/env.go b/pkg/cmd/cli/cmd/set/env.go index 18611b89416f..b7d5b6a2bb05 100644 --- a/pkg/cmd/cli/cmd/set/env.go +++ b/pkg/cmd/cli/cmd/set/env.go @@ -11,12 +11,14 @@ import ( "strings" "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/fieldpath" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/strategicpatch" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -144,7 +146,7 @@ func getSecretRefValue(f *clientcmd.Factory, store *resourceStore, secretSelecto if err != nil { return "", err } - secret, err = kubeClient.Secrets(namespace).Get(secretSelector.Name) + secret, err = kubeClient.Core().Secrets(namespace).Get(secretSelector.Name, metav1.GetOptions{}) if err != nil { return "", err } @@ -167,7 +169,7 @@ func getConfigMapRefValue(f *clientcmd.Factory, store *resourceStore, configMapS if err != nil { return "", err } - configMap, err = kubeClient.ConfigMaps(namespace).Get(configMapSelector.Name) + configMap, err = kubeClient.Core().ConfigMaps(namespace).Get(configMapSelector.Name, metav1.GetOptions{}) if err != nil { return "", err } @@ -193,7 +195,7 @@ func getEnvVarRefValue(f *clientcmd.Factory, store *resourceStore, from *kapi.En } if from.ResourceFieldRef != nil { - return fieldpath.ExtractContainerResourceValue(from.ResourceFieldRef, c) + return fieldpath.InternalExtractContainerResourceValue(from.ResourceFieldRef, c) } return "", fmt.Errorf("invalid valueFrom") @@ -504,7 +506,7 @@ updates: if err != nil { return err } - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patchBytes) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patchBytes) if err != nil { handlePodUpdateError(errout, err, "environment variables") failed = true diff --git a/pkg/cmd/cli/cmd/set/helper.go b/pkg/cmd/cli/cmd/set/helper.go index 62501a48f29f..1de3004ff167 100644 --- a/pkg/cmd/cli/cmd/set/helper.go +++ b/pkg/cmd/cli/cmd/set/helper.go @@ -5,13 +5,13 @@ import ( "io" "strings" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/strategicpatch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/strategicpatch" ) func selectContainers(containers []kapi.Container, spec string) ([]*kapi.Container, []*kapi.Container) { diff --git a/pkg/cmd/cli/cmd/set/probe.go b/pkg/cmd/cli/cmd/set/probe.go index 343f3f5c3d6f..378917024176 100644 --- a/pkg/cmd/cli/cmd/set/probe.go +++ b/pkg/cmd/cli/cmd/set/probe.go @@ -10,13 +10,14 @@ import ( "strings" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -81,7 +82,7 @@ type ProbeOptions struct { ShortOutput bool Mapper meta.RESTMapper - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion PrintObject func([]*resource.Info) error UpdatePodSpecForObject func(runtime.Object, func(spec *kapi.PodSpec) error) (bool, error) @@ -336,7 +337,7 @@ func (o *ProbeOptions) Run() error { continue } - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { handlePodUpdateError(o.Err, err, "probes") diff --git a/pkg/cmd/cli/cmd/set/routebackends.go b/pkg/cmd/cli/cmd/set/routebackends.go index 8ebdf5b50c47..502179d1573c 100644 --- a/pkg/cmd/cli/cmd/set/routebackends.go +++ b/pkg/cmd/cli/cmd/set/routebackends.go @@ -11,13 +11,14 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -85,7 +86,7 @@ type BackendsOptions struct { ShortOutput bool Mapper meta.RESTMapper - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion PrintTable bool PrintObject func(runtime.Object) error @@ -238,7 +239,7 @@ func (o *BackendsOptions) Run() error { glog.V(4).Infof("Calculated patch %s", patch.Patch) - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { handlePodUpdateError(o.Err, err, "altered") failed = true diff --git a/pkg/cmd/cli/cmd/set/set_test.go b/pkg/cmd/cli/cmd/set/set_test.go index f2459d688961..3e367de56cc8 100644 --- a/pkg/cmd/cli/cmd/set/set_test.go +++ b/pkg/cmd/cli/cmd/set/set_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/util/clientcmd" ) diff --git a/pkg/cmd/cli/cmd/set/triggers.go b/pkg/cmd/cli/cmd/set/triggers.go index ef743601281d..22c9ce4c1c16 100644 --- a/pkg/cmd/cli/cmd/set/triggers.go +++ b/pkg/cmd/cli/cmd/set/triggers.go @@ -11,12 +11,13 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" buildutil "github.com/openshift/origin/pkg/build/util" @@ -26,7 +27,7 @@ import ( deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/generate/app" imageapi "github.com/openshift/origin/pkg/image/api" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) var ( @@ -83,7 +84,7 @@ type TriggersOptions struct { ShortOutput bool Mapper meta.RESTMapper - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion PrintTable bool PrintObject func([]*resource.Info) error @@ -323,7 +324,7 @@ func (o *TriggersOptions) Run() error { glog.V(4).Infof("Calculated patch %s", patch.Patch) - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { handlePodUpdateError(o.Err, err, "triggered") failed = true diff --git a/pkg/cmd/cli/cmd/set/volume.go b/pkg/cmd/cli/cmd/set/volume.go index 5dff5ef4e94e..6c8213537910 100644 --- a/pkg/cmd/cli/cmd/set/volume.go +++ b/pkg/cmd/cli/cmd/set/volume.go @@ -14,16 +14,19 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + apierrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + kresource "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - kresource "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/cmd/templates" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -122,7 +125,7 @@ type VolumeOptions struct { Confirm bool Output string PrintObject func([]*resource.Info) error - OutputVersion unversioned.GroupVersion + OutputVersion schema.GroupVersion // Add op params AddOpts *AddVolumeOptions @@ -402,7 +405,7 @@ func (v *VolumeOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, out, if len(v.AddOpts.ClaimSize) > 0 { v.AddOpts.CreateClaim = true if len(v.AddOpts.ClaimName) == 0 { - v.AddOpts.ClaimName = kapi.SimpleNameGenerator.GenerateName("pvc-") + v.AddOpts.ClaimName = names.SimpleNameGenerator.GenerateName("pvc-") } q, err := kresource.ParseQuantity(v.AddOpts.ClaimSize) if err != nil { @@ -513,7 +516,7 @@ func (v *VolumeOptions) RunVolume(args []string) error { glog.V(4).Infof("Calculated patch %s", patch.Patch) - obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, kapi.StrategicMergePatchType, patch.Patch) + obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) if err != nil { handlePodUpdateError(v.Err, err, "volume") failed = true @@ -613,7 +616,7 @@ func (v *VolumeOptions) printVolumes(infos []*resource.Info) []error { func (v *AddVolumeOptions) createClaim() *kapi.PersistentVolumeClaim { pvc := &kapi.PersistentVolumeClaim{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: v.ClaimName, }, Spec: kapi.PersistentVolumeClaimSpec{ @@ -707,7 +710,7 @@ func (v *VolumeOptions) getVolumeName(spec *kapi.PodSpec, singleResource bool) ( return "", fmt.Errorf("ambiguous --overwrite, specify --name or --mount-path") } } else { // Generate volume name - name := kapi.SimpleNameGenerator.GenerateName(volumePrefix) + name := names.SimpleNameGenerator.GenerateName(volumePrefix) if len(v.Output) == 0 { fmt.Fprintf(v.Err, "info: Generated volume name: %s\n", name) } @@ -900,7 +903,7 @@ func (v *VolumeOptions) listVolumeForSpec(spec *kapi.PodSpec, info *resource.Inf refInfo := "" if vol.VolumeSource.PersistentVolumeClaim != nil { claimName := vol.VolumeSource.PersistentVolumeClaim.ClaimName - claim, err := v.Client.PersistentVolumeClaims(info.Namespace).Get(claimName) + claim, err := v.Client.PersistentVolumeClaims(info.Namespace).Get(claimName, metav1.GetOptions{}) switch { case err == nil: refInfo = fmt.Sprintf("(%s)", describePersistentVolumeClaim(claim)) diff --git a/pkg/cmd/cli/cmd/set/volume_test.go b/pkg/cmd/cli/cmd/set/volume_test.go index efa5d77dd8ec..940ee31b1595 100644 --- a/pkg/cmd/cli/cmd/set/volume_test.go +++ b/pkg/cmd/cli/cmd/set/volume_test.go @@ -6,17 +6,18 @@ import ( "github.com/openshift/origin/pkg/cmd/util/clientcmd" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" + kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/kubectl/resource" ) func fakePodWithVol() *api.Pod { fakePod := &api.Pod{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "fakepod", }, @@ -49,7 +50,7 @@ func fakePodWithVol() *api.Pod { func makeFakePod() *api.Pod { fakePod := &api.Pod{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "fakepod", }, @@ -67,7 +68,7 @@ func makeFakePod() *api.Pod { func getFakeMapping() *meta.RESTMapping { fakeMapping := &meta.RESTMapping{ Resource: "fake-mount", - GroupVersionKind: unversioned.GroupVersionKind{ + GroupVersionKind: schema.GroupVersionKind{ Group: "test.group", Version: "v1", }, @@ -89,7 +90,7 @@ func getFakeInfo(podInfo *api.Pod) ([]*resource.Info, *VolumeOptions) { infos := []*resource.Info{info} vOptions := &VolumeOptions{} vOptions.Name = "fake-mount" - vOptions.Encoder = api.Codecs.LegacyCodec(registered.EnabledVersions()...) + vOptions.Encoder = api.Codecs.LegacyCodec(kapi.Registry.EnabledVersions()...) vOptions.Containers = "*" vOptions.UpdatePodSpecForObject = f.UpdatePodSpecForObject return infos, vOptions diff --git a/pkg/cmd/cli/cmd/startbuild.go b/pkg/cmd/cli/cmd/startbuild.go index 90eff4291327..37b197f389d8 100644 --- a/pkg/cmd/cli/cmd/startbuild.go +++ b/pkg/cmd/cli/cmd/startbuild.go @@ -21,16 +21,17 @@ import ( "github.com/openshift/source-to-image/pkg/tar" s2iutil "github.com/openshift/source-to-image/pkg/util" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/third_party/forked/golang/netutil" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/fields" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/third_party/forked/golang/netutil" buildapi "github.com/openshift/origin/pkg/build/api" buildapiv1 "github.com/openshift/origin/pkg/build/api/v1" @@ -253,7 +254,7 @@ func (o *StartBuildOptions) Complete(f *clientcmd.Factory, in io.Reader, out, er // when listing webhooks, allow --from-build to lookup a build config if buildapi.IsResourceOrLegacy("builds", resource) && len(o.ListWebhooks) > 0 { - build, err := client.Builds(namespace).Get(name) + build, err := client.Builds(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err } @@ -312,7 +313,7 @@ func (o *StartBuildOptions) Run() error { Message: buildapi.BuildTriggerCauseManualMsg, }, ), - ObjectMeta: kapi.ObjectMeta{Name: o.Name}, + ObjectMeta: metav1.ObjectMeta{Name: o.Name}, } if len(o.EnvVar) > 0 { @@ -338,7 +339,7 @@ func (o *StartBuildOptions) Run() error { switch { case o.AsBinary: request := &buildapi.BinaryBuildRequestOptions{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: o.Name, Namespace: o.Namespace, }, @@ -429,7 +430,7 @@ func (o *StartBuildOptions) RunListBuildWebHooks() error { } client := o.Client - config, err := client.BuildConfigs(o.Namespace).Get(o.Name) + config, err := client.BuildConfigs(o.Namespace).Get(o.Name, metav1.GetOptions{}) if err != nil { return err } @@ -691,7 +692,7 @@ func (o *StartBuildOptions) RunStartBuildWebHook() error { if hook.Scheme == "https" { config, err := o.ClientConfig.ClientConfig() if err == nil { - if url, _, err := restclient.DefaultServerURL(config.Host, "", unversioned.GroupVersion{}, true); err == nil { + if url, _, err := restclient.DefaultServerURL(config.Host, "", schema.GroupVersion{}, true); err == nil { if netutil.CanonicalAddr(url) == netutil.CanonicalAddr(hook) && url.Scheme == hook.Scheme { if rt, err := restclient.TransportFor(config); err == nil { httpClient = &http.Client{Transport: rt} @@ -814,7 +815,7 @@ func WaitForBuildComplete(c osclient.BuildInterface, name string) error { b.Status.Phase == buildapi.BuildPhaseError } for { - list, err := c.List(kapi.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector()}) + list, err := c.List(metav1.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector().String()}) if err != nil { return err } @@ -828,7 +829,7 @@ func WaitForBuildComplete(c osclient.BuildInterface, name string) error { } rv := list.ResourceVersion - w, err := c.Watch(kapi.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector(), ResourceVersion: rv}) + w, err := c.Watch(metav1.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector().String(), ResourceVersion: rv}) if err != nil { return err } diff --git a/pkg/cmd/cli/cmd/startbuild_test.go b/pkg/cmd/cli/cmd/startbuild_test.go index 65f2f3cdf66d..68fb4bce3a55 100644 --- a/pkg/cmd/cli/cmd/startbuild_test.go +++ b/pkg/cmd/cli/cmd/startbuild_test.go @@ -13,10 +13,10 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + kapi "k8s.io/kubernetes/pkg/api" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -64,7 +64,7 @@ func TestStartBuildWebHook(t *testing.T) { Out: buf, ClientConfig: cfg, FromWebhook: server.URL + "/webhook", - Mapper: registered.RESTMapper(), + Mapper: kapi.Registry.RESTMapper(), } if err := o.Run(); err != nil { t.Fatalf("unable to start hook: %v", err) @@ -98,7 +98,7 @@ func TestStartBuildWebHookHTTPS(t *testing.T) { Out: buf, ClientConfig: cfg, FromWebhook: server.URL + "/webhook", - Mapper: registered.RESTMapper(), + Mapper: kapi.Registry.RESTMapper(), } if err := o.Run(); err == nil || !strings.Contains(err.Error(), "certificate signed by unknown authority") { t.Fatalf("unexpected non-error: %v", err) @@ -134,7 +134,7 @@ func TestStartBuildHookPostReceive(t *testing.T) { ClientConfig: cfg, FromWebhook: server.URL + "/webhook", GitPostReceive: f.Name(), - Mapper: registered.RESTMapper(), + Mapper: kapi.Registry.RESTMapper(), } if err := o.Run(); err != nil { t.Fatalf("unexpected error: %v", err) diff --git a/pkg/cmd/cli/cmd/status.go b/pkg/cmd/cli/cmd/status.go index 179ed6b04a21..4c76ab17b19c 100644 --- a/pkg/cmd/cli/cmd/status.go +++ b/pkg/cmd/cli/cmd/status.go @@ -8,7 +8,7 @@ import ( "github.com/gonum/graph/encoding/dot" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" loginutil "github.com/openshift/origin/pkg/cmd/cli/cmd/login/util" @@ -115,7 +115,7 @@ func (o *StatusOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, baseC } if o.allNamespaces { - o.namespace = kapi.NamespaceAll + o.namespace = metav1.NamespaceAll } else { namespace, _, err := f.DefaultNamespace() if err != nil { diff --git a/pkg/cmd/cli/cmd/tag.go b/pkg/cmd/cli/cmd/tag.go index 52ef45cc0aad..22224604deb1 100644 --- a/pkg/cmd/cli/cmd/tag.go +++ b/pkg/cmd/cli/cmd/tag.go @@ -9,12 +9,13 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/retry" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/templates" @@ -132,7 +133,7 @@ func parseStreamName(defaultNamespace, name string) (string, string, error) { func determineSourceKind(f *clientcmd.Factory, input string) string { mapper, _ := f.Object() - gvks, err := mapper.KindsFor(unversioned.GroupVersionResource{Group: imageapi.GroupName, Resource: input}) + gvks, err := mapper.KindsFor(schema.GroupVersionResource{Group: imageapi.GroupName, Resource: input}) if err == nil { return gvks[0].Kind } @@ -229,7 +230,7 @@ func (o *TagOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args []s if len(srcNamespace) == 0 { srcNamespace = o.namespace } - is, err := o.osClient.ImageStreams(srcNamespace).Get(ref.Name) + is, err := o.osClient.ImageStreams(srcNamespace).Get(ref.Name, metav1.GetOptions{}) if err != nil { return err } @@ -388,7 +389,7 @@ func (o TagOptions) Run() error { } // try the old way - target, err := isc.Get(destName) + target, err := isc.Get(destName, metav1.GetOptions{}) if err != nil { if !kerrors.IsNotFound(err) { return err @@ -416,7 +417,7 @@ func (o TagOptions) Run() error { // The user wants to symlink a tag. istag := &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: destNameAndTag, Namespace: o.destNamespace[i], }, @@ -501,10 +502,10 @@ func (o TagOptions) Run() error { } - target, err := isc.Get(destName) + target, err := isc.Get(destName, metav1.GetOptions{}) if kerrors.IsNotFound(err) { target = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: destName, }, } diff --git a/pkg/cmd/cli/cmd/tag_test.go b/pkg/cmd/cli/cmd/tag_test.go index 2c14e794f945..0fb955cfca7b 100644 --- a/pkg/cmd/cli/cmd/tag_test.go +++ b/pkg/cmd/cli/cmd/tag_test.go @@ -5,11 +5,11 @@ import ( "os" "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client/testclient" imageapi "github.com/openshift/origin/pkg/image/api" @@ -22,14 +22,14 @@ type testAction struct { func testData() []*imageapi.ImageStream { return []*imageapi.ImageStream{ { - ObjectMeta: api.ObjectMeta{Name: "rails", Namespace: "yourproject", ResourceVersion: "10", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "rails", Namespace: "yourproject", ResourceVersion: "10", CreationTimestamp: metav1.Now()}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "", Tags: map[string]imageapi.TagReference{}, }, }, { - ObjectMeta: api.ObjectMeta{Name: "rails", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "rails", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: metav1.Now()}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "", Tags: map[string]imageapi.TagReference{ @@ -44,7 +44,7 @@ func testData() []*imageapi.ImageStream { }, }, { - ObjectMeta: api.ObjectMeta{Name: "rails", Namespace: "myproject", ResourceVersion: "10", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "rails", Namespace: "myproject", ResourceVersion: "10", CreationTimestamp: metav1.Now()}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "", Tags: map[string]imageapi.TagReference{ @@ -59,7 +59,7 @@ func testData() []*imageapi.ImageStream { }, }, { - ObjectMeta: api.ObjectMeta{Name: "django", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "django", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: metav1.Now()}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "", Tags: map[string]imageapi.TagReference{ @@ -165,10 +165,10 @@ func TestTag(t *testing.T) { for name, test := range testCases { client := testclient.NewSimpleFake(test.data...) - client.PrependReactor("create", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("create", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kapierrors.NewMethodNotSupported(imageapi.Resource("imagestreamtags"), "create") }) - client.PrependReactor("update", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("update", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kapierrors.NewMethodNotSupported(imageapi.Resource("imagestreamtags"), "update") }) @@ -204,13 +204,13 @@ func TestTag(t *testing.T) { func TestRunTag_DeleteOld(t *testing.T) { streams := testData() client := testclient.NewSimpleFake(streams[1]) - client.PrependReactor("delete", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("delete", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kapierrors.NewForbidden(imageapi.Resource("imagestreamtags"), "rails:tip", fmt.Errorf("dne")) }) - client.PrependReactor("get", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("get", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, testData()[1], nil }) - client.PrependReactor("update", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("update", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, nil }) @@ -253,7 +253,7 @@ func TestRunTag_DeleteOld(t *testing.T) { func TestRunTag_AddNew(t *testing.T) { client := testclient.NewSimpleFake( &imageapi.ImageStreamTag{ - ObjectMeta: api.ObjectMeta{Name: "rails:tip", Namespace: "yourproject", ResourceVersion: "10", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "rails:tip", Namespace: "yourproject", ResourceVersion: "10", CreationTimestamp: metav1.Now()}, }, ) @@ -298,10 +298,10 @@ func TestRunTag_AddNew(t *testing.T) { func TestRunTag_AddRestricted(t *testing.T) { client := testclient.NewSimpleFake() - client.PrependReactor("create", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, action.(core.CreateAction).GetObject(), nil + client.PrependReactor("create", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, action.(clientgotesting.CreateAction).GetObject(), nil }) - client.PrependReactor("update", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.PrependReactor("update", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kapierrors.NewForbidden(imageapi.Resource("imagestreamtags"), "rails:tip", fmt.Errorf("dne")) }) @@ -347,7 +347,7 @@ func TestRunTag_AddRestricted(t *testing.T) { func TestRunTag_DeleteNew(t *testing.T) { is := &imageapi.ImageStreamTag{ - ObjectMeta: api.ObjectMeta{Name: "rails:tip", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: unversioned.Now()}, + ObjectMeta: metav1.ObjectMeta{Name: "rails:tip", Namespace: "yourproject", ResourceVersion: "11", CreationTimestamp: metav1.Now()}, } client := testclient.NewSimpleFake(is) diff --git a/pkg/cmd/cli/cmd/version.go b/pkg/cmd/cli/cmd/version.go index c6d92612a460..ae6a75aca34f 100644 --- a/pkg/cmd/cli/cmd/version.go +++ b/pkg/cmd/cli/cmd/version.go @@ -9,9 +9,10 @@ import ( etcdversion "github.com/coreos/etcd/version" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + kubeversiontypes "k8s.io/apimachinery/pkg/version" + kclientcmd "k8s.io/client-go/tools/clientcmd" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" kubeversion "k8s.io/kubernetes/pkg/version" @@ -146,7 +147,7 @@ func (o VersionOptions) RunVersion() error { kubeVersionBody, err := kRESTClient.Get().AbsPath("/version").Do().Raw() switch { case err == nil: - var kubeServerInfo kubeversion.Info + var kubeServerInfo kubeversiontypes.Info err = json.Unmarshal(kubeVersionBody, &kubeServerInfo) if err != nil && len(kubeVersionBody) > 0 { done <- err diff --git a/pkg/cmd/cli/cmd/whoami.go b/pkg/cmd/cli/cmd/whoami.go index 3e0ad6206c14..eee55ecd8a8e 100644 --- a/pkg/cmd/cli/cmd/whoami.go +++ b/pkg/cmd/cli/cmd/whoami.go @@ -6,6 +6,7 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" osclient "github.com/openshift/origin/pkg/client" @@ -50,7 +51,7 @@ func NewCmdWhoAmI(name, fullName string, f *clientcmd.Factory, out io.Writer) *c } func (o WhoAmIOptions) WhoAmI() (*userapi.User, error) { - me, err := o.UserInterface.Get("~") + me, err := o.UserInterface.Get("~", metav1.GetOptions{}) if err == nil { fmt.Fprintf(o.Out, "%s\n", me.Name) } diff --git a/pkg/cmd/cli/cmd/wrappers.go b/pkg/cmd/cli/cmd/wrappers.go index 25a8e406a76d..544f5ea54d61 100644 --- a/pkg/cmd/cli/cmd/wrappers.go +++ b/pkg/cmd/cli/cmd/wrappers.go @@ -7,11 +7,11 @@ import ( "strings" "github.com/spf13/cobra" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + kclientcmd "k8s.io/client-go/tools/clientcmd" kcmd "k8s.io/kubernetes/pkg/kubectl/cmd" "k8s.io/kubernetes/pkg/kubectl/cmd/config" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kvalidation "k8s.io/kubernetes/pkg/util/validation" "github.com/openshift/origin/pkg/cmd/cli/cmd/create" cmdconfig "github.com/openshift/origin/pkg/cmd/cli/config" @@ -563,8 +563,8 @@ var ( ) // NewCmdApply is a wrapper for the Kubernetes cli apply command -func NewCmdApply(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command { - cmd := kcmd.NewCmdApply(f, out) +func NewCmdApply(fullName string, f *clientcmd.Factory, out, errOut io.Writer) *cobra.Command { + cmd := kcmd.NewCmdApply(f, out, errOut) cmd.Long = applyLong cmd.Example = fmt.Sprintf(applyExample, fullName) return cmd diff --git a/pkg/cmd/cli/config/helpers.go b/pkg/cmd/cli/config/helpers.go index 7b9574350bbf..736311b0c6e8 100644 --- a/pkg/cmd/cli/config/helpers.go +++ b/pkg/cmd/cli/config/helpers.go @@ -8,7 +8,7 @@ import ( "strings" "github.com/openshift/origin/pkg/cmd/util" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) // TODO should be moved upstream diff --git a/pkg/cmd/cli/config/loader.go b/pkg/cmd/cli/config/loader.go index e0f46ea4c626..0632ac213854 100644 --- a/pkg/cmd/cli/config/loader.go +++ b/pkg/cmd/cli/config/loader.go @@ -8,10 +8,10 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + "k8s.io/client-go/tools/clientcmd" + kclientcmd "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/util/homedir" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/homedir" ) const ( diff --git a/pkg/cmd/cli/config/smart_merge.go b/pkg/cmd/cli/config/smart_merge.go index 5da0cd456793..3100c74fc743 100644 --- a/pkg/cmd/cli/config/smart_merge.go +++ b/pkg/cmd/cli/config/smart_merge.go @@ -6,10 +6,11 @@ import ( "reflect" "strings" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/third_party/forked/golang/netutil" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/third_party/forked/golang/netutil" + restclient "k8s.io/client-go/rest" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/auth/authenticator/request/x509request" osclient "github.com/openshift/origin/pkg/client" @@ -62,7 +63,7 @@ func getUserPartOfNickname(clientCfg *restclient.Config) (string, error) { if err != nil { return "", err } - userInfo, err := client.Users().Get("~") + userInfo, err := client.Users().Get("~", metav1.GetOptions{}) if kerrors.IsNotFound(err) || kerrors.IsForbidden(err) { // if we're talking to kube (or likely talking to kube), take a best guess consistent with login switch { diff --git a/pkg/cmd/cli/describe/chaindescriber.go b/pkg/cmd/cli/describe/chaindescriber.go index 34ff224c2313..e7907ce959be 100644 --- a/pkg/cmd/cli/describe/chaindescriber.go +++ b/pkg/cmd/cli/describe/chaindescriber.go @@ -9,9 +9,9 @@ import ( "github.com/gonum/graph" "github.com/gonum/graph/encoding/dot" "github.com/gonum/graph/path" - kapi "k8s.io/kubernetes/pkg/api" - utilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" osgraph "github.com/openshift/origin/pkg/api/graph" buildedges "github.com/openshift/origin/pkg/build/graph" @@ -201,7 +201,7 @@ func (d *ChainDescriber) humanReadableOutput(g osgraph.Graph, f osgraph.Namer, r } var singleNamespace bool - if len(d.namespaces) == 1 && !d.namespaces.Has(kapi.NamespaceAll) { + if len(d.namespaces) == 1 && !d.namespaces.Has(metav1.NamespaceAll) { singleNamespace = true } depth := map[graph.Node]int{ diff --git a/pkg/cmd/cli/describe/chaindescriber_test.go b/pkg/cmd/cli/describe/chaindescriber_test.go index b396541254b5..48adff26e376 100644 --- a/pkg/cmd/cli/describe/chaindescriber_test.go +++ b/pkg/cmd/cli/describe/chaindescriber_test.go @@ -6,9 +6,9 @@ import ( "github.com/gonum/graph" "github.com/gonum/graph/concrete" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client/testclient" imagegraph "github.com/openshift/origin/pkg/image/graph/nodes" diff --git a/pkg/cmd/cli/describe/deployments.go b/pkg/cmd/cli/describe/deployments.go index 31d2ef31753c..0e44c41077e6 100644 --- a/pkg/cmd/cli/describe/deployments.go +++ b/pkg/cmd/cli/describe/deployments.go @@ -8,14 +8,17 @@ import ( "strings" "text/tabwriter" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/autoscaling" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" rcutils "k8s.io/kubernetes/pkg/controller/replication" - kctl "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/labels" + kprinters "k8s.io/kubernetes/pkg/printers" + kinternalprinters "k8s.io/kubernetes/pkg/printers/internalversion" "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -57,7 +60,7 @@ func NewDeploymentConfigDescriber(client client.Interface, kclient kclientset.In } // Describe returns the description of a DeploymentConfig -func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { var deploymentConfig *deployapi.DeploymentConfig if d.config != nil { // If a deployment config is already provided use that. @@ -65,7 +68,7 @@ func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kc deploymentConfig = d.config } else { var err error - deploymentConfig, err = d.osClient.DeploymentConfigs(namespace).Get(name) + deploymentConfig, err = d.osClient.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -79,7 +82,7 @@ func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kc ) if d.config == nil { - if rcs, err := d.kubeClient.Core().ReplicationControllers(namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(deploymentConfig.Name)}); err == nil { + if rcs, err := d.kubeClient.Core().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(deploymentConfig.Name).String()}); err == nil { deploymentsHistory = make([]*kapi.ReplicationController, 0, len(rcs.Items)) for i := range rcs.Items { deploymentsHistory = append(deploymentsHistory, &rcs.Items[i]) @@ -140,13 +143,14 @@ func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kc if settings.ShowEvents { // Events - if events, err := d.kubeClient.Core().Events(deploymentConfig.Namespace).Search(deploymentConfig); err == nil && events != nil { + if events, err := d.kubeClient.Core().Events(deploymentConfig.Namespace).Search(kapi.Scheme, deploymentConfig); err == nil && events != nil { latestDeploymentEvents := &kapi.EventList{Items: []kapi.Event{}} for i := len(events.Items); i != 0 && i > len(events.Items)-maxDisplayDeploymentsEvents; i-- { latestDeploymentEvents.Items = append(latestDeploymentEvents.Items, events.Items[i-1]) } fmt.Fprintln(out) - kctl.DescribeEvents(latestDeploymentEvents, out) + pw := kinternalprinters.NewPrefixWriter(out) + kinternalprinters.DescribeEvents(latestDeploymentEvents, pw) } } return nil @@ -270,7 +274,7 @@ func printDeploymentConfigSpec(kc kclientset.Interface, dc deployapi.DeploymentC // Autoscaling info // FIXME: The CrossVersionObjectReference should specify the Group - printAutoscalingInfo([]unversioned.GroupResource{deployapi.Resource("DeploymentConfig"), deployapi.LegacyResource("DeploymentConfig")}, dc.Namespace, dc.Name, kc, w) + printAutoscalingInfo([]schema.GroupResource{deployapi.Resource("DeploymentConfig"), deployapi.LegacyResource("DeploymentConfig")}, dc.Namespace, dc.Name, kc, w) // Triggers printTriggers(spec.Triggers, w) @@ -285,14 +289,14 @@ func printDeploymentConfigSpec(kc kclientset.Interface, dc deployapi.DeploymentC // Pod template fmt.Fprintf(w, "Template:\n") - kctl.DescribePodTemplate(spec.Template, w) + kinternalprinters.DescribePodTemplate(spec.Template, w) return nil } // TODO: Move this upstream -func printAutoscalingInfo(res []unversioned.GroupResource, namespace, name string, kclient kclientset.Interface, w *tabwriter.Writer) { - hpaList, err := kclient.Autoscaling().HorizontalPodAutoscalers(namespace).List(kapi.ListOptions{LabelSelector: labels.Everything()}) +func printAutoscalingInfo(res []schema.GroupResource, namespace, name string, kclient kclientset.Interface, w *tabwriter.Writer) { + hpaList, err := kclient.Autoscaling().HorizontalPodAutoscalers(namespace).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) if err != nil { return } @@ -318,7 +322,7 @@ func printAutoscalingInfo(res []unversioned.GroupResource, namespace, name strin } } -func printDeploymentRc(deployment *kapi.ReplicationController, kubeClient kclientset.Interface, w io.Writer, header string, verbose bool) error { +func printDeploymentRc(deployment *v1.ReplicationController, kubeClient kclientset.Interface, w io.Writer, header string, verbose bool) error { if len(header) > 0 { fmt.Fprintf(w, "%v:\n", header) } @@ -344,8 +348,8 @@ func printDeploymentRc(deployment *kapi.ReplicationController, kubeClient kclien return nil } -func getPodStatusForDeployment(deployment *kapi.ReplicationController, kubeClient kclientset.Interface) (running, waiting, succeeded, failed int, err error) { - rcPods, err := kubeClient.Core().Pods(deployment.Namespace).List(kapi.ListOptions{LabelSelector: labels.Set(deployment.Spec.Selector).AsSelector()}) +func getPodStatusForDeployment(deployment *v1.ReplicationController, kubeClient kclientset.Interface) (running, waiting, succeeded, failed int, err error) { + rcPods, err := kubeClient.Core().Pods(deployment.Namespace).List(metav1.ListOptions{LabelSelector: labels.Set(deployment.Spec.Selector).AsSelector().String()}) if err != nil { return } @@ -383,21 +387,21 @@ func NewLatestDeploymentsDescriber(client client.Interface, kclient kclientset.I func (d *LatestDeploymentsDescriber) Describe(namespace, name string) (string, error) { var f formatter - config, err := d.osClient.DeploymentConfigs(namespace).Get(name) + config, err := d.osClient.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } var deployments []kapi.ReplicationController if d.count == -1 || d.count > 1 { - list, err := d.kubeClient.Core().ReplicationControllers(namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(name)}) + list, err := d.kubeClient.Core().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(name).String()}) if err != nil && !kerrors.IsNotFound(err) { return "", err } deployments = list.Items } else { deploymentName := deployutil.LatestDeploymentNameForConfig(config) - deployment, err := d.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName) + deployment, err := d.kubeClient.Core().ReplicationControllers(config.Namespace).Get(deploymentName, metav1.GetOptions{}) if err != nil && !kerrors.IsNotFound(err) { return "", err } diff --git a/pkg/cmd/cli/describe/deployments_test.go b/pkg/cmd/cli/describe/deployments_test.go index 69d18f64f6ae..3b2ae036aea9 100644 --- a/pkg/cmd/cli/describe/deployments_test.go +++ b/pkg/cmd/cli/describe/deployments_test.go @@ -4,12 +4,12 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" kfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -23,26 +23,26 @@ func TestDeploymentConfigDescriber(t *testing.T) { podList := &kapi.PodList{} fake := &testclient.Fake{} - fake.PrependReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.PrependReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, config, nil }) kFake := kfake.NewSimpleClientset() - kFake.PrependReactor("list", "horizontalpodautoscalers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kFake.PrependReactor("list", "horizontalpodautoscalers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &autoscaling.HorizontalPodAutoscalerList{ Items: []autoscaling.HorizontalPodAutoscaler{ *deployapitest.OkHPAForDeploymentConfig(config, 1, 3), }}, nil }) - kFake.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kFake.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deployment, nil }) - kFake.PrependReactor("list", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kFake.PrependReactor("list", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.ReplicationControllerList{}, nil }) - kFake.PrependReactor("list", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kFake.PrependReactor("list", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, podList, nil }) - kFake.PrependReactor("list", "events", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kFake.PrependReactor("list", "events", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.EventList{}, nil }) @@ -52,7 +52,7 @@ func TestDeploymentConfigDescriber(t *testing.T) { } describe := func() string { - output, err := d.Describe("test", "deployment", kubectl.DescriberSettings{}) + output, err := d.Describe("test", "deployment", kprinters.DescriberSettings{}) if err != nil { t.Fatalf("unexpected error: %v", err) return "" diff --git a/pkg/cmd/cli/describe/describer.go b/pkg/cmd/cli/describe/describer.go index 0f6e3c38df76..a8d28420f5d4 100644 --- a/pkg/cmd/cli/describe/describer.go +++ b/pkg/cmd/cli/describe/describer.go @@ -12,14 +12,17 @@ import ( units "github.com/docker/go-units" + kerrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kctl "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + kprinters "k8s.io/kubernetes/pkg/printers" + kinternalprinters "k8s.io/kubernetes/pkg/printers/internalversion" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -36,8 +39,8 @@ import ( userapi "github.com/openshift/origin/pkg/user/api" ) -func describerMap(c *client.Client, kclient kclientset.Interface, host string, withCoreGroup bool) map[unversioned.GroupKind]kctl.Describer { - m := map[unversioned.GroupKind]kctl.Describer{ +func describerMap(c *client.Client, kclient kclientset.Interface, host string, withCoreGroup bool) map[schema.GroupKind]kprinters.Describer { + m := map[schema.GroupKind]kprinters.Describer{ buildapi.Kind("Build"): &BuildDescriber{c, kclient}, buildapi.Kind("BuildConfig"): &BuildConfigDescriber{c, kclient, host}, deployapi.Kind("DeploymentConfig"): &DeploymentConfigDescriber{c, kclient, nil}, @@ -87,7 +90,7 @@ func describerMap(c *client.Client, kclient kclientset.Interface, host string, w // DescribableResources lists all of the resource types we can describe func DescribableResources() []string { // Include describable resources in kubernetes - keys := kctl.DescribableResources() + keys := kinternalprinters.DescribableResources() for k := range describerMap(nil, nil, "", false) { resource := strings.ToLower(k.Kind) @@ -97,7 +100,7 @@ func DescribableResources() []string { } // DescriberFor returns a describer for a given kind of resource -func DescriberFor(kind unversioned.GroupKind, c *client.Client, kclient kclientset.Interface, host string) (kctl.Describer, bool) { +func DescriberFor(kind schema.GroupKind, c *client.Client, kclient kclientset.Interface, host string) (kprinters.Describer, bool) { f, ok := describerMap(c, kclient, host, true)[kind] if ok { return f, true @@ -112,19 +115,19 @@ type BuildDescriber struct { } // Describe returns the description of a build -func (d *BuildDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *BuildDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.osClient.Builds(namespace) - build, err := c.Get(name) + build, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } - events, _ := d.kubeClient.Core().Events(namespace).Search(build) + events, _ := d.kubeClient.Core().Events(namespace).Search(kapi.Scheme, build) if events == nil { events = &kapi.EventList{} } // get also pod events and merge it all into one list for describe - if pod, err := d.kubeClient.Core().Pods(namespace).Get(buildapi.GetBuildPodName(build)); err == nil { - if podEvents, _ := d.kubeClient.Core().Events(namespace).Search(pod); podEvents != nil { + if pod, err := d.kubeClient.Core().Pods(namespace).Get(buildapi.GetBuildPodName(build), metav1.GetOptions{}); err == nil { + if podEvents, _ := d.kubeClient.Core().Events(namespace).Search(kapi.Scheme, pod); podEvents != nil { events.Items = append(events.Items, podEvents.Items...) } } @@ -167,7 +170,7 @@ func (d *BuildDescriber) Describe(namespace, name string, settings kctl.Describe describeBuildTriggerCauses(build.Spec.TriggeredBy, out) if settings.ShowEvents { - kctl.DescribeEvents(events, out) + kinternalprinters.DescribeEvents(events, kinternalprinters.NewPrefixWriter(out)) } return nil @@ -175,7 +178,7 @@ func (d *BuildDescriber) Describe(namespace, name string, settings kctl.Describe } func describeBuildDuration(build *buildapi.Build) string { - t := unversioned.Now().Rfc3339Copy() + t := metav1.Now().Rfc3339Copy() if build.Status.StartTimestamp == nil && build.Status.CompletionTimestamp != nil && (build.Status.Phase == buildapi.BuildPhaseCancelled || @@ -188,7 +191,7 @@ func describeBuildDuration(build *buildapi.Build) string { return fmt.Sprintf("waiting for %v", t.Sub(build.CreationTimestamp.Rfc3339Copy().Time)) } else if build.Status.StartTimestamp != nil && build.Status.CompletionTimestamp == nil { // time a still running build has been running in a pod - duration := unversioned.Now().Rfc3339Copy().Time.Sub(build.Status.StartTimestamp.Rfc3339Copy().Time) + duration := metav1.Now().Rfc3339Copy().Time.Sub(build.Status.StartTimestamp.Rfc3339Copy().Time) return fmt.Sprintf("running for %v", duration) } duration := build.Status.CompletionTimestamp.Rfc3339Copy().Time.Sub(build.Status.StartTimestamp.Rfc3339Copy().Time) @@ -445,13 +448,13 @@ func describeBuildTriggers(triggers []buildapi.BuildTriggerPolicy, name, namespa } // Describe returns the description of a buildConfig -func (d *BuildConfigDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *BuildConfigDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.BuildConfigs(namespace) - buildConfig, err := c.Get(name) + buildConfig, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } - buildList, err := d.Builds(namespace).List(kapi.ListOptions{}) + buildList, err := d.Builds(namespace).List(metav1.ListOptions{}) if err != nil { return "", err } @@ -488,10 +491,10 @@ func (d *BuildConfigDescriber) Describe(namespace, name string, settings kctl.De } if settings.ShowEvents { - events, _ := d.kubeClient.Core().Events(namespace).Search(buildConfig) + events, _ := d.kubeClient.Core().Events(namespace).Search(kapi.Scheme, buildConfig) if events != nil { fmt.Fprint(out, "\n") - kctl.DescribeEvents(events, out) + kinternalprinters.DescribeEvents(events, kinternalprinters.NewPrefixWriter(out)) } } return nil @@ -503,9 +506,9 @@ type OAuthAccessTokenDescriber struct { client.Interface } -func (d *OAuthAccessTokenDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *OAuthAccessTokenDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.OAuthAccessTokens() - oAuthAccessToken, err := c.Get(name) + oAuthAccessToken, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -531,9 +534,9 @@ type ImageDescriber struct { } // Describe returns the description of an image -func (d *ImageDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ImageDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.Images() - image, err := c.Get(name) + image, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -631,7 +634,7 @@ type ImageStreamTagDescriber struct { } // Describe returns the description of an imageStreamTag -func (d *ImageStreamTagDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ImageStreamTagDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ImageStreamTags(namespace) repo, tag, err := imageapi.ParseImageStreamTagName(name) if err != nil { @@ -655,7 +658,7 @@ type ImageStreamImageDescriber struct { } // Describe returns the description of an imageStreamImage -func (d *ImageStreamImageDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ImageStreamImageDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ImageStreamImages(namespace) repo, id, err := imageapi.ParseImageStreamImageName(name) if err != nil { @@ -675,9 +678,9 @@ type ImageStreamDescriber struct { } // Describe returns the description of an imageStream -func (d *ImageStreamDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ImageStreamDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ImageStreams(namespace) - imageStream, err := c.Get(name) + imageStream, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -702,9 +705,9 @@ type routeEndpointInfo struct { } // Describe returns the description of a route -func (d *RouteDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *RouteDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.Routes(namespace) - route, err := c.Get(name) + route, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -716,7 +719,7 @@ func (d *RouteDescriber) Describe(namespace, name string, settings kctl.Describe if backend.Weight != nil { totalWeight += *backend.Weight } - ep, endpointsErr := d.kubeClient.Core().Endpoints(namespace).Get(backend.Name) + ep, endpointsErr := d.kubeClient.Core().Endpoints(namespace).Get(backend.Name, metav1.GetOptions{}) endpoints[backend.Name] = routeEndpointInfo{ep, endpointsErr} } @@ -836,19 +839,19 @@ type ProjectDescriber struct { } // Describe returns the description of a project -func (d *ProjectDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ProjectDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { projectsClient := d.osClient.Projects() - project, err := projectsClient.Get(name) + project, err := projectsClient.Get(name, metav1.GetOptions{}) if err != nil { return "", err } resourceQuotasClient := d.kubeClient.Core().ResourceQuotas(name) - resourceQuotaList, err := resourceQuotasClient.List(kapi.ListOptions{}) + resourceQuotaList, err := resourceQuotasClient.List(metav1.ListOptions{}) if err != nil { return "", err } limitRangesClient := d.kubeClient.Core().LimitRanges(name) - limitRangeList, err := limitRangesClient.List(kapi.ListOptions{}) + limitRangeList, err := limitRangesClient.List(metav1.ListOptions{}) if err != nil { return "", err } @@ -880,7 +883,7 @@ func (d *ProjectDescriber) Describe(namespace, name string, settings kctl.Descri for resource := range resourceQuota.Status.Hard { resources = append(resources, resource) } - sort.Sort(kctl.SortableResourceNames(resources)) + sort.Sort(kinternalprinters.SortableResourceNames(resources)) msg := "\t%v\t%v\t%v\n" for i := range resources { @@ -953,7 +956,7 @@ type TemplateDescriber struct { client.Interface meta.MetadataAccessor runtime.ObjectTyper - kctl.ObjectDescriber + kprinters.ObjectDescriber } // DescribeMessage prints the message that will be parameter substituted and displayed to the @@ -1010,7 +1013,7 @@ func (d *TemplateDescriber) describeObjects(objects []runtime.Object, out *tabwr continue } - meta := kapi.ObjectMeta{} + meta := metav1.ObjectMeta{} meta.Name, _ = d.MetadataAccessor.Name(obj) gvk, _, err := d.ObjectTyper.ObjectKinds(obj) if err != nil { @@ -1028,9 +1031,9 @@ func (d *TemplateDescriber) describeObjects(objects []runtime.Object, out *tabwr } // Describe returns the description of a template -func (d *TemplateDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *TemplateDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.Templates(namespace) - template, err := c.Get(name) + template, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1039,7 +1042,7 @@ func (d *TemplateDescriber) Describe(namespace, name string, settings kctl.Descr func (d *TemplateDescriber) DescribeTemplate(template *templateapi.Template) (string, error) { // TODO: write error? - _ = runtime.DecodeList(template.Objects, kapi.Codecs.UniversalDecoder(), runtime.UnstructuredJSONScheme) + _ = runtime.DecodeList(template.Objects, kapi.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme) return tabbedString(func(out *tabwriter.Writer) error { formatMeta(out, template.ObjectMeta) @@ -1063,11 +1066,11 @@ type IdentityDescriber struct { } // Describe returns the description of an identity -func (d *IdentityDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *IdentityDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { userClient := d.Users() identityClient := d.Identities() - identity, err := identityClient.Get(name) + identity, err := identityClient.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1079,7 +1082,7 @@ func (d *IdentityDescriber) Describe(namespace, name string, settings kctl.Descr formatString(out, "User Name", identity.User.Name) formatString(out, "User UID", identity.User.UID) } else { - resolvedUser, err := userClient.Get(identity.User.Name) + resolvedUser, err := userClient.Get(identity.User.Name, metav1.GetOptions{}) nameValue := identity.User.Name uidValue := string(identity.User.UID) @@ -1111,10 +1114,10 @@ type UserIdentityMappingDescriber struct { } // Describe returns the description of a userIdentity -func (d *UserIdentityMappingDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *UserIdentityMappingDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.UserIdentityMappings() - mapping, err := c.Get(name) + mapping, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1134,11 +1137,11 @@ type UserDescriber struct { } // Describe returns the description of a user -func (d *UserDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *UserDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { userClient := d.Users() identityClient := d.Identities() - user, err := userClient.Get(name) + user, err := userClient.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1153,7 +1156,7 @@ func (d *UserDescriber) Describe(namespace, name string, settings kctl.Describer formatString(out, "Identities", "") } else { for i, identity := range user.Identities { - resolvedIdentity, err := identityClient.Get(identity) + resolvedIdentity, err := identityClient.Get(identity, metav1.GetOptions{}) value := identity if kerrs.IsNotFound(err) { @@ -1183,8 +1186,8 @@ type GroupDescriber struct { } // Describe returns the description of a group -func (d *GroupDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - group, err := d.c.Get(name) +func (d *GroupDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + group, err := d.c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1216,9 +1219,9 @@ type PolicyDescriber struct { // Describe returns the description of a policy // TODO make something a lot prettier -func (d *PolicyDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *PolicyDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.Policies(namespace) - policy, err := c.Get(name) + policy, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1275,9 +1278,9 @@ type RoleDescriber struct { } // Describe returns the description of a role -func (d *RoleDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *RoleDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.Roles(namespace) - role, err := c.Get(name) + role, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1305,9 +1308,9 @@ type PolicyBindingDescriber struct { } // Describe returns the description of a policyBinding -func (d *PolicyBindingDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *PolicyBindingDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.PolicyBindings(namespace) - policyBinding, err := c.Get(name) + policyBinding, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1345,9 +1348,9 @@ type RoleBindingDescriber struct { } // Describe returns the description of a roleBinding -func (d *RoleBindingDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *RoleBindingDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.RoleBindings(namespace) - roleBinding, err := c.Get(name) + roleBinding, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1355,10 +1358,10 @@ func (d *RoleBindingDescriber) Describe(namespace, name string, settings kctl.De var role *authorizationapi.Role if len(roleBinding.RoleRef.Namespace) == 0 { var clusterRole *authorizationapi.ClusterRole - clusterRole, err = d.ClusterRoles().Get(roleBinding.RoleRef.Name) + clusterRole, err = d.ClusterRoles().Get(roleBinding.RoleRef.Name, metav1.GetOptions{}) role = authorizationapi.ToRole(clusterRole) } else { - role, err = d.Roles(roleBinding.RoleRef.Namespace).Get(roleBinding.RoleRef.Name) + role, err = d.Roles(roleBinding.RoleRef.Namespace).Get(roleBinding.RoleRef.Name, metav1.GetOptions{}) } return DescribeRoleBinding(roleBinding, role, err) @@ -1402,9 +1405,9 @@ type ClusterPolicyDescriber struct { // Describe returns the description of a policy // TODO make something a lot prettier -func (d *ClusterPolicyDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ClusterPolicyDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ClusterPolicies() - policy, err := c.Get(name) + policy, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1417,9 +1420,9 @@ type ClusterRoleDescriber struct { } // Describe returns the description of a role -func (d *ClusterRoleDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ClusterRoleDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ClusterRoles() - role, err := c.Get(name) + role, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1433,9 +1436,9 @@ type ClusterPolicyBindingDescriber struct { } // Describe returns the description of a policyBinding -func (d *ClusterPolicyBindingDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ClusterPolicyBindingDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ClusterPolicyBindings() - policyBinding, err := c.Get(name) + policyBinding, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1449,14 +1452,14 @@ type ClusterRoleBindingDescriber struct { } // Describe returns the description of a roleBinding -func (d *ClusterRoleBindingDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *ClusterRoleBindingDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.ClusterRoleBindings() - roleBinding, err := c.Get(name) + roleBinding, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } - role, err := d.ClusterRoles().Get(roleBinding.RoleRef.Name) + role, err := d.ClusterRoles().Get(roleBinding.RoleRef.Name, metav1.GetOptions{}) return DescribeRoleBinding(authorizationapi.ToRoleBinding(roleBinding), authorizationapi.ToRole(role), err) } @@ -1523,8 +1526,8 @@ type ClusterQuotaDescriber struct { client.Interface } -func (d *ClusterQuotaDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - quota, err := d.ClusterResourceQuotas().Get(name) +func (d *ClusterQuotaDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + quota, err := d.ClusterResourceQuotas().Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1532,7 +1535,7 @@ func (d *ClusterQuotaDescriber) Describe(namespace, name string, settings kctl.D } func DescribeClusterQuota(quota *quotaapi.ClusterResourceQuota) (string, error) { - labelSelector, err := unversioned.LabelSelectorAsSelector(quota.Spec.Selector.LabelSelector) + labelSelector, err := metav1.LabelSelectorAsSelector(quota.Spec.Selector.LabelSelector) if err != nil { return "", err } @@ -1564,7 +1567,7 @@ func DescribeClusterQuota(quota *quotaapi.ClusterResourceQuota) (string, error) for resource := range quota.Status.Total.Hard { resources = append(resources, resource) } - sort.Sort(kctl.SortableResourceNames(resources)) + sort.Sort(kinternalprinters.SortableResourceNames(resources)) msg := "%v\t%v\t%v\n" for i := range resources { @@ -1581,8 +1584,8 @@ type AppliedClusterQuotaDescriber struct { client.Interface } -func (d *AppliedClusterQuotaDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - quota, err := d.AppliedClusterResourceQuotas(namespace).Get(name) +func (d *AppliedClusterQuotaDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + quota, err := d.AppliedClusterResourceQuotas(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1594,8 +1597,8 @@ type ClusterNetworkDescriber struct { } // Describe returns the description of a ClusterNetwork -func (d *ClusterNetworkDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - cn, err := d.ClusterNetwork().Get(name) +func (d *ClusterNetworkDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + cn, err := d.ClusterNetwork().Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1614,8 +1617,8 @@ type HostSubnetDescriber struct { } // Describe returns the description of a HostSubnet -func (d *HostSubnetDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - hs, err := d.HostSubnets().Get(name) +func (d *HostSubnetDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + hs, err := d.HostSubnets().Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1633,8 +1636,8 @@ type NetNamespaceDescriber struct { } // Describe returns the description of a NetNamespace -func (d *NetNamespaceDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - netns, err := d.NetNamespaces().Get(name) +func (d *NetNamespaceDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + netns, err := d.NetNamespaces().Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1651,9 +1654,9 @@ type EgressNetworkPolicyDescriber struct { } // Describe returns the description of an EgressNetworkPolicy -func (d *EgressNetworkPolicyDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { +func (d *EgressNetworkPolicyDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { c := d.osClient.EgressNetworkPolicies(namespace) - policy, err := c.Get(name) + policy, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1675,8 +1678,8 @@ type RoleBindingRestrictionDescriber struct { } // Describe returns the description of a RoleBindingRestriction. -func (d *RoleBindingRestrictionDescriber) Describe(namespace, name string, settings kctl.DescriberSettings) (string, error) { - rbr, err := d.RoleBindingRestrictions(namespace).Get(name) +func (d *RoleBindingRestrictionDescriber) Describe(namespace, name string, settings kprinters.DescriberSettings) (string, error) { + rbr, err := d.RoleBindingRestrictions(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1689,7 +1692,7 @@ func (d *RoleBindingRestrictionDescriber) Describe(namespace, name string, setti } formatString(out, "Subject type", subjectType) - var labelSelectors []unversioned.LabelSelector + var labelSelectors []metav1.LabelSelector switch { case rbr.Spec.UserRestriction != nil: @@ -1718,7 +1721,7 @@ func (d *RoleBindingRestrictionDescriber) Describe(namespace, name string, setti } else { fmt.Fprintf(out, "Label selectors:\n") for _, labelSelector := range labelSelectors { - selector, err := unversioned.LabelSelectorAsSelector(&labelSelector) + selector, err := metav1.LabelSelectorAsSelector(&labelSelector) if err != nil { return err } diff --git a/pkg/cmd/cli/describe/describer_test.go b/pkg/cmd/cli/describe/describer_test.go index 590d2557e446..a0fc7ae4b255 100644 --- a/pkg/cmd/cli/describe/describer_test.go +++ b/pkg/cmd/cli/describe/describer_test.go @@ -8,10 +8,9 @@ import ( "testing" "text/tabwriter" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/kubectl" api "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -31,6 +30,7 @@ import ( _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" + kprinters "k8s.io/kubernetes/pkg/printers" ) type describeClient struct { @@ -126,7 +126,7 @@ func TestDescribers(t *testing.T) { c := &describeClient{T: t, Namespace: "foo", Fake: fake} testCases := []struct { - d kubectl.Describer + d kprinters.Describer name string }{ {&BuildDescriber{c, fakeKube}, "bar"}, @@ -143,7 +143,7 @@ func TestDescribers(t *testing.T) { } for _, test := range testCases { - out, err := test.d.Describe("foo", test.name, kubectl.DescriberSettings{}) + out, err := test.d.Describe("foo", test.name, kprinters.DescriberSettings{}) if err != nil { t.Errorf("unexpected error for %v: %v", test.d, err) } @@ -160,15 +160,15 @@ func TestDescribeBuildDuration(t *testing.T) { } // now a minute ago - now := unversioned.Now() - minuteAgo := unversioned.Unix(now.Rfc3339Copy().Time.Unix()-60, 0) - twoMinutesAgo := unversioned.Unix(now.Rfc3339Copy().Time.Unix()-120, 0) - threeMinutesAgo := unversioned.Unix(now.Rfc3339Copy().Time.Unix()-180, 0) + now := metav1.Now() + minuteAgo := metav1.Unix(now.Rfc3339Copy().Time.Unix()-60, 0) + twoMinutesAgo := metav1.Unix(now.Rfc3339Copy().Time.Unix()-120, 0) + threeMinutesAgo := metav1.Unix(now.Rfc3339Copy().Time.Unix()-180, 0) tests := []testBuild{ { // 0 - build new &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: minuteAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: minuteAgo}, Status: buildapi.BuildStatus{ Phase: buildapi.BuildPhaseNew, }, @@ -177,7 +177,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 1 - build pending &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: minuteAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: minuteAgo}, Status: buildapi.BuildStatus{ Phase: buildapi.BuildPhasePending, }, @@ -186,7 +186,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 2 - build running &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: twoMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: twoMinutesAgo}, Status: buildapi.BuildStatus{ StartTimestamp: &minuteAgo, Phase: buildapi.BuildPhaseRunning, @@ -196,7 +196,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 3 - build completed &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ StartTimestamp: &twoMinutesAgo, CompletionTimestamp: &minuteAgo, @@ -207,7 +207,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 4 - build failed &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ StartTimestamp: &twoMinutesAgo, CompletionTimestamp: &minuteAgo, @@ -218,7 +218,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 5 - build error &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ StartTimestamp: &twoMinutesAgo, CompletionTimestamp: &minuteAgo, @@ -229,7 +229,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 6 - build cancelled before running, start time wasn't set yet &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ CompletionTimestamp: &minuteAgo, Phase: buildapi.BuildPhaseCancelled, @@ -239,7 +239,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 7 - build cancelled while running, start time is set already &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ StartTimestamp: &twoMinutesAgo, CompletionTimestamp: &minuteAgo, @@ -250,7 +250,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 8 - build failed before running, start time wasn't set yet &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ CompletionTimestamp: &minuteAgo, Phase: buildapi.BuildPhaseFailed, @@ -260,7 +260,7 @@ func TestDescribeBuildDuration(t *testing.T) { }, { // 9 - build error before running, start time wasn't set yet &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{CreationTimestamp: threeMinutesAgo}, + ObjectMeta: metav1.ObjectMeta{CreationTimestamp: threeMinutesAgo}, Status: buildapi.BuildStatus{ CompletionTimestamp: &minuteAgo, Phase: buildapi.BuildPhaseError, @@ -279,7 +279,7 @@ func TestDescribeBuildDuration(t *testing.T) { func mkPod(status kapi.PodPhase, exitCode int) *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: "PodName"}, + ObjectMeta: metav1.ObjectMeta{Name: "PodName"}, Status: kapi.PodStatus{ Phase: status, ContainerStatuses: []kapi.ContainerStatus{ diff --git a/pkg/cmd/cli/describe/helpers.go b/pkg/cmd/cli/describe/helpers.go index fda9da30e1ef..02301fb43e08 100644 --- a/pkg/cmd/cli/describe/helpers.go +++ b/pkg/cmd/cli/describe/helpers.go @@ -10,9 +10,10 @@ import ( units "github.com/docker/go-units" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -112,7 +113,7 @@ func formatMapStringString(out *tabwriter.Writer, label string, items map[string } } -func formatAnnotations(out *tabwriter.Writer, m api.ObjectMeta, prefix string) { +func formatAnnotations(out *tabwriter.Writer, m metav1.ObjectMeta, prefix string) { values, annotations := extractAnnotations(m.Annotations, "description") if len(values[0]) > 0 { formatString(out, prefix+"Description", values[0]) @@ -139,7 +140,7 @@ func FormatRelativeTime(t time.Time) string { return formatRelativeTime(t) } -func formatMeta(out *tabwriter.Writer, m api.ObjectMeta) { +func formatMeta(out *tabwriter.Writer, m metav1.ObjectMeta) { formatString(out, "Name", m.Name) formatString(out, "Namespace", m.Namespace) if !m.CreationTimestamp.IsZero() { diff --git a/pkg/cmd/cli/describe/helpers_test.go b/pkg/cmd/cli/describe/helpers_test.go index 21985e9d85eb..064df89e3bc1 100644 --- a/pkg/cmd/cli/describe/helpers_test.go +++ b/pkg/cmd/cli/describe/helpers_test.go @@ -8,8 +8,8 @@ import ( "time" imageapi "github.com/openshift/origin/pkg/image/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) func TestFormatImageStreamTags(t *testing.T) { @@ -56,12 +56,12 @@ func TestFormatImageStreamTags(t *testing.T) { imageapi.DefaultImageTag: { Items: []imageapi.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: "registry:5000/foo/bar@sha256:4bd26aef1ce78b4f05ede83496276f11e3343441574ca1ce89dffd146c708c16", Image: "sha256:4bd26aef1ce78b4f05ede83496276f11e3343441574ca1ce89dffd146c708c16", }, { - Created: unversioned.Date(2015, 3, 23, 7, 15, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 23, 7, 15, 0, 0, time.UTC), DockerImageReference: "registry:5000/foo/bar@sha256:062b80555a5dd7f5d58e78b266785a399277ff8c3e402ce5fa5d8571788e6bad", Image: "sha256:062b80555a5dd7f5d58e78b266785a399277ff8c3e402ce5fa5d8571788e6bad", }, @@ -70,7 +70,7 @@ func TestFormatImageStreamTags(t *testing.T) { "spec1": { Items: []imageapi.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: "registry:5000/foo/bar@sha256:4bd26aef1ce78b4f05ede83496276f11e3343441574ca1ce89dffd146c708c16", Image: "sha256:4bd26aef1ce78b4f05ede83496276f11e3343441574ca1ce89dffd146c708c16", }, @@ -79,7 +79,7 @@ func TestFormatImageStreamTags(t *testing.T) { "spec2": { Items: []imageapi.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: "mysql:latest", Image: "sha256:e52c6534db85036dabac5e71ff14e720db94def2d90f986f3548425ea27b3719", }, @@ -96,7 +96,7 @@ func TestFormatImageStreamTags(t *testing.T) { }, Items: []imageapi.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: "mysql:latest", Image: "sha256:e52c6534db85036dabac5e71ff14e720db94def2d90f986f3548425ea27b3719", Generation: 2, diff --git a/pkg/cmd/cli/describe/printer.go b/pkg/cmd/cli/describe/printer.go index 4b498dc9d2ad..3fd2556a2a28 100644 --- a/pkg/cmd/cli/describe/printer.go +++ b/pkg/cmd/cli/describe/printer.go @@ -9,10 +9,12 @@ import ( "text/tabwriter" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - kctl "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/util/sets" + kprinters "k8s.io/kubernetes/pkg/printers" + kinternalprinters "k8s.io/kubernetes/pkg/printers/internalversion" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -71,7 +73,7 @@ var ( ) // NewHumanReadablePrinter returns a new HumanReadablePrinter -func NewHumanReadablePrinter(printOptions kctl.PrintOptions) *kctl.HumanReadablePrinter { +func NewHumanReadablePrinter(printOptions kprinters.PrintOptions) *kprinters.HumanReadablePrinter { // TODO: support cross namespace listing p := kctl.NewHumanReadablePrinter(printOptions) p.Handler(buildColumns, printBuild) @@ -148,10 +150,10 @@ func NewHumanReadablePrinter(printOptions kctl.PrintOptions) *kctl.HumanReadable p.Handler(roleBindingRestrictionColumns, printRoleBindingRestriction) p.Handler(roleBindingRestrictionColumns, printRoleBindingRestrictionList) - p.Handler(templateInstanceColumns, printTemplateInstance) - p.Handler(templateInstanceColumns, printTemplateInstanceList) - p.Handler(brokerTemplateInstanceColumns, printBrokerTemplateInstance) - p.Handler(brokerTemplateInstanceColumns, printBrokerTemplateInstanceList) + p.Handler(templateInstanceColumns, nil, printTemplateInstance) + p.Handler(templateInstanceColumns, nil, printTemplateInstanceList) + p.Handler(brokerTemplateInstanceColumns, nil, printBrokerTemplateInstance) + p.Handler(brokerTemplateInstanceColumns, nil, printBrokerTemplateInstanceList) return p } @@ -187,7 +189,7 @@ func formatResourceName(kind, name string, withKind bool) string { return kind + "/" + name } -func printTemplate(t *templateapi.Template, w io.Writer, opts kctl.PrintOptions) error { +func printTemplate(t *templateapi.Template, w io.Writer, opts kprinters.PrintOptions) error { description := "" if t.Annotations != nil { description = t.Annotations["description"] @@ -236,7 +238,7 @@ func printTemplate(t *templateapi.Template, w io.Writer, opts kctl.PrintOptions) return nil } -func printTemplateList(list *templateapi.TemplateList, w io.Writer, opts kctl.PrintOptions) error { +func printTemplateList(list *templateapi.TemplateList, w io.Writer, opts kprinters.PrintOptions) error { for _, t := range list.Items { if err := printTemplate(&t, w, opts); err != nil { return err @@ -245,7 +247,7 @@ func printTemplateList(list *templateapi.TemplateList, w io.Writer, opts kctl.Pr return nil } -func printBuild(build *buildapi.Build, w io.Writer, opts kctl.PrintOptions) error { +func printBuild(build *buildapi.Build, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, build.Name, opts.WithKind) if opts.WithNamespace { @@ -318,7 +320,7 @@ func describeSourceGitRevision(spec buildapi.CommonSpec) string { return rev } -func printBuildList(buildList *buildapi.BuildList, w io.Writer, opts kctl.PrintOptions) error { +func printBuildList(buildList *buildapi.BuildList, w io.Writer, opts kprinters.PrintOptions) error { builds := buildList.Items sort.Sort(buildapi.BuildSliceByCreationTimestamp(builds)) for _, build := range builds { @@ -329,7 +331,7 @@ func printBuildList(buildList *buildapi.BuildList, w io.Writer, opts kctl.PrintO return nil } -func printBuildConfig(bc *buildapi.BuildConfig, w io.Writer, opts kctl.PrintOptions) error { +func printBuildConfig(bc *buildapi.BuildConfig, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, bc.Name, opts.WithKind) from := describeSourceShort(bc.Spec.CommonSpec) @@ -356,7 +358,7 @@ func printBuildConfig(bc *buildapi.BuildConfig, w io.Writer, opts kctl.PrintOpti return nil } -func printBuildConfigList(buildList *buildapi.BuildConfigList, w io.Writer, opts kctl.PrintOptions) error { +func printBuildConfigList(buildList *buildapi.BuildConfigList, w io.Writer, opts kprinters.PrintOptions) error { for _, buildConfig := range buildList.Items { if err := printBuildConfig(&buildConfig, w, opts); err != nil { return err @@ -365,13 +367,13 @@ func printBuildConfigList(buildList *buildapi.BuildConfigList, w io.Writer, opts return nil } -func printImage(image *imageapi.Image, w io.Writer, opts kctl.PrintOptions) error { +func printImage(image *imageapi.Image, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, image.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\n", name, image.DockerImageReference) return err } -func printImageStreamTag(ist *imageapi.ImageStreamTag, w io.Writer, opts kctl.PrintOptions) error { +func printImageStreamTag(ist *imageapi.ImageStreamTag, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, ist.Name, opts.WithKind) created := fmt.Sprintf("%s ago", formatRelativeTime(ist.CreationTimestamp.Time)) @@ -389,7 +391,7 @@ func printImageStreamTag(ist *imageapi.ImageStreamTag, w io.Writer, opts kctl.Pr return nil } -func printImageStreamTagList(list *imageapi.ImageStreamTagList, w io.Writer, opts kctl.PrintOptions) error { +func printImageStreamTagList(list *imageapi.ImageStreamTagList, w io.Writer, opts kprinters.PrintOptions) error { for _, ist := range list.Items { if err := printImageStreamTag(&ist, w, opts); err != nil { return err @@ -398,7 +400,7 @@ func printImageStreamTagList(list *imageapi.ImageStreamTagList, w io.Writer, opt return nil } -func printImageStreamImage(isi *imageapi.ImageStreamImage, w io.Writer, opts kctl.PrintOptions) error { +func printImageStreamImage(isi *imageapi.ImageStreamImage, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, isi.Name, opts.WithKind) created := fmt.Sprintf("%s ago", formatRelativeTime(isi.CreationTimestamp.Time)) if opts.WithNamespace { @@ -415,7 +417,7 @@ func printImageStreamImage(isi *imageapi.ImageStreamImage, w io.Writer, opts kct return nil } -func printImageList(images *imageapi.ImageList, w io.Writer, opts kctl.PrintOptions) error { +func printImageList(images *imageapi.ImageList, w io.Writer, opts kprinters.PrintOptions) error { for _, image := range images.Items { if err := printImage(&image, w, opts); err != nil { return err @@ -424,12 +426,12 @@ func printImageList(images *imageapi.ImageList, w io.Writer, opts kctl.PrintOpti return nil } -func printImageStream(stream *imageapi.ImageStream, w io.Writer, opts kctl.PrintOptions) error { +func printImageStream(stream *imageapi.ImageStream, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, stream.Name, opts.WithKind) tags := "" const numOfTagsShown = 3 - var latest unversioned.Time + var latest metav1.Time for _, list := range stream.Status.Tags { if len(list.Items) > 0 { if list.Items[0].Created.After(latest.Time) { @@ -469,7 +471,7 @@ func printImageStream(stream *imageapi.ImageStream, w io.Writer, opts kctl.Print return nil } -func printImageStreamList(streams *imageapi.ImageStreamList, w io.Writer, opts kctl.PrintOptions) error { +func printImageStreamList(streams *imageapi.ImageStreamList, w io.Writer, opts kprinters.PrintOptions) error { for _, stream := range streams.Items { if err := printImageStream(&stream, w, opts); err != nil { return err @@ -478,7 +480,7 @@ func printImageStreamList(streams *imageapi.ImageStreamList, w io.Writer, opts k return nil } -func printProject(project *projectapi.Project, w io.Writer, opts kctl.PrintOptions) error { +func printProject(project *projectapi.Project, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, project.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s", name, project.Annotations[oapi.OpenShiftDisplayName], project.Status.Phase) if err := appendItemLabels(project.Labels, w, opts.ColumnLabels, opts.ShowLabels); err != nil { @@ -502,7 +504,7 @@ func (list SortableProjects) Less(i, j int) bool { return list[i].ObjectMeta.Name < list[j].ObjectMeta.Name } -func printProjectList(projects *projectapi.ProjectList, w io.Writer, opts kctl.PrintOptions) error { +func printProjectList(projects *projectapi.ProjectList, w io.Writer, opts kprinters.PrintOptions) error { sort.Sort(SortableProjects(projects.Items)) for _, project := range projects.Items { if err := printProject(&project, w, opts); err != nil { @@ -512,7 +514,7 @@ func printProjectList(projects *projectapi.ProjectList, w io.Writer, opts kctl.P return nil } -func printRoute(route *routeapi.Route, w io.Writer, opts kctl.PrintOptions) error { +func printRoute(route *routeapi.Route, w io.Writer, opts kprinters.PrintOptions) error { tlsTerm := "" insecurePolicy := "" if route.Spec.TLS != nil { @@ -608,7 +610,7 @@ func printRoute(route *routeapi.Route, w io.Writer, opts kctl.PrintOptions) erro return err } -func printRouteList(routeList *routeapi.RouteList, w io.Writer, opts kctl.PrintOptions) error { +func printRouteList(routeList *routeapi.RouteList, w io.Writer, opts kprinters.PrintOptions) error { for _, route := range routeList.Items { if err := printRoute(&route, w, opts); err != nil { return err @@ -617,7 +619,7 @@ func printRouteList(routeList *routeapi.RouteList, w io.Writer, opts kctl.PrintO return nil } -func printDeploymentConfig(dc *deployapi.DeploymentConfig, w io.Writer, opts kctl.PrintOptions) error { +func printDeploymentConfig(dc *deployapi.DeploymentConfig, w io.Writer, opts kprinters.PrintOptions) error { var desired string if dc.Spec.Test { desired = fmt.Sprintf("%d (during test)", dc.Spec.Replicas) @@ -674,7 +676,7 @@ func printDeploymentConfig(dc *deployapi.DeploymentConfig, w io.Writer, opts kct return err } -func printDeploymentConfigList(list *deployapi.DeploymentConfigList, w io.Writer, opts kctl.PrintOptions) error { +func printDeploymentConfigList(list *deployapi.DeploymentConfigList, w io.Writer, opts kprinters.PrintOptions) error { for _, dc := range list.Items { if err := printDeploymentConfig(&dc, w, opts); err != nil { return err @@ -683,7 +685,7 @@ func printDeploymentConfigList(list *deployapi.DeploymentConfigList, w io.Writer return nil } -func printPolicy(policy *authorizationapi.Policy, w io.Writer, opts kctl.PrintOptions) error { +func printPolicy(policy *authorizationapi.Policy, w io.Writer, opts kprinters.PrintOptions) error { roleNames := sets.String{} for key := range policy.Roles { roleNames.Insert(key) @@ -706,7 +708,7 @@ func printPolicy(policy *authorizationapi.Policy, w io.Writer, opts kctl.PrintOp return nil } -func printPolicyList(list *authorizationapi.PolicyList, w io.Writer, opts kctl.PrintOptions) error { +func printPolicyList(list *authorizationapi.PolicyList, w io.Writer, opts kprinters.PrintOptions) error { for _, policy := range list.Items { if err := printPolicy(&policy, w, opts); err != nil { return err @@ -715,7 +717,7 @@ func printPolicyList(list *authorizationapi.PolicyList, w io.Writer, opts kctl.P return nil } -func printPolicyBinding(policyBinding *authorizationapi.PolicyBinding, w io.Writer, opts kctl.PrintOptions) error { +func printPolicyBinding(policyBinding *authorizationapi.PolicyBinding, w io.Writer, opts kprinters.PrintOptions) error { roleBindingNames := sets.String{} for key := range policyBinding.RoleBindings { roleBindingNames.Insert(key) @@ -738,7 +740,7 @@ func printPolicyBinding(policyBinding *authorizationapi.PolicyBinding, w io.Writ return nil } -func printPolicyBindingList(list *authorizationapi.PolicyBindingList, w io.Writer, opts kctl.PrintOptions) error { +func printPolicyBindingList(list *authorizationapi.PolicyBindingList, w io.Writer, opts kprinters.PrintOptions) error { for _, policyBinding := range list.Items { if err := printPolicyBinding(&policyBinding, w, opts); err != nil { return err @@ -747,44 +749,44 @@ func printPolicyBindingList(list *authorizationapi.PolicyBindingList, w io.Write return nil } -func printClusterPolicy(policy *authorizationapi.ClusterPolicy, w io.Writer, opts kctl.PrintOptions) error { +func printClusterPolicy(policy *authorizationapi.ClusterPolicy, w io.Writer, opts kprinters.PrintOptions) error { return printPolicy(authorizationapi.ToPolicy(policy), w, opts) } -func printClusterPolicyList(list *authorizationapi.ClusterPolicyList, w io.Writer, opts kctl.PrintOptions) error { +func printClusterPolicyList(list *authorizationapi.ClusterPolicyList, w io.Writer, opts kprinters.PrintOptions) error { return printPolicyList(authorizationapi.ToPolicyList(list), w, opts) } -func printClusterPolicyBinding(policyBinding *authorizationapi.ClusterPolicyBinding, w io.Writer, opts kctl.PrintOptions) error { +func printClusterPolicyBinding(policyBinding *authorizationapi.ClusterPolicyBinding, w io.Writer, opts kprinters.PrintOptions) error { return printPolicyBinding(authorizationapi.ToPolicyBinding(policyBinding), w, opts) } -func printClusterPolicyBindingList(list *authorizationapi.ClusterPolicyBindingList, w io.Writer, opts kctl.PrintOptions) error { +func printClusterPolicyBindingList(list *authorizationapi.ClusterPolicyBindingList, w io.Writer, opts kprinters.PrintOptions) error { return printPolicyBindingList(authorizationapi.ToPolicyBindingList(list), w, opts) } -func printClusterRole(role *authorizationapi.ClusterRole, w io.Writer, opts kctl.PrintOptions) error { +func printClusterRole(role *authorizationapi.ClusterRole, w io.Writer, opts kprinters.PrintOptions) error { return printRole(authorizationapi.ToRole(role), w, opts) } -func printClusterRoleList(list *authorizationapi.ClusterRoleList, w io.Writer, opts kctl.PrintOptions) error { +func printClusterRoleList(list *authorizationapi.ClusterRoleList, w io.Writer, opts kprinters.PrintOptions) error { return printRoleList(authorizationapi.ToRoleList(list), w, opts) } -func printClusterRoleBinding(roleBinding *authorizationapi.ClusterRoleBinding, w io.Writer, opts kctl.PrintOptions) error { +func printClusterRoleBinding(roleBinding *authorizationapi.ClusterRoleBinding, w io.Writer, opts kprinters.PrintOptions) error { return printRoleBinding(authorizationapi.ToRoleBinding(roleBinding), w, opts) } -func printClusterRoleBindingList(list *authorizationapi.ClusterRoleBindingList, w io.Writer, opts kctl.PrintOptions) error { +func printClusterRoleBindingList(list *authorizationapi.ClusterRoleBindingList, w io.Writer, opts kprinters.PrintOptions) error { return printRoleBindingList(authorizationapi.ToRoleBindingList(list), w, opts) } -func printIsPersonalSubjectAccessReview(a *authorizationapi.IsPersonalSubjectAccessReview, w io.Writer, opts kctl.PrintOptions) error { +func printIsPersonalSubjectAccessReview(a *authorizationapi.IsPersonalSubjectAccessReview, w io.Writer, opts kprinters.PrintOptions) error { _, err := fmt.Fprintf(w, "IsPersonalSubjectAccessReview\n") return err } -func printRole(role *authorizationapi.Role, w io.Writer, opts kctl.PrintOptions) error { +func printRole(role *authorizationapi.Role, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, role.Name, opts.WithKind) if opts.WithNamespace { if _, err := fmt.Fprintf(w, "%s\t", role.Namespace); err != nil { @@ -800,7 +802,7 @@ func printRole(role *authorizationapi.Role, w io.Writer, opts kctl.PrintOptions) return nil } -func printRoleList(list *authorizationapi.RoleList, w io.Writer, opts kctl.PrintOptions) error { +func printRoleList(list *authorizationapi.RoleList, w io.Writer, opts kprinters.PrintOptions) error { for _, role := range list.Items { if err := printRole(&role, w, opts); err != nil { return err @@ -810,7 +812,7 @@ func printRoleList(list *authorizationapi.RoleList, w io.Writer, opts kctl.Print return nil } -func printRoleBinding(roleBinding *authorizationapi.RoleBinding, w io.Writer, opts kctl.PrintOptions) error { +func printRoleBinding(roleBinding *authorizationapi.RoleBinding, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, roleBinding.Name, opts.WithKind) if opts.WithNamespace { if _, err := fmt.Fprintf(w, "%s\t", roleBinding.Namespace); err != nil { @@ -828,7 +830,7 @@ func printRoleBinding(roleBinding *authorizationapi.RoleBinding, w io.Writer, op return nil } -func printRoleBindingList(list *authorizationapi.RoleBindingList, w io.Writer, opts kctl.PrintOptions) error { +func printRoleBindingList(list *authorizationapi.RoleBindingList, w io.Writer, opts kprinters.PrintOptions) error { for _, roleBinding := range list.Items { if err := printRoleBinding(&roleBinding, w, opts); err != nil { return err @@ -838,7 +840,7 @@ func printRoleBindingList(list *authorizationapi.RoleBindingList, w io.Writer, o return nil } -func printOAuthClient(client *oauthapi.OAuthClient, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthClient(client *oauthapi.OAuthClient, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, client.Name, opts.WithKind) challenge := "FALSE" if client.RespondWithChallenges { @@ -853,7 +855,7 @@ func printOAuthClient(client *oauthapi.OAuthClient, w io.Writer, opts kctl.Print return nil } -func printOAuthClientList(list *oauthapi.OAuthClientList, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthClientList(list *oauthapi.OAuthClientList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printOAuthClient(&item, w, opts); err != nil { return err @@ -862,13 +864,13 @@ func printOAuthClientList(list *oauthapi.OAuthClientList, w io.Writer, opts kctl return nil } -func printOAuthClientAuthorization(auth *oauthapi.OAuthClientAuthorization, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthClientAuthorization(auth *oauthapi.OAuthClientAuthorization, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, auth.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%v\n", name, auth.UserName, auth.ClientName, strings.Join(auth.Scopes, ",")) return err } -func printOAuthClientAuthorizationList(list *oauthapi.OAuthClientAuthorizationList, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthClientAuthorizationList(list *oauthapi.OAuthClientAuthorizationList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printOAuthClientAuthorization(&item, w, opts); err != nil { return err @@ -877,7 +879,7 @@ func printOAuthClientAuthorizationList(list *oauthapi.OAuthClientAuthorizationLi return nil } -func printOAuthAccessToken(token *oauthapi.OAuthAccessToken, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthAccessToken(token *oauthapi.OAuthAccessToken, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, token.Name, opts.WithKind) created := token.CreationTimestamp expires := created.Add(time.Duration(token.ExpiresIn) * time.Second) @@ -885,7 +887,7 @@ func printOAuthAccessToken(token *oauthapi.OAuthAccessToken, w io.Writer, opts k return err } -func printOAuthAccessTokenList(list *oauthapi.OAuthAccessTokenList, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthAccessTokenList(list *oauthapi.OAuthAccessTokenList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printOAuthAccessToken(&item, w, opts); err != nil { return err @@ -894,7 +896,7 @@ func printOAuthAccessTokenList(list *oauthapi.OAuthAccessTokenList, w io.Writer, return nil } -func printOAuthAuthorizeToken(token *oauthapi.OAuthAuthorizeToken, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthAuthorizeToken(token *oauthapi.OAuthAuthorizeToken, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, token.Name, opts.WithKind) created := token.CreationTimestamp expires := created.Add(time.Duration(token.ExpiresIn) * time.Second) @@ -902,7 +904,7 @@ func printOAuthAuthorizeToken(token *oauthapi.OAuthAuthorizeToken, w io.Writer, return err } -func printOAuthAuthorizeTokenList(list *oauthapi.OAuthAuthorizeTokenList, w io.Writer, opts kctl.PrintOptions) error { +func printOAuthAuthorizeTokenList(list *oauthapi.OAuthAuthorizeTokenList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printOAuthAuthorizeToken(&item, w, opts); err != nil { return err @@ -911,13 +913,13 @@ func printOAuthAuthorizeTokenList(list *oauthapi.OAuthAuthorizeTokenList, w io.W return nil } -func printUser(user *userapi.User, w io.Writer, opts kctl.PrintOptions) error { +func printUser(user *userapi.User, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, user.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", name, user.UID, user.FullName, strings.Join(user.Identities, ", ")) return err } -func printUserList(list *userapi.UserList, w io.Writer, opts kctl.PrintOptions) error { +func printUserList(list *userapi.UserList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printUser(&item, w, opts); err != nil { return err @@ -926,13 +928,13 @@ func printUserList(list *userapi.UserList, w io.Writer, opts kctl.PrintOptions) return nil } -func printIdentity(identity *userapi.Identity, w io.Writer, opts kctl.PrintOptions) error { +func printIdentity(identity *userapi.Identity, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, identity.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\n", name, identity.ProviderName, identity.ProviderUserName, identity.User.Name, identity.User.UID) return err } -func printIdentityList(list *userapi.IdentityList, w io.Writer, opts kctl.PrintOptions) error { +func printIdentityList(list *userapi.IdentityList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printIdentity(&item, w, opts); err != nil { return err @@ -941,19 +943,19 @@ func printIdentityList(list *userapi.IdentityList, w io.Writer, opts kctl.PrintO return nil } -func printUserIdentityMapping(mapping *userapi.UserIdentityMapping, w io.Writer, opts kctl.PrintOptions) error { +func printUserIdentityMapping(mapping *userapi.UserIdentityMapping, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, mapping.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", name, mapping.Identity.Name, mapping.User.Name, mapping.User.UID) return err } -func printGroup(group *userapi.Group, w io.Writer, opts kctl.PrintOptions) error { +func printGroup(group *userapi.Group, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, group.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\n", name, strings.Join(group.Users, ", ")) return err } -func printGroupList(list *userapi.GroupList, w io.Writer, opts kctl.PrintOptions) error { +func printGroupList(list *userapi.GroupList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printGroup(&item, w, opts); err != nil { return err @@ -962,13 +964,13 @@ func printGroupList(list *userapi.GroupList, w io.Writer, opts kctl.PrintOptions return nil } -func printHostSubnet(h *sdnapi.HostSubnet, w io.Writer, opts kctl.PrintOptions) error { +func printHostSubnet(h *sdnapi.HostSubnet, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, h.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", name, h.Host, h.HostIP, h.Subnet) return err } -func printHostSubnetList(list *sdnapi.HostSubnetList, w io.Writer, opts kctl.PrintOptions) error { +func printHostSubnetList(list *sdnapi.HostSubnetList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printHostSubnet(&item, w, opts); err != nil { return err @@ -977,13 +979,13 @@ func printHostSubnetList(list *sdnapi.HostSubnetList, w io.Writer, opts kctl.Pri return nil } -func printNetNamespace(h *sdnapi.NetNamespace, w io.Writer, opts kctl.PrintOptions) error { +func printNetNamespace(h *sdnapi.NetNamespace, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, h.NetName, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%d\n", name, h.NetID) return err } -func printNetNamespaceList(list *sdnapi.NetNamespaceList, w io.Writer, opts kctl.PrintOptions) error { +func printNetNamespaceList(list *sdnapi.NetNamespaceList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printNetNamespace(&item, w, opts); err != nil { return err @@ -992,13 +994,13 @@ func printNetNamespaceList(list *sdnapi.NetNamespaceList, w io.Writer, opts kctl return nil } -func printClusterNetwork(n *sdnapi.ClusterNetwork, w io.Writer, opts kctl.PrintOptions) error { +func printClusterNetwork(n *sdnapi.ClusterNetwork, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, n.Name, opts.WithKind) _, err := fmt.Fprintf(w, "%s\t%s\t%d\t%s\t%s\n", name, n.Network, n.HostSubnetLength, n.ServiceNetwork, n.PluginName) return err } -func printClusterNetworkList(list *sdnapi.ClusterNetworkList, w io.Writer, opts kctl.PrintOptions) error { +func printClusterNetworkList(list *sdnapi.ClusterNetworkList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printClusterNetwork(&item, w, opts); err != nil { return err @@ -1007,7 +1009,7 @@ func printClusterNetworkList(list *sdnapi.ClusterNetworkList, w io.Writer, opts return nil } -func printEgressNetworkPolicy(n *sdnapi.EgressNetworkPolicy, w io.Writer, opts kctl.PrintOptions) error { +func printEgressNetworkPolicy(n *sdnapi.EgressNetworkPolicy, w io.Writer, opts kprinters.PrintOptions) error { if opts.WithNamespace { if _, err := fmt.Fprintf(w, "%s\t", n.Namespace); err != nil { return err @@ -1019,7 +1021,7 @@ func printEgressNetworkPolicy(n *sdnapi.EgressNetworkPolicy, w io.Writer, opts k return nil } -func printEgressNetworkPolicyList(list *sdnapi.EgressNetworkPolicyList, w io.Writer, opts kctl.PrintOptions) error { +func printEgressNetworkPolicyList(list *sdnapi.EgressNetworkPolicyList, w io.Writer, opts kprinters.PrintOptions) error { for _, item := range list.Items { if err := printEgressNetworkPolicy(&item, w, opts); err != nil { return err @@ -1029,35 +1031,35 @@ func printEgressNetworkPolicyList(list *sdnapi.EgressNetworkPolicyList, w io.Wri } func appendItemLabels(itemLabels map[string]string, w io.Writer, columnLabels []string, showLabels bool) error { - if _, err := fmt.Fprint(w, kctl.AppendLabels(itemLabels, columnLabels)); err != nil { + if _, err := fmt.Fprint(w, kinternalprinters.AppendLabels(itemLabels, columnLabels)); err != nil { return err } - if _, err := fmt.Fprint(w, kctl.AppendAllLabels(showLabels, itemLabels)); err != nil { + if _, err := fmt.Fprint(w, kinternalprinters.AppendAllLabels(showLabels, itemLabels)); err != nil { return err } return nil } -func printClusterResourceQuota(resourceQuota *quotaapi.ClusterResourceQuota, w io.Writer, options kctl.PrintOptions) error { +func printClusterResourceQuota(resourceQuota *quotaapi.ClusterResourceQuota, w io.Writer, options kprinters.PrintOptions) error { name := formatResourceName(options.Kind, resourceQuota.Name, options.WithKind) if _, err := fmt.Fprintf(w, "%s", name); err != nil { return err } - if _, err := fmt.Fprintf(w, "\t%s", unversioned.FormatLabelSelector(resourceQuota.Spec.Selector.LabelSelector)); err != nil { + if _, err := fmt.Fprintf(w, "\t%s", metav1.FormatLabelSelector(resourceQuota.Spec.Selector.LabelSelector)); err != nil { return err } if _, err := fmt.Fprintf(w, "\t%s", resourceQuota.Spec.Selector.AnnotationSelector); err != nil { return err } - if _, err := fmt.Fprint(w, kctl.AppendLabels(resourceQuota.Labels, options.ColumnLabels)); err != nil { + if _, err := fmt.Fprint(w, kinternalprinters.AppendLabels(resourceQuota.Labels, options.ColumnLabels)); err != nil { return err } - _, err := fmt.Fprint(w, kctl.AppendAllLabels(options.ShowLabels, resourceQuota.Labels)) + _, err := fmt.Fprint(w, kinternalprinters.AppendAllLabels(options.ShowLabels, resourceQuota.Labels)) return err } -func printClusterResourceQuotaList(list *quotaapi.ClusterResourceQuotaList, w io.Writer, options kctl.PrintOptions) error { +func printClusterResourceQuotaList(list *quotaapi.ClusterResourceQuotaList, w io.Writer, options kprinters.PrintOptions) error { for i := range list.Items { if err := printClusterResourceQuota(&list.Items[i], w, options); err != nil { return err @@ -1066,11 +1068,11 @@ func printClusterResourceQuotaList(list *quotaapi.ClusterResourceQuotaList, w io return nil } -func printAppliedClusterResourceQuota(resourceQuota *quotaapi.AppliedClusterResourceQuota, w io.Writer, options kctl.PrintOptions) error { +func printAppliedClusterResourceQuota(resourceQuota *quotaapi.AppliedClusterResourceQuota, w io.Writer, options kprinters.PrintOptions) error { return printClusterResourceQuota(quotaapi.ConvertAppliedClusterResourceQuotaToClusterResourceQuota(resourceQuota), w, options) } -func printAppliedClusterResourceQuotaList(list *quotaapi.AppliedClusterResourceQuotaList, w io.Writer, options kctl.PrintOptions) error { +func printAppliedClusterResourceQuotaList(list *quotaapi.AppliedClusterResourceQuotaList, w io.Writer, options kprinters.PrintOptions) error { for i := range list.Items { if err := printClusterResourceQuota(quotaapi.ConvertAppliedClusterResourceQuotaToClusterResourceQuota(&list.Items[i]), w, options); err != nil { return err @@ -1079,7 +1081,7 @@ func printAppliedClusterResourceQuotaList(list *quotaapi.AppliedClusterResourceQ return nil } -func printRoleBindingRestriction(rbr *authorizationapi.RoleBindingRestriction, w io.Writer, options kctl.PrintOptions) error { +func printRoleBindingRestriction(rbr *authorizationapi.RoleBindingRestriction, w io.Writer, options kprinters.PrintOptions) error { name := formatResourceName(options.Kind, rbr.Name, options.WithKind) subjectType := roleBindingRestrictionType(rbr) subjectList := []string{} @@ -1094,7 +1096,7 @@ func printRoleBindingRestriction(rbr *authorizationapi.RoleBindingRestriction, w } for _, selector := range rbr.Spec.UserRestriction.Selectors { subjectList = append(subjectList, - unversioned.FormatLabelSelector(&selector)) + metav1.FormatLabelSelector(&selector)) } case rbr.Spec.GroupRestriction != nil: for _, group := range rbr.Spec.GroupRestriction.Groups { @@ -1102,7 +1104,7 @@ func printRoleBindingRestriction(rbr *authorizationapi.RoleBindingRestriction, w } for _, selector := range rbr.Spec.GroupRestriction.Selectors { subjectList = append(subjectList, - unversioned.FormatLabelSelector(&selector)) + metav1.FormatLabelSelector(&selector)) } case rbr.Spec.ServiceAccountRestriction != nil: for _, sa := range rbr.Spec.ServiceAccountRestriction.ServiceAccounts { @@ -1137,7 +1139,7 @@ func printRoleBindingRestriction(rbr *authorizationapi.RoleBindingRestriction, w return err } -func printRoleBindingRestrictionList(list *authorizationapi.RoleBindingRestrictionList, w io.Writer, options kctl.PrintOptions) error { +func printRoleBindingRestrictionList(list *authorizationapi.RoleBindingRestrictionList, w io.Writer, options kprinters.PrintOptions) error { for i := range list.Items { if err := printRoleBindingRestriction(&list.Items[i], w, options); err != nil { return err @@ -1146,7 +1148,7 @@ func printRoleBindingRestrictionList(list *authorizationapi.RoleBindingRestricti return nil } -func printTemplateInstance(templateInstance *templateapi.TemplateInstance, w io.Writer, opts kctl.PrintOptions) error { +func printTemplateInstance(templateInstance *templateapi.TemplateInstance, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, templateInstance.Name, opts.WithKind) if opts.WithNamespace { @@ -1163,7 +1165,7 @@ func printTemplateInstance(templateInstance *templateapi.TemplateInstance, w io. return nil } -func printTemplateInstanceList(list *templateapi.TemplateInstanceList, w io.Writer, opts kctl.PrintOptions) error { +func printTemplateInstanceList(list *templateapi.TemplateInstanceList, w io.Writer, opts kprinters.PrintOptions) error { for i := range list.Items { if err := printTemplateInstance(&list.Items[i], w, opts); err != nil { return err @@ -1172,7 +1174,7 @@ func printTemplateInstanceList(list *templateapi.TemplateInstanceList, w io.Writ return nil } -func printBrokerTemplateInstance(brokerTemplateInstance *templateapi.BrokerTemplateInstance, w io.Writer, opts kctl.PrintOptions) error { +func printBrokerTemplateInstance(brokerTemplateInstance *templateapi.BrokerTemplateInstance, w io.Writer, opts kprinters.PrintOptions) error { name := formatResourceName(opts.Kind, brokerTemplateInstance.Name, opts.WithKind) if _, err := fmt.Fprintf(w, "%s\t%s/%s", name, brokerTemplateInstance.Spec.TemplateInstance.Namespace, brokerTemplateInstance.Spec.TemplateInstance.Name); err != nil { @@ -1184,7 +1186,7 @@ func printBrokerTemplateInstance(brokerTemplateInstance *templateapi.BrokerTempl return nil } -func printBrokerTemplateInstanceList(list *templateapi.BrokerTemplateInstanceList, w io.Writer, opts kctl.PrintOptions) error { +func printBrokerTemplateInstanceList(list *templateapi.BrokerTemplateInstanceList, w io.Writer, opts kprinters.PrintOptions) error { for i := range list.Items { if err := printBrokerTemplateInstance(&list.Items[i], w, opts); err != nil { return err diff --git a/pkg/cmd/cli/describe/printer_test.go b/pkg/cmd/cli/describe/printer_test.go index 98a07d27a058..469681438e11 100644 --- a/pkg/cmd/cli/describe/printer_test.go +++ b/pkg/cmd/cli/describe/printer_test.go @@ -8,10 +8,10 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - kctl "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -66,7 +66,7 @@ var MissingPrinterCoverageExceptions = []reflect.Type{ } func TestPrinterCoverage(t *testing.T) { - printer := NewHumanReadablePrinter(kctl.PrintOptions{}) + printer := NewHumanReadablePrinter(nil, nil, kprinters.PrintOptions{}) main: for _, apiType := range kapi.Scheme.KnownTypes(api.SchemeGroupVersion) { @@ -140,7 +140,7 @@ func TestPrintImageStream(t *testing.T) { } for _, test := range tests { - if err := printImageStream(test.stream, buf, kctl.PrintOptions{}); err != test.expectedErr { + if err := printImageStream(test.stream, buf, kprinters.PrintOptions{}); err != test.expectedErr { t.Errorf("error mismatch: expected %v, got %v", test.expectedErr, err) continue } @@ -158,14 +158,14 @@ func TestPrintImageStream(t *testing.T) { func mockStreams() []*imageapi.ImageStream { return []*imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{Name: "less-than-three-tags"}, + ObjectMeta: metav1.ObjectMeta{Name: "less-than-three-tags"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "other": { Items: []imageapi.TagEvent{ { DockerImageReference: "other-ref", - Created: unversioned.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), Image: "other-image", }, }, @@ -174,7 +174,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "latest-ref", - Created: unversioned.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), Image: "latest-image", }, }, @@ -183,14 +183,14 @@ func mockStreams() []*imageapi.ImageStream { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "three-tags"}, + ObjectMeta: metav1.ObjectMeta{Name: "three-tags"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "other": { Items: []imageapi.TagEvent{ { DockerImageReference: "other-ref", - Created: unversioned.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), Image: "other-image", }, }, @@ -199,7 +199,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "latest-ref", - Created: unversioned.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), Image: "latest-image", }, }, @@ -208,7 +208,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "third-ref", - Created: unversioned.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), Image: "third-image", }, }, @@ -217,14 +217,14 @@ func mockStreams() []*imageapi.ImageStream { }, }, { - ObjectMeta: kapi.ObjectMeta{Name: "more-than-three-tags"}, + ObjectMeta: metav1.ObjectMeta{Name: "more-than-three-tags"}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ "other": { Items: []imageapi.TagEvent{ { DockerImageReference: "other-ref", - Created: unversioned.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), Image: "other-image", }, }, @@ -233,7 +233,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "latest-ref", - Created: unversioned.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), Image: "latest-image", }, }, @@ -242,7 +242,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "third-ref", - Created: unversioned.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), Image: "third-image", }, }, @@ -251,7 +251,7 @@ func mockStreams() []*imageapi.ImageStream { Items: []imageapi.TagEvent{ { DockerImageReference: "another-ref", - Created: unversioned.Date(2015, 9, 4, 13, 55, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 55, 0, 0, time.UTC), Image: "another-image", }, }, @@ -269,7 +269,7 @@ func TestPrintTemplate(t *testing.T) { }{ { templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Annotations: map[string]string{ "description": "description", @@ -282,7 +282,7 @@ func TestPrintTemplate(t *testing.T) { }, { templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "long", Annotations: map[string]string{ "description": "the long description of this template is way way way way way way way way way way way way way too long", @@ -295,7 +295,7 @@ func TestPrintTemplate(t *testing.T) { }, { templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "multiline", Annotations: map[string]string{ "description": "Once upon a time\nthere was a template\nwith multiple\nlines\n", @@ -308,7 +308,7 @@ func TestPrintTemplate(t *testing.T) { }, { templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "trailingnewline", Annotations: map[string]string{ "description": "Next line please\n", @@ -321,7 +321,7 @@ func TestPrintTemplate(t *testing.T) { }, { templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "longmultiline", Annotations: map[string]string{ "description": "12345678901234567890123456789012345678901234567890123456789012345678901234567890123\n0", @@ -336,7 +336,7 @@ func TestPrintTemplate(t *testing.T) { for i, test := range tests { buf := bytes.NewBuffer([]byte{}) - err := printTemplate(&test.template, buf, kctl.PrintOptions{}) + err := printTemplate(&test.template, buf, kprinters.PrintOptions{}) if err != nil { t.Errorf("[%d] unexpected error: %v", i, err) continue diff --git a/pkg/cmd/cli/describe/projectstatus.go b/pkg/cmd/cli/describe/projectstatus.go index 4f31ccf71119..c50501b2360a 100644 --- a/pkg/cmd/cli/describe/projectstatus.go +++ b/pkg/cmd/cli/describe/projectstatus.go @@ -8,17 +8,17 @@ import ( "strings" "text/tabwriter" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" kapps "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kappsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" kautoscalingclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - utilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" osgraph "github.com/openshift/origin/pkg/api/graph" "github.com/openshift/origin/pkg/api/graph/graphview" @@ -153,10 +153,10 @@ func (d *ProjectStatusDescriber) Describe(namespace, name string) (string, error return "", err } - allNamespaces := namespace == kapi.NamespaceAll + allNamespaces := namespace == metav1.NamespaceAll var project *projectapi.Project if !allNamespaces { - p, err := d.C.Projects().Get(namespace) + p, err := d.C.Projects().Get(namespace, metav1.GetOptions{}) if err != nil { // a forbidden error here (without a --namespace value) means that // the user has not created any projects, and is therefore using a @@ -167,7 +167,7 @@ func (d *ProjectStatusDescriber) Describe(namespace, name string) (string, error if !kapierrors.IsNotFound(err) { return "", err } - p = &projectapi.Project{ObjectMeta: kapi.ObjectMeta{Name: namespace}} + p = &projectapi.Project{ObjectMeta: metav1.ObjectMeta{Name: namespace}} } project = p f = namespacedFormatter{currentNamespace: namespace} @@ -837,11 +837,11 @@ func describeAdditionalBuildDetail(build *buildgraph.BuildConfigNode, lastSucces } out := []string{} - passTime := unversioned.Time{} + passTime := metav1.Time{} if lastSuccessfulBuild != nil { passTime = buildTimestamp(lastSuccessfulBuild.Build) } - failTime := unversioned.Time{} + failTime := metav1.Time{} if lastUnsuccessfulBuild != nil { failTime = buildTimestamp(lastUnsuccessfulBuild.Build) } @@ -852,9 +852,9 @@ func describeAdditionalBuildDetail(build *buildgraph.BuildConfigNode, lastSucces } var firstBuildToDisplay *buildgraph.BuildNode - firstTime := unversioned.Time{} + firstTime := metav1.Time{} var secondBuildToDisplay *buildgraph.BuildNode - secondTime := unversioned.Time{} + secondTime := metav1.Time{} // display the last successful build if specifically requested or we're going to display an active build for context if includeSuccess || len(activeBuilds) > 0 { @@ -902,7 +902,7 @@ func describeAdditionalBuildDetail(build *buildgraph.BuildConfigNode, lastSucces return out } -func describeBuildPhase(build *buildapi.Build, t *unversioned.Time, parentName string, pushTargetResolved bool) string { +func describeBuildPhase(build *buildapi.Build, t *metav1.Time, parentName string, pushTargetResolved bool) string { imageStreamFailure := "" // if we're using an image stream and that image stream is the internal registry and that registry doesn't exist if (build.Spec.Output.To != nil) && !pushTargetResolved { @@ -979,9 +979,9 @@ func describeSourceControlUser(user buildapi.SourceControlUser) string { return fmt.Sprintf("%s <%s>", user.Name, user.Email) } -func buildTimestamp(build *buildapi.Build) unversioned.Time { +func buildTimestamp(build *buildapi.Build) metav1.Time { if build == nil { - return unversioned.Time{} + return metav1.Time{} } if !build.Status.CompletionTimestamp.IsZero() { return *build.Status.CompletionTimestamp @@ -1220,7 +1220,7 @@ func filterBoringPods(pods []graphview.Pod) ([]graphview.Pod, error) { if !ok { continue } - meta, err := kapi.ObjectMetaFor(actualPod) + meta, err := metav1.ObjectMetaFor(actualPod) if err != nil { return nil, err } @@ -1251,7 +1251,7 @@ type rcLoader struct { } func (l *rcLoader) Load() error { - list, err := l.lister.ReplicationControllers(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.ReplicationControllers(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1275,7 +1275,7 @@ type serviceLoader struct { } func (l *serviceLoader) Load() error { - list, err := l.lister.Services(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.Services(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1299,7 +1299,7 @@ type podLoader struct { } func (l *podLoader) Load() error { - list, err := l.lister.Pods(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.Pods(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1323,7 +1323,7 @@ type statefulSetLoader struct { } func (l *statefulSetLoader) Load() error { - list, err := l.lister.StatefulSets(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.StatefulSets(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1347,7 +1347,7 @@ type horizontalPodAutoscalerLoader struct { } func (l *horizontalPodAutoscalerLoader) Load() error { - list, err := l.lister.HorizontalPodAutoscalers(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.HorizontalPodAutoscalers(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1371,7 +1371,7 @@ type serviceAccountLoader struct { } func (l *serviceAccountLoader) Load() error { - list, err := l.lister.ServiceAccounts(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.ServiceAccounts(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1395,7 +1395,7 @@ type secretLoader struct { } func (l *secretLoader) Load() error { - list, err := l.lister.Secrets(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.Secrets(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1419,7 +1419,7 @@ type pvcLoader struct { } func (l *pvcLoader) Load() error { - list, err := l.lister.PersistentVolumeClaims(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.PersistentVolumeClaims(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1443,7 +1443,7 @@ type isLoader struct { } func (l *isLoader) Load() error { - list, err := l.lister.ImageStreams(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.ImageStreams(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1468,7 +1468,7 @@ type dcLoader struct { } func (l *dcLoader) Load() error { - list, err := l.lister.DeploymentConfigs(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.DeploymentConfigs(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } @@ -1492,7 +1492,7 @@ type bcLoader struct { } func (l *bcLoader) Load() error { - list, err := l.lister.BuildConfigs(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.BuildConfigs(l.namespace).List(metav1.ListOptions{}) if err != nil { return errors.TolerateNotFoundError(err) } @@ -1516,7 +1516,7 @@ type buildLoader struct { } func (l *buildLoader) Load() error { - list, err := l.lister.Builds(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.Builds(l.namespace).List(metav1.ListOptions{}) if err != nil { return errors.TolerateNotFoundError(err) } @@ -1540,7 +1540,7 @@ type routeLoader struct { } func (l *routeLoader) Load() error { - list, err := l.lister.Routes(l.namespace).List(kapi.ListOptions{}) + list, err := l.lister.Routes(l.namespace).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/cli/describe/projectstatus_test.go b/pkg/cmd/cli/describe/projectstatus_test.go index d6b3b4bfada2..57c26b201a41 100644 --- a/pkg/cmd/cli/describe/projectstatus_test.go +++ b/pkg/cmd/cli/describe/projectstatus_test.go @@ -5,10 +5,11 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/client/testclient" @@ -37,7 +38,7 @@ func TestProjectStatus(t *testing.T) { "empty project with display name": { Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "", Annotations: map[string]string{ @@ -56,7 +57,7 @@ func TestProjectStatus(t *testing.T) { File: "k8s-service-with-nothing.json", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -71,7 +72,7 @@ func TestProjectStatus(t *testing.T) { File: "k8s-unserviced-rc.json", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -87,7 +88,7 @@ func TestProjectStatus(t *testing.T) { File: "bad_secret_with_just_rc.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -102,7 +103,7 @@ func TestProjectStatus(t *testing.T) { File: "dueling-rcs.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "dueling-rc", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "dueling-rc", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -115,7 +116,7 @@ func TestProjectStatus(t *testing.T) { File: "service-with-pod.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -130,7 +131,7 @@ func TestProjectStatus(t *testing.T) { File: "build-chains.json", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -142,7 +143,7 @@ func TestProjectStatus(t *testing.T) { File: "prereq-image-present-with-sched.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -154,7 +155,7 @@ func TestProjectStatus(t *testing.T) { File: "bare-rc.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -168,7 +169,7 @@ func TestProjectStatus(t *testing.T) { File: "new-project-no-build.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -187,7 +188,7 @@ func TestProjectStatus(t *testing.T) { File: "unpushable-build.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -199,7 +200,7 @@ func TestProjectStatus(t *testing.T) { File: "bare-bc-can-push.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -215,7 +216,7 @@ func TestProjectStatus(t *testing.T) { File: "circular.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -229,7 +230,7 @@ func TestProjectStatus(t *testing.T) { File: "new-project-one-build.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -248,7 +249,7 @@ func TestProjectStatus(t *testing.T) { File: "new-project-two-deployment-configs.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -268,7 +269,7 @@ func TestProjectStatus(t *testing.T) { File: "new-project-deployed-app.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -299,7 +300,7 @@ func TestProjectStatus(t *testing.T) { File: "statefulset.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -315,7 +316,7 @@ func TestProjectStatus(t *testing.T) { File: "restarting-pod.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -330,7 +331,7 @@ func TestProjectStatus(t *testing.T) { File: "different-project-image-deployment.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -344,7 +345,7 @@ func TestProjectStatus(t *testing.T) { File: "k8s-lonely-pod.json", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -358,7 +359,7 @@ func TestProjectStatus(t *testing.T) { File: "simple-deployment.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, @@ -372,7 +373,7 @@ func TestProjectStatus(t *testing.T) { File: "available-deployment.yaml", Extra: []runtime.Object{ &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "example", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "example", Namespace: ""}, }, }, ErrFn: func(err error) bool { return err == nil }, diff --git a/pkg/cmd/cli/kubectl_compat_test.go b/pkg/cmd/cli/kubectl_compat_test.go index 0fd7e598bd87..ee7febff4871 100644 --- a/pkg/cmd/cli/kubectl_compat_test.go +++ b/pkg/cmd/cli/kubectl_compat_test.go @@ -7,8 +7,8 @@ import ( "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/sets" kcmd "k8s.io/kubernetes/pkg/kubectl/cmd" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/util/clientcmd" ) diff --git a/pkg/cmd/cli/sa/create_kubeconfig.go b/pkg/cmd/cli/sa/create_kubeconfig.go index c22cc6dff19c..d27a7cee1087 100644 --- a/pkg/cmd/cli/sa/create_kubeconfig.go +++ b/pkg/cmd/cli/sa/create_kubeconfig.go @@ -8,10 +8,11 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kclientcmd "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/cmd/templates" @@ -102,8 +103,8 @@ func (o *CreateKubeconfigOptions) Complete(args []string, f *clientcmd.Factory, o.ContextNamespace = namespace } - o.SAClient = client.ServiceAccounts(namespace) - o.SecretsClient = client.Secrets(namespace) + o.SAClient = client.Core().ServiceAccounts(namespace) + o.SecretsClient = client.Core().Secrets(namespace) return nil } @@ -124,13 +125,13 @@ func (o *CreateKubeconfigOptions) Validate() error { } func (o *CreateKubeconfigOptions) Run() error { - serviceAccount, err := o.SAClient.Get(o.SAName) + serviceAccount, err := o.SAClient.Get(o.SAName, metav1.GetOptions{}) if err != nil { return err } for _, reference := range serviceAccount.Secrets { - secret, err := o.SecretsClient.Get(reference.Name) + secret, err := o.SecretsClient.Get(reference.Name, metav1.GetOptions{}) if err != nil { continue } diff --git a/pkg/cmd/cli/sa/gettoken.go b/pkg/cmd/cli/sa/gettoken.go index 4e0ad8470618..d848ea563006 100644 --- a/pkg/cmd/cli/sa/gettoken.go +++ b/pkg/cmd/cli/sa/gettoken.go @@ -8,6 +8,7 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -88,8 +89,8 @@ func (o *GetServiceAccountTokenOptions) Complete(args []string, f *clientcmd.Fac return err } - o.SAClient = client.ServiceAccounts(namespace) - o.SecretsClient = client.Secrets(namespace) + o.SAClient = client.Core().ServiceAccounts(namespace) + o.SecretsClient = client.Core().Secrets(namespace) return nil } @@ -110,13 +111,13 @@ func (o *GetServiceAccountTokenOptions) Validate() error { } func (o *GetServiceAccountTokenOptions) Run() error { - serviceAccount, err := o.SAClient.Get(o.SAName) + serviceAccount, err := o.SAClient.Get(o.SAName, metav1.GetOptions{}) if err != nil { return err } for _, reference := range serviceAccount.Secrets { - secret, err := o.SecretsClient.Get(reference.Name) + secret, err := o.SecretsClient.Get(reference.Name, metav1.GetOptions{}) if err != nil { continue } diff --git a/pkg/cmd/cli/sa/newtoken.go b/pkg/cmd/cli/sa/newtoken.go index d00071c38aa3..9ac22bc0576d 100644 --- a/pkg/cmd/cli/sa/newtoken.go +++ b/pkg/cmd/cli/sa/newtoken.go @@ -10,12 +10,13 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -114,8 +115,8 @@ func (o *NewServiceAccountTokenOptions) Complete(args []string, requestedLabels return fmt.Errorf("could not retrieve default namespace: %v", err) } - o.SAClient = client.ServiceAccounts(namespace) - o.SecretsClient = client.Secrets(namespace) + o.SAClient = client.Core().ServiceAccounts(namespace) + o.SecretsClient = client.Core().Secrets(namespace) return nil } @@ -141,13 +142,13 @@ func (o *NewServiceAccountTokenOptions) Validate() error { // Run creates a new token secret, waits for the service account token controller to fulfill it, then adds the token to the service account func (o *NewServiceAccountTokenOptions) Run() error { - serviceAccount, err := o.SAClient.Get(o.SAName) + serviceAccount, err := o.SAClient.Get(o.SAName, metav1.GetOptions{}) if err != nil { return err } tokenSecret := &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: osautil.GetTokenSecretNamePrefix(serviceAccount), Namespace: serviceAccount.Namespace, Labels: o.Labels, @@ -188,8 +189,8 @@ func waitForToken(token *api.Secret, serviceAccount *api.ServiceAccount, timeout // there is no provided rounding function, so we use Round(x) === Floor(x + 0.5) timeoutSeconds := int64(math.Floor(timeout.Seconds() + 0.5)) - options := api.ListOptions{ - FieldSelector: fields.SelectorFromSet(fields.Set(map[string]string{"metadata.name": token.Name})), + options := metav1.ListOptions{ + FieldSelector: fields.SelectorFromSet(fields.Set(map[string]string{"metadata.name": token.Name})).String(), Watch: true, ResourceVersion: token.ResourceVersion, TimeoutSeconds: &timeoutSeconds, diff --git a/pkg/cmd/cli/secrets/known_secret_types.go b/pkg/cmd/cli/secrets/known_secret_types.go index d1527d4d83b8..a46b1e5c87f7 100644 --- a/pkg/cmd/cli/secrets/known_secret_types.go +++ b/pkg/cmd/cli/secrets/known_secret_types.go @@ -3,8 +3,8 @@ package secrets import ( "reflect" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" ) type KnownSecretType struct { diff --git a/pkg/cmd/cli/secrets/new.go b/pkg/cmd/cli/secrets/new.go index a38bee54cbcd..d8c61f7d3865 100644 --- a/pkg/cmd/cli/secrets/new.go +++ b/pkg/cmd/cli/secrets/new.go @@ -9,10 +9,11 @@ import ( "path" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kvalidation "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kvalidation "k8s.io/kubernetes/pkg/util/validation" "github.com/openshift/origin/pkg/cmd/templates" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -253,7 +254,7 @@ func (o *CreateSecretOptions) BundleSecret() (*kapi.Secret, error) { } secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{Name: o.Name}, + ObjectMeta: metav1.ObjectMeta{Name: o.Name}, Type: secretType, Data: secretData, } diff --git a/pkg/cmd/cli/secrets/options.go b/pkg/cmd/cli/secrets/options.go index fbd64b1600bb..e6d2619affb0 100644 --- a/pkg/cmd/cli/secrets/options.go +++ b/pkg/cmd/cli/secrets/options.go @@ -7,14 +7,15 @@ import ( "io/ioutil" "os" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" ) // SecretOptions Structure holding state for processing secret linking and @@ -169,7 +170,7 @@ func (o SecretOptions) GetSecrets(allowNonExisting bool) ([]*kapi.Secret, bool, hasNotFound = true if allowNonExisting { obj = &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: secretName, }, } diff --git a/pkg/cmd/experimental/buildchain/buildchain.go b/pkg/cmd/experimental/buildchain/buildchain.go index bf6a429be8ad..bad2a0331d38 100644 --- a/pkg/cmd/experimental/buildchain/buildchain.go +++ b/pkg/cmd/experimental/buildchain/buildchain.go @@ -7,10 +7,10 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/describe" @@ -96,7 +96,7 @@ func (o *BuildChainOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, a } o.c, o.t = oc, oc - resource := unversioned.GroupResource{} + resource := schema.GroupResource{} mapper, _ := f.Object() resource, o.name, err = osutil.ResolveResource(imageapi.Resource("imagestreamtags"), args[0], mapper) if err != nil { @@ -114,7 +114,7 @@ func (o *BuildChainOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, a // Setup namespace if o.allNamespaces { // TODO: Handle different uses of build-chain; user and admin - projectList, err := oc.Projects().List(kapi.ListOptions{}) + projectList, err := oc.Projects().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/cmd/experimental/config/patch.go b/pkg/cmd/experimental/config/patch.go index 6da5344692aa..38f81551f294 100644 --- a/pkg/cmd/experimental/config/patch.go +++ b/pkg/cmd/experimental/config/patch.go @@ -9,14 +9,14 @@ import ( "github.com/evanphx/json-patch" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/strategicpatch" + "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/strategicpatch" - "k8s.io/kubernetes/pkg/util/yaml" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapiinstall "github.com/openshift/origin/pkg/cmd/server/api/install" @@ -26,14 +26,14 @@ import ( const PatchRecommendedName = "patch" -var patchTypes = map[string]api.PatchType{"json": api.JSONPatchType, "merge": api.MergePatchType, "strategic": api.StrategicMergePatchType} +var patchTypes = map[string]types.PatchType{"json": types.JSONPatchType, "merge": types.MergePatchType, "strategic": types.StrategicMergePatchType} // PatchOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of // referencing the cmd.Flags() type PatchOptions struct { Filename string Patch string - PatchType api.PatchType + PatchType types.PatchType Builder *resource.Builder @@ -148,20 +148,20 @@ func (o *PatchOptions) RunPatch() error { return nil } -func getPatchedJS(patchType api.PatchType, originalJS, patchJS []byte, obj runtime.Object) ([]byte, error) { +func getPatchedJS(patchType types.PatchType, originalJS, patchJS []byte, obj runtime.Object) ([]byte, error) { switch patchType { - case api.JSONPatchType: + case types.JSONPatchType: patchObj, err := jsonpatch.DecodePatch(patchJS) if err != nil { return nil, err } return patchObj.Apply(originalJS) - case api.MergePatchType: + case types.MergePatchType: return jsonpatch.MergePatch(originalJS, patchJS) - case api.StrategicMergePatchType: - return strategicpatch.StrategicMergePatchData(originalJS, patchJS, obj) + case types.StrategicMergePatchType: + return strategicpatch.StrategicMergePatch(originalJS, patchJS, obj) default: // only here as a safety net - go-restful filters content-type diff --git a/pkg/cmd/experimental/ipfailover/ipfailover.go b/pkg/cmd/experimental/ipfailover/ipfailover.go index d149c8c76a69..b98f8280f7b3 100644 --- a/pkg/cmd/experimental/ipfailover/ipfailover.go +++ b/pkg/cmd/experimental/ipfailover/ipfailover.go @@ -8,11 +8,12 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" "github.com/openshift/origin/pkg/cmd/templates" @@ -192,7 +193,7 @@ func Run(f *clientcmd.Factory, options *ipfailover.IPFailoverConfigCmdOptions, c } configList := []runtime.Object{ - &kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: options.ServiceAccount}}, + &kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: options.ServiceAccount}}, } list.Items = append(configList, list.Items...) @@ -210,7 +211,7 @@ func Run(f *clientcmd.Factory, options *ipfailover.IPFailoverConfigCmdOptions, c func validateServiceAccount(client kclientset.Interface, ns string, serviceAccount string) error { - sccList, err := client.Core().SecurityContextConstraints().List(kapi.ListOptions{}) + sccList, err := client.Core().SecurityContextConstraints().List(metav1.ListOptions{}) if err != nil { if !errors.IsUnauthorized(err) { return fmt.Errorf("could not retrieve list of security constraints to verify service account %q: %v", serviceAccount, err) diff --git a/pkg/cmd/infra/deployer/deployer.go b/pkg/cmd/infra/deployer/deployer.go index a9b103d6d119..8fa4652fa10d 100644 --- a/pkg/cmd/infra/deployer/deployer.go +++ b/pkg/cmd/infra/deployer/deployer.go @@ -9,10 +9,11 @@ import ( "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -123,19 +124,19 @@ func NewDeployer(client kclientset.Interface, oclient client.Interface, out, err errOut: errOut, until: until, getDeployment: func(namespace, name string) (*kapi.ReplicationController, error) { - return client.Core().ReplicationControllers(namespace).Get(name) + return client.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) }, getDeployments: func(namespace, configName string) (*kapi.ReplicationControllerList, error) { - return client.Core().ReplicationControllers(namespace).List(kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(configName)}) + return client.Core().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(configName).String()}) }, scaler: scaler, strategyFor: func(config *deployapi.DeploymentConfig) (strategy.DeploymentStrategy, error) { switch config.Spec.Strategy.Type { case deployapi.DeploymentStrategyTypeRecreate: - return recreate.NewRecreateDeploymentStrategy(client, oclient, &kcoreclient.EventSinkImpl{Interface: client.Core().Events("")}, kapi.Codecs.UniversalDecoder(), out, errOut, until), nil + return recreate.NewRecreateDeploymentStrategy(client, oclient, &kv1core.EventSinkImpl{Interface: kv1core.New(client.Core().RESTClient()).Events("")}, kapi.Codecs.UniversalDecoder(), out, errOut, until), nil case deployapi.DeploymentStrategyTypeRolling: - recreate := recreate.NewRecreateDeploymentStrategy(client, oclient, &kcoreclient.EventSinkImpl{Interface: client.Core().Events("")}, kapi.Codecs.UniversalDecoder(), out, errOut, until) - return rolling.NewRollingDeploymentStrategy(config.Namespace, client, oclient, &kcoreclient.EventSinkImpl{Interface: client.Core().Events("")}, kapi.Codecs.UniversalDecoder(), recreate, out, errOut, until), nil + recreate := recreate.NewRecreateDeploymentStrategy(client, oclient, &kv1core.EventSinkImpl{Interface: kv1core.New(client.Core().RESTClient()).Events("")}, kapi.Codecs.UniversalDecoder(), out, errOut, until) + return rolling.NewRollingDeploymentStrategy(config.Namespace, client, oclient, &kv1core.EventSinkImpl{Interface: kv1core.New(client.Core().RESTClient()).Events("")}, kapi.Codecs.UniversalDecoder(), recreate, out, errOut, until), nil default: return nil, fmt.Errorf("unsupported strategy type: %s", config.Spec.Strategy.Type) } diff --git a/pkg/cmd/infra/router/router.go b/pkg/cmd/infra/router/router.go index c674cdc6636a..4df7185949c1 100644 --- a/pkg/cmd/infra/router/router.go +++ b/pkg/cmd/infra/router/router.go @@ -8,12 +8,12 @@ import ( "github.com/golang/glog" "github.com/spf13/pflag" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/sets" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/sets" oclient "github.com/openshift/origin/pkg/client" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -248,7 +248,7 @@ type projectNames struct { } func (n projectNames) NamespaceNames() (sets.String, error) { - all, err := n.client.List(kapi.ListOptions{LabelSelector: n.selector}) + all, err := n.client.List(metav1.ListOptions{LabelSelector: n.selector.String()}) if err != nil { return nil, err } @@ -266,7 +266,7 @@ type namespaceNames struct { } func (n namespaceNames) NamespaceNames() (sets.String, error) { - all, err := n.client.List(kapi.ListOptions{LabelSelector: n.selector}) + all, err := n.client.List(metav1.ListOptions{LabelSelector: n.selector.String()}) if err != nil { return nil, err } diff --git a/pkg/cmd/infra/router/template.go b/pkg/cmd/infra/router/template.go index c0c4b2eaf64e..7b4f9a56c025 100644 --- a/pkg/cmd/infra/router/template.go +++ b/pkg/cmd/infra/router/template.go @@ -12,10 +12,10 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + ktypes "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - ktypes "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation" ocmd "github.com/openshift/origin/pkg/cmd/cli/cmd" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/server/admin/create_bootstrappolicy_file.go b/pkg/cmd/server/admin/create_bootstrappolicy_file.go index e5260ec79a98..db44e493cdf7 100644 --- a/pkg/cmd/server/admin/create_bootstrappolicy_file.go +++ b/pkg/cmd/server/admin/create_bootstrappolicy_file.go @@ -11,8 +11,8 @@ import ( "github.com/spf13/cobra" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -122,7 +122,7 @@ func (o CreateBootstrapPolicyFileOptions) CreateBootstrapPolicyFile() error { } buffer := &bytes.Buffer{} - (&kubectl.JSONPrinter{}).PrintObj(versionedPolicyTemplate, buffer) + (&kprinters.JSONPrinter{}).PrintObj(versionedPolicyTemplate, buffer) if err := ioutil.WriteFile(o.File, buffer.Bytes(), 0644); err != nil { return err diff --git a/pkg/cmd/server/admin/create_client.go b/pkg/cmd/server/admin/create_client.go index 51f387473810..55f174a7d44f 100644 --- a/pkg/cmd/server/admin/create_client.go +++ b/pkg/cmd/server/admin/create_client.go @@ -9,9 +9,9 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/util/cert" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/cert" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/templates" @@ -167,7 +167,7 @@ func (o CreateClientOptions) CreateClientFolder() error { CertFile: clientCertFile, KeyFile: clientKeyFile, - ContextNamespace: kapi.NamespaceDefault, + ContextNamespace: metav1.NamespaceDefault, KubeConfigFile: kubeConfigFile, Output: o.Output, diff --git a/pkg/cmd/server/admin/create_clientcert.go b/pkg/cmd/server/admin/create_clientcert.go index 92e2d8d63526..33e83fae7c98 100644 --- a/pkg/cmd/server/admin/create_clientcert.go +++ b/pkg/cmd/server/admin/create_clientcert.go @@ -6,7 +6,7 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" "github.com/openshift/origin/pkg/cmd/server/crypto" ) diff --git a/pkg/cmd/server/admin/create_kubeconfig.go b/pkg/cmd/server/admin/create_kubeconfig.go index 883fa9262b99..59674f4b3b5a 100644 --- a/pkg/cmd/server/admin/create_kubeconfig.go +++ b/pkg/cmd/server/admin/create_kubeconfig.go @@ -11,16 +11,16 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/util/cert" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/cert" "github.com/openshift/origin/pkg/cmd/cli/config" cliconfig "github.com/openshift/origin/pkg/cmd/cli/config" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/templates" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) const CreateKubeConfigCommandName = "create-kubeconfig" @@ -95,7 +95,7 @@ func NewCommandCreateKubeConfig(commandName string, fullName string, out io.Writ flags.StringSliceVar(&options.APIServerCAFiles, "certificate-authority", []string{"openshift.local.config/master/ca.crt"}, "Files containing signing authorities to use to verify the API server's serving certificate.") flags.StringVar(&options.CertFile, "client-certificate", "", "The client cert file.") flags.StringVar(&options.KeyFile, "client-key", "", "The client key file.") - flags.StringVar(&options.ContextNamespace, "namespace", kapi.NamespaceDefault, "Namespace for this context in .kubeconfig.") + flags.StringVar(&options.ContextNamespace, "namespace", metav1.NamespaceDefault, "Namespace for this context in .kubeconfig.") flags.StringVar(&options.KubeConfigFile, "kubeconfig", ".kubeconfig", "Path for the resulting .kubeconfig file.") // autocompletion hints diff --git a/pkg/cmd/server/admin/create_mastercerts.go b/pkg/cmd/server/admin/create_mastercerts.go index c3e49b5e46fb..5054e29e9369 100644 --- a/pkg/cmd/server/admin/create_mastercerts.go +++ b/pkg/cmd/server/admin/create_mastercerts.go @@ -12,10 +12,10 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/client-go/util/cert" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/cert" - utilerrors "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/templates" @@ -229,7 +229,7 @@ func (o CreateMasterCertsOptions) createAPIClients(getSignerCertOptions *SignerC CertFile: clientCertInfo.CertLocation.CertFile, KeyFile: clientCertInfo.CertLocation.KeyFile, - ContextNamespace: kapi.NamespaceDefault, + ContextNamespace: metav1.NamespaceDefault, KubeConfigFile: DefaultKubeConfigFilename(filepath.Dir(clientCertInfo.CertLocation.CertFile), clientCertInfo.UnqualifiedUser), Output: o.Output, diff --git a/pkg/cmd/server/admin/create_nodeconfig.go b/pkg/cmd/server/admin/create_nodeconfig.go index e5145ff369a8..0fd55a1c0990 100644 --- a/pkg/cmd/server/admin/create_nodeconfig.go +++ b/pkg/cmd/server/admin/create_nodeconfig.go @@ -13,12 +13,12 @@ import ( "github.com/spf13/cobra" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/util/cert" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/master/ports" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/cert" "github.com/openshift/origin/pkg/cmd/flagtypes" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -380,7 +380,7 @@ func (o CreateNodeConfigOptions) MakeKubeConfig(clientCertFile, clientKeyFile, c CertFile: clientCertFile, KeyFile: clientKeyFile, - ContextNamespace: kapi.NamespaceDefault, + ContextNamespace: metav1.NamespaceDefault, KubeConfigFile: kubeConfigFile, Output: o.Output, @@ -480,7 +480,7 @@ func (o CreateNodeConfigOptions) MakeNodeJSON(nodeJSONFile string) error { node := &kapi.Node{} node.Name = o.NodeName - groupMeta := registered.GroupOrDie(kapi.GroupName) + groupMeta := kapi.Registry.GroupOrDie(kapi.GroupName) json, err := runtime.Encode(kapi.Codecs.LegacyCodec(groupMeta.GroupVersions[0]), node) if err != nil { diff --git a/pkg/cmd/server/admin/create_nodeconfig_test.go b/pkg/cmd/server/admin/create_nodeconfig_test.go index 8cc795c19ff5..0591c259e001 100644 --- a/pkg/cmd/server/admin/create_nodeconfig_test.go +++ b/pkg/cmd/server/admin/create_nodeconfig_test.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" // install all APIs _ "github.com/openshift/origin/pkg/api/install" diff --git a/pkg/cmd/server/admin/create_servercert.go b/pkg/cmd/server/admin/create_servercert.go index fe76c5f642a2..42606f1295d2 100644 --- a/pkg/cmd/server/admin/create_servercert.go +++ b/pkg/cmd/server/admin/create_servercert.go @@ -8,8 +8,8 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/templates" diff --git a/pkg/cmd/server/admin/default_certs.go b/pkg/cmd/server/admin/default_certs.go index aa8db083e527..2cc056cfa82c 100644 --- a/pkg/cmd/server/admin/default_certs.go +++ b/pkg/cmd/server/admin/default_certs.go @@ -5,7 +5,7 @@ import ( "path" "time" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" diff --git a/pkg/cmd/server/admin/overwrite_bootstrappolicy.go b/pkg/cmd/server/admin/overwrite_bootstrappolicy.go index 1a5f4144dc40..829230e203c7 100644 --- a/pkg/cmd/server/admin/overwrite_bootstrappolicy.go +++ b/pkg/cmd/server/admin/overwrite_bootstrappolicy.go @@ -8,14 +8,16 @@ import ( "github.com/spf13/cobra" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kerrors "k8s.io/apimachinery/pkg/util/errors" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apimachinery/registered" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - kerrors "k8s.io/kubernetes/pkg/util/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" policyregistry "github.com/openshift/origin/pkg/authorization/registry/policy" @@ -115,7 +117,7 @@ func OverwriteBootstrapPolicy(optsGetter restoptions.Getter, policyFile, createB fmt.Fprintf(out, "Performing a dry run of policy overwrite:\n\n") } - mapper := cmdclientcmd.ShortcutExpander{RESTMapper: kcmdutil.ShortcutExpander{RESTMapper: registered.RESTMapper()}} + mapper := cmdclientcmd.ShortcutExpander{RESTMapper: kcmdutil.ShortcutExpander{RESTMapper: kapi.Registry.RESTMapper()}} typer := kapi.Scheme clientMapper := resource.ClientMapperFunc(func(mapping *meta.RESTMapping) (resource.RESTClient, error) { return nil, nil @@ -184,7 +186,7 @@ func OverwriteBootstrapPolicy(optsGetter restoptions.Getter, policyFile, createB for _, item := range template.Objects { switch t := item.(type) { case *authorizationapi.Role: - ctx := kapi.WithNamespace(kapi.NewContext(), t.Namespace) + ctx := apirequest.WithNamespace(apirequest.NewContext(), t.Namespace) if change { // Attempt to create _, err := roleStorage.CreateRoleWithEscalation(ctx, t) @@ -208,7 +210,7 @@ func OverwriteBootstrapPolicy(optsGetter restoptions.Getter, policyFile, createB } } case *authorizationapi.RoleBinding: - ctx := kapi.WithNamespace(kapi.NewContext(), t.Namespace) + ctx := apirequest.WithNamespace(apirequest.NewContext(), t.Namespace) if change { // Attempt to create _, err := roleBindingStorage.CreateRoleBindingWithEscalation(ctx, t) @@ -233,7 +235,7 @@ func OverwriteBootstrapPolicy(optsGetter restoptions.Getter, policyFile, createB } case *authorizationapi.ClusterRole: - ctx := kapi.WithNamespace(kapi.NewContext(), t.Namespace) + ctx := apirequest.WithNamespace(apirequest.NewContext(), t.Namespace) if change { // Attempt to create _, err := clusterRoleStorage.CreateClusterRoleWithEscalation(ctx, t) @@ -257,7 +259,7 @@ func OverwriteBootstrapPolicy(optsGetter restoptions.Getter, policyFile, createB } } case *authorizationapi.ClusterRoleBinding: - ctx := kapi.WithNamespace(kapi.NewContext(), t.Namespace) + ctx := apirequest.WithNamespace(apirequest.NewContext(), t.Namespace) if change { // Attempt to create _, err := clusterRoleBindingStorage.CreateClusterRoleBindingWithEscalation(ctx, t) @@ -305,12 +307,16 @@ type policyLister struct { namespace string } -func (s policyLister) List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) { - return s.registry.ListPolicies(kapi.WithNamespace(kapi.NewContext(), s.namespace), &options) +func (s policyLister) List(options metav1.ListOptions) (*authorizationapi.PolicyList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.registry.ListPolicies(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), &optint) } -func (s policyLister) Get(name string) (*authorizationapi.Policy, error) { - return s.registry.GetPolicy(kapi.WithNamespace(kapi.NewContext(), s.namespace), name) +func (s policyLister) Get(name string, options metav1.GetOptions) (*authorizationapi.Policy, error) { + return s.registry.GetPolicy(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), name, &options) } type policyBindingListerNamespacer struct { @@ -326,10 +332,14 @@ type policyBindingLister struct { namespace string } -func (s policyBindingLister) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { - return s.registry.ListPolicyBindings(kapi.WithNamespace(kapi.NewContext(), s.namespace), &options) +func (s policyBindingLister) List(options metav1.ListOptions) (*authorizationapi.PolicyBindingList, error) { + optint := metainternal.ListOptions{} + if err := metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(&options, &optint, nil); err != nil { + return nil, err + } + return s.registry.ListPolicyBindings(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), &optint) } -func (s policyBindingLister) Get(name string) (*authorizationapi.PolicyBinding, error) { - return s.registry.GetPolicyBinding(kapi.WithNamespace(kapi.NewContext(), s.namespace), name) +func (s policyBindingLister) Get(name string, options metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { + return s.registry.GetPolicyBinding(apirequest.WithNamespace(apirequest.NewContext(), s.namespace), name, &options) } diff --git a/pkg/cmd/server/admission/init.go b/pkg/cmd/server/admission/init.go index 5102cd21fffc..dc282bf8d644 100644 --- a/pkg/cmd/server/admission/init.go +++ b/pkg/cmd/server/admission/init.go @@ -1,9 +1,10 @@ package admission import ( - "k8s.io/kubernetes/pkg/admission" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/client/restclient" + "k8s.io/apiserver/pkg/admission" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + restclient "k8s.io/client-go/rest" + kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "k8s.io/kubernetes/pkg/quota" "github.com/openshift/origin/pkg/client" @@ -30,44 +31,42 @@ type PluginInitializer struct { // Initialize will check the initialization interfaces implemented by each plugin // and provide the appropriate initialization data -func (i *PluginInitializer) Initialize(plugins []admission.Interface) { - for _, plugin := range plugins { - if wantsOpenshiftClient, ok := plugin.(WantsOpenshiftClient); ok { - wantsOpenshiftClient.SetOpenshiftClient(i.OpenshiftClient) - } - if wantsProjectCache, ok := plugin.(WantsProjectCache); ok { - wantsProjectCache.SetProjectCache(i.ProjectCache) - } - if wantsOriginQuotaRegistry, ok := plugin.(WantsOriginQuotaRegistry); ok { - wantsOriginQuotaRegistry.SetOriginQuotaRegistry(i.OriginQuotaRegistry) - } - if wantsAuthorizer, ok := plugin.(WantsAuthorizer); ok { - wantsAuthorizer.SetAuthorizer(i.Authorizer) - } - if kubeWantsAuthorizer, ok := plugin.(admission.WantsAuthorizer); ok { - kubeWantsAuthorizer.SetAuthorizer(i.Authorizer) - } - if wantsJenkinsPipelineConfig, ok := plugin.(WantsJenkinsPipelineConfig); ok { - wantsJenkinsPipelineConfig.SetJenkinsPipelineConfig(i.JenkinsPipelineConfig) - } - if wantsRESTClientConfig, ok := plugin.(WantsRESTClientConfig); ok { - wantsRESTClientConfig.SetRESTClientConfig(i.RESTClientConfig) - } - if wantsInformers, ok := plugin.(WantsInformers); ok { - wantsInformers.SetInformers(i.Informers) - } - if wantsInformerFactory, ok := plugin.(admission.WantsInformerFactory); ok { - wantsInformerFactory.SetInformerFactory(i.Informers.KubernetesInformers()) - } - if wantsClusterQuotaMapper, ok := plugin.(WantsClusterQuotaMapper); ok { - wantsClusterQuotaMapper.SetClusterQuotaMapper(i.ClusterQuotaMapper) - } - if wantsDefaultRegistryFunc, ok := plugin.(WantsDefaultRegistryFunc); ok { - wantsDefaultRegistryFunc.SetDefaultRegistryFunc(i.DefaultRegistryFn) - } - if wantsGroupCache, ok := plugin.(WantsGroupCache); ok { - wantsGroupCache.SetGroupCache(i.GroupCache) - } +func (i *PluginInitializer) Initialize(plugin admission.Interface) { + if wantsOpenshiftClient, ok := plugin.(WantsOpenshiftClient); ok { + wantsOpenshiftClient.SetOpenshiftClient(i.OpenshiftClient) + } + if wantsProjectCache, ok := plugin.(WantsProjectCache); ok { + wantsProjectCache.SetProjectCache(i.ProjectCache) + } + if wantsOriginQuotaRegistry, ok := plugin.(WantsOriginQuotaRegistry); ok { + wantsOriginQuotaRegistry.SetOriginQuotaRegistry(i.OriginQuotaRegistry) + } + if wantsAuthorizer, ok := plugin.(WantsAuthorizer); ok { + wantsAuthorizer.SetAuthorizer(i.Authorizer) + } + if kubeWantsAuthorizer, ok := plugin.(kubeapiserveradmission.WantsAuthorizer); ok { + kubeWantsAuthorizer.SetAuthorizer(i.Authorizer) + } + if wantsJenkinsPipelineConfig, ok := plugin.(WantsJenkinsPipelineConfig); ok { + wantsJenkinsPipelineConfig.SetJenkinsPipelineConfig(i.JenkinsPipelineConfig) + } + if wantsRESTClientConfig, ok := plugin.(WantsRESTClientConfig); ok { + wantsRESTClientConfig.SetRESTClientConfig(i.RESTClientConfig) + } + if wantsInformers, ok := plugin.(WantsInformers); ok { + wantsInformers.SetInformers(i.Informers) + } + if wantsInformerFactory, ok := plugin.(kubeapiserveradmission.WantsInternalKubeInformerFactory); ok { + wantsInformerFactory.SetInternalKubeInformerFactory(i.Informers.InternalKubernetesInformers()) + } + if wantsClusterQuotaMapper, ok := plugin.(WantsClusterQuotaMapper); ok { + wantsClusterQuotaMapper.SetClusterQuotaMapper(i.ClusterQuotaMapper) + } + if wantsDefaultRegistryFunc, ok := plugin.(WantsDefaultRegistryFunc); ok { + wantsDefaultRegistryFunc.SetDefaultRegistryFunc(i.DefaultRegistryFn) + } + if wantsGroupCache, ok := plugin.(WantsGroupCache); ok { + wantsGroupCache.SetGroupCache(i.GroupCache) } } diff --git a/pkg/cmd/server/admission/types.go b/pkg/cmd/server/admission/types.go index 3545ffd6c498..edc0bc4840af 100644 --- a/pkg/cmd/server/admission/types.go +++ b/pkg/cmd/server/admission/types.go @@ -1,9 +1,9 @@ package admission import ( - "k8s.io/kubernetes/pkg/admission" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/client/restclient" + "k8s.io/apiserver/pkg/admission" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + restclient "k8s.io/client-go/rest" "k8s.io/kubernetes/pkg/quota" "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/server/api/helpers.go b/pkg/cmd/server/api/helpers.go index 22ff9ce33085..a61f1a323b3c 100644 --- a/pkg/cmd/server/api/helpers.go +++ b/pkg/cmd/server/api/helpers.go @@ -9,14 +9,14 @@ import ( "strings" "time" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -591,7 +591,7 @@ func GetDisabledAPIVersionsForGroup(config KubernetesMasterConfig, apiGroup stri return allowedVersions.Difference(enabledVersions).List() } -func HasKubernetesAPIVersion(config KubernetesMasterConfig, groupVersion unversioned.GroupVersion) bool { +func HasKubernetesAPIVersion(config KubernetesMasterConfig, groupVersion schema.GroupVersion) bool { enabledVersions := GetEnabledAPIVersionsForGroup(config, groupVersion.Group) return sets.NewString(enabledVersions...).Has(groupVersion.Version) } diff --git a/pkg/cmd/server/api/install/install.go b/pkg/cmd/server/api/install/install.go index 4df8ea15cf80..04c29ee5f2c0 100644 --- a/pkg/cmd/server/api/install/install.go +++ b/pkg/cmd/server/api/install/install.go @@ -5,8 +5,8 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapiv1 "github.com/openshift/origin/pkg/cmd/server/api/v1" @@ -26,7 +26,7 @@ const importPrefix = "github.com/openshift/origin/pkg/cmd/server/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{configapiv1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{configapiv1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -38,12 +38,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme configapi.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme @@ -59,7 +59,7 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case configapiv1.SchemeGroupVersion: return &meta.VersionInterfaces{ diff --git a/pkg/cmd/server/api/latest/helpers.go b/pkg/cmd/server/api/latest/helpers.go index 7b90b5b837ff..4f745eae9ba3 100644 --- a/pkg/cmd/server/api/latest/helpers.go +++ b/pkg/cmd/server/api/latest/helpers.go @@ -10,8 +10,8 @@ import ( "github.com/ghodss/yaml" - "k8s.io/kubernetes/pkg/runtime" - kyaml "k8s.io/kubernetes/pkg/util/yaml" + "k8s.io/apimachinery/pkg/runtime" + kyaml "k8s.io/apimachinery/pkg/util/yaml" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/api/latest/latest.go b/pkg/cmd/server/api/latest/latest.go index c3c4d834541f..9dae051ec0a6 100644 --- a/pkg/cmd/server/api/latest/latest.go +++ b/pkg/cmd/server/api/latest/latest.go @@ -1,8 +1,8 @@ package latest import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) @@ -10,16 +10,16 @@ import ( // HACK TO ELIMINATE CYCLE UNTIL WE KILL THIS PACKAGE // Version is the string that represents the current external default version. -var Version = unversioned.GroupVersion{Group: "", Version: "v1"} +var Version = schema.GroupVersion{Group: "", Version: "v1"} // OldestVersion is the string that represents the oldest server version supported, // for client code that wants to hardcode the lowest common denominator. -var OldestVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var OldestVersion = schema.GroupVersion{Group: "", Version: "v1"} // Versions is the list of versions that are recognized in code. The order provided // may be assumed to be least feature rich to most feature rich, and clients may // choose to prefer the latter items in the list over the former items when presented // with a set of versions to choose. -var Versions = []unversioned.GroupVersion{{Group: "", Version: "v1"}} +var Versions = []schema.GroupVersion{{Group: "", Version: "v1"}} -var Codec = serializer.NewCodecFactory(configapi.Scheme).LegacyCodec(unversioned.GroupVersion{Group: "", Version: "v1"}) +var Codec = serializer.NewCodecFactory(configapi.Scheme).LegacyCodec(schema.GroupVersion{Group: "", Version: "v1"}) diff --git a/pkg/cmd/server/api/register.go b/pkg/cmd/server/api/register.go index 3575ef38c1c6..9f793371bf9d 100644 --- a/pkg/cmd/server/api/register.go +++ b/pkg/cmd/server/api/register.go @@ -1,9 +1,10 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" ) var Scheme = runtime.NewScheme() @@ -13,15 +14,15 @@ var Codecs = serializer.NewCodecFactory(Scheme) const GroupName = "" // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -32,7 +33,7 @@ var ( // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { - if err := scheme.AddIgnoredConversionType(&unversioned.TypeMeta{}, &unversioned.TypeMeta{}); err != nil { + if err := scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil { return err } scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/cmd/server/api/serialization_test.go b/pkg/cmd/server/api/serialization_test.go index cd9a4d100031..f5995e9fe1a1 100644 --- a/pkg/cmd/server/api/serialization_test.go +++ b/pkg/cmd/server/api/serialization_test.go @@ -8,14 +8,15 @@ import ( "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/diff" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapiv1 "github.com/openshift/origin/pkg/cmd/server/api/v1" @@ -27,7 +28,7 @@ import ( _ "github.com/openshift/origin/pkg/cmd/server/api/install" ) -func fuzzInternalObject(t *testing.T, forVersion unversioned.GroupVersion, item runtime.Object, seed int64) runtime.Object { +func fuzzInternalObject(t *testing.T, forVersion schema.GroupVersion, item runtime.Object, seed int64) runtime.Object { f := fuzzerFor(t, forVersion, rand.NewSource(seed)) f.Funcs( // these follow defaulting rules @@ -313,7 +314,7 @@ func fuzzInternalObject(t *testing.T, forVersion unversioned.GroupVersion, item c.FuzzNoCustom(obj) for i := range obj.ExecutionRules { if len(obj.ExecutionRules[i].OnResources) == 0 { - obj.ExecutionRules[i].OnResources = []unversioned.GroupResource{{Resource: "pods"}} + obj.ExecutionRules[i].OnResources = []schema.GroupResource{{Resource: "pods"}} } obj.ExecutionRules[i].MatchImageLabelSelectors = nil } @@ -438,7 +439,7 @@ func TestSpecificRoundTrips(t *testing.T) { testCases := []struct { mediaType string in, out runtime.Object - to, from unversioned.GroupVersion + to, from schema.GroupVersion }{ { in: &configapi.MasterConfig{ @@ -453,7 +454,7 @@ func TestSpecificRoundTrips(t *testing.T) { }, to: configapiv1.SchemeGroupVersion, out: &configapiv1.MasterConfig{ - TypeMeta: unversioned.TypeMeta{Kind: "MasterConfig", APIVersion: "v1"}, + TypeMeta: metav1.TypeMeta{Kind: "MasterConfig", APIVersion: "v1"}, AdmissionConfig: configapiv1.AdmissionConfig{ PluginConfig: map[string]configapiv1.AdmissionPluginConfig{ "test1": {Configuration: runtime.RawExtension{ @@ -504,7 +505,7 @@ func TestSpecificRoundTrips(t *testing.T) { } } -func fuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source) *fuzz.Fuzzer { +func fuzzerFor(t *testing.T, version schema.GroupVersion, src rand.Source) *fuzz.Fuzzer { f := fuzz.New().NilChance(.5).NumElements(1, 1) if src != nil { f.RandSource(src) @@ -526,13 +527,13 @@ func fuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source) Raw: []byte(`{"apiVersion":"unknown.group/unknown","kind":"Something","someKey":"someValue"}`), } }, - func(j *unversioned.TypeMeta, c fuzz.Continue) { + func(j *metav1.TypeMeta, c fuzz.Continue) { // We have to customize the randomization of TypeMetas because their // APIVersion and Kind must remain blank in memory. j.APIVersion = "" j.Kind = "" }, - func(j *kapi.ObjectMeta, c fuzz.Continue) { + func(j *metav1.ObjectMeta, c fuzz.Continue) { j.Name = c.RandString() j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) j.SelfLink = c.RandString() @@ -542,7 +543,7 @@ func fuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source) var sec, nsec int64 c.Fuzz(&sec) c.Fuzz(&nsec) - j.CreationTimestamp = unversioned.Unix(sec, nsec).Rfc3339Copy() + j.CreationTimestamp = metav1.Unix(sec, nsec).Rfc3339Copy() }, func(j *kapi.ObjectReference, c fuzz.Continue) { // We have to customize the randomization of TypeMetas because their diff --git a/pkg/cmd/server/api/types.go b/pkg/cmd/server/api/types.go index cd8b21fb4de4..98b50f07965c 100644 --- a/pkg/cmd/server/api/types.go +++ b/pkg/cmd/server/api/types.go @@ -1,10 +1,10 @@ package api import ( - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" ) // A new entry shall be added to FeatureAliases for every change to following values. @@ -147,7 +147,7 @@ type ExtendedArguments map[string][]string // NodeConfig is the fully specified config starting an OpenShift node type NodeConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // NodeName is the value used to identify this particular node in the cluster. If possible, this should be your fully qualified hostname. // If you're describing a set of static nodes to the master, this value must match one of the values in the list @@ -301,7 +301,7 @@ const ( type FeatureList []string type MasterConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // ServingInfo describes how to start serving ServingInfo HTTPServingInfo @@ -860,7 +860,7 @@ type SessionConfig struct { // SessionSecrets list the secrets to use to sign/encrypt and authenticate/decrypt created sessions. type SessionSecrets struct { - unversioned.TypeMeta + metav1.TypeMeta // Secrets is a list of secrets // New sessions are signed and encrypted using the first secret. @@ -889,29 +889,29 @@ type IdentityProvider struct { } type BasicAuthPasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // RemoteConnectionInfo contains information about how to connect to the external basic auth server RemoteConnectionInfo RemoteConnectionInfo } type AllowAllPasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta } type DenyAllPasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta } type HTPasswdPasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // File is a reference to your htpasswd file File string } type LDAPPasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // URL is an RFC 2255 URL which specifies the LDAP search parameters to use. The syntax of the URL is // ldap://host:port/basedn?attribute?scope?filter URL string @@ -948,7 +948,7 @@ type LDAPAttributeMapping struct { } type KeystonePasswordIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // RemoteConnectionInfo contains information about how to connect to the keystone server RemoteConnectionInfo RemoteConnectionInfo // Domain Name is required for keystone v3 @@ -956,7 +956,7 @@ type KeystonePasswordIdentityProvider struct { } type RequestHeaderIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // LoginURL is a URL to redirect unauthenticated /authorize requests to // Unauthenticated requests from OAuth clients which expect interactive logins will be redirected here @@ -990,7 +990,7 @@ type RequestHeaderIdentityProvider struct { } type GitHubIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // ClientID is the oauth client ID ClientID string @@ -1003,7 +1003,7 @@ type GitHubIdentityProvider struct { } type GitLabIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // CA is the optional trusted certificate authority bundle to use when making requests to the server // If empty, the default system roots are used @@ -1017,7 +1017,7 @@ type GitLabIdentityProvider struct { } type GoogleIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // ClientID is the oauth client ID ClientID string @@ -1029,7 +1029,7 @@ type GoogleIdentityProvider struct { } type OpenIDIdentityProvider struct { - unversioned.TypeMeta + metav1.TypeMeta // CA is the optional trusted certificate authority bundle to use when making requests to the server // If empty, the default system roots are used @@ -1219,7 +1219,7 @@ type StringSourceSpec struct { } type LDAPSyncConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // URL is the scheme, host and port of the LDAP server to connect to: scheme://host:port URL string @@ -1402,7 +1402,7 @@ type ServiceServingCert struct { // When this type is present as the `configuration` object under `pluginConfig` and *if* the admission plugin supports it, // this will cause an "off by default" admission plugin to be enabled type DefaultAdmissionConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // Disable turns off an admission plugin that is enabled by default. Disable bool diff --git a/pkg/cmd/server/api/types_test.go b/pkg/cmd/server/api/types_test.go index c1cf193175ec..9989410f54f4 100644 --- a/pkg/cmd/server/api/types_test.go +++ b/pkg/cmd/server/api/types_test.go @@ -5,15 +5,15 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + kapi "k8s.io/kubernetes/pkg/api" ) func TestKnownAPIGroups(t *testing.T) { unexposedGroups := sets.NewString("authorization.k8s.io", "componentconfig", "metrics", "policy", "federation", "authentication.k8s.io", "rbac.authorization.k8s.io") enabledGroups := sets.NewString() - for _, enabledVersion := range registered.EnabledVersions() { + for _, enabledVersion := range kapi.Registry.EnabledVersions() { enabledGroups.Insert(enabledVersion.Group) } @@ -29,7 +29,7 @@ func TestAllowedAPIVersions(t *testing.T) { // Make sure all versions we know about match registered versions for group, versions := range KubeAPIGroupsToAllowedVersions { enabled := sets.NewString() - for _, enabledVersion := range registered.EnabledVersionsForGroup(group) { + for _, enabledVersion := range kapi.Registry.EnabledVersionsForGroup(group) { enabled.Insert(enabledVersion.Version) } expected := sets.NewString(versions...) diff --git a/pkg/cmd/server/api/v1/conversions.go b/pkg/cmd/server/api/v1/conversions.go index 57b2136b5d8f..2c9b3bb591d1 100644 --- a/pkg/cmd/server/api/v1/conversions.go +++ b/pkg/cmd/server/api/v1/conversions.go @@ -1,10 +1,10 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/api/extension" internal "github.com/openshift/origin/pkg/cmd/server/api" @@ -336,9 +336,9 @@ func addConversionFuncs(scheme *runtime.Scheme) error { return nil }, - api.Convert_resource_Quantity_To_resource_Quantity, - api.Convert_bool_To_Pointer_bool, - api.Convert_Pointer_bool_To_bool, + metav1.Convert_resource_Quantity_To_resource_Quantity, + metav1.Convert_bool_To_Pointer_bool, + metav1.Convert_Pointer_bool_To_bool, ) } diff --git a/pkg/cmd/server/api/v1/register.go b/pkg/cmd/server/api/v1/register.go index dd6558d3af75..a52006044e5a 100644 --- a/pkg/cmd/server/api/v1/register.go +++ b/pkg/cmd/server/api/v1/register.go @@ -1,14 +1,14 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) const GroupName = "" // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs, addDefaultingFuncs) diff --git a/pkg/cmd/server/api/v1/stringsource_test.go b/pkg/cmd/server/api/v1/stringsource_test.go index 3c11559eb2df..0c1917fb6397 100644 --- a/pkg/cmd/server/api/v1/stringsource_test.go +++ b/pkg/cmd/server/api/v1/stringsource_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/api/v1/types.go b/pkg/cmd/server/api/v1/types.go index b97741289273..55cd5f899295 100644 --- a/pkg/cmd/server/api/v1/types.go +++ b/pkg/cmd/server/api/v1/types.go @@ -1,16 +1,16 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" ) type ExtendedArguments map[string][]string // NodeConfig is the fully specified config starting an OpenShift node type NodeConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // NodeName is the value used to identify this particular node in the cluster. If possible, this should be your fully qualified hostname. // If you're describing a set of static nodes to the master, this value must match one of the values in the list @@ -169,7 +169,7 @@ type FeatureList []string // MasterConfig holds the necessary configuration options for the OpenShift master type MasterConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // ServingInfo describes how to start serving ServingInfo HTTPServingInfo `json:"servingInfo"` @@ -769,7 +769,7 @@ type SessionConfig struct { // SessionSecrets list the secrets to use to sign/encrypt and authenticate/decrypt created sessions. type SessionSecrets struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Secrets is a list of secrets // New sessions are signed and encrypted using the first secret. @@ -801,7 +801,7 @@ type IdentityProvider struct { // BasicAuthPasswordIdentityProvider provides identities for users authenticating using HTTP basic auth credentials type BasicAuthPasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // RemoteConnectionInfo contains information about how to connect to the external basic auth server RemoteConnectionInfo `json:",inline"` @@ -809,17 +809,17 @@ type BasicAuthPasswordIdentityProvider struct { // AllowAllPasswordIdentityProvider provides identities for users authenticating using non-empty passwords type AllowAllPasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` } // DenyAllPasswordIdentityProvider provides no identities for users type DenyAllPasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` } // HTPasswdPasswordIdentityProvider provides identities for users authenticating using htpasswd credentials type HTPasswdPasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // File is a reference to your htpasswd file File string `json:"file"` @@ -827,7 +827,7 @@ type HTPasswdPasswordIdentityProvider struct { // LDAPPasswordIdentityProvider provides identities for users authenticating using LDAP credentials type LDAPPasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // URL is an RFC 2255 URL which specifies the LDAP search parameters to use. The syntax of the URL is // ldap://host:port/basedn?attribute?scope?filter URL string `json:"url"` @@ -866,7 +866,7 @@ type LDAPAttributeMapping struct { // KeystonePasswordIdentityProvider provides identities for users authenticating using keystone password credentials type KeystonePasswordIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // RemoteConnectionInfo contains information about how to connect to the keystone server RemoteConnectionInfo `json:",inline"` // Domain Name is required for keystone v3 @@ -875,7 +875,7 @@ type KeystonePasswordIdentityProvider struct { // RequestHeaderIdentityProvider provides identities for users authenticating using request header credentials type RequestHeaderIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // LoginURL is a URL to redirect unauthenticated /authorize requests to // Unauthenticated requests from OAuth clients which expect interactive logins will be redirected here @@ -910,7 +910,7 @@ type RequestHeaderIdentityProvider struct { // GitHubIdentityProvider provides identities for users authenticating using GitHub credentials type GitHubIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // ClientID is the oauth client ID ClientID string `json:"clientID"` @@ -924,7 +924,7 @@ type GitHubIdentityProvider struct { // GitLabIdentityProvider provides identities for users authenticating using GitLab credentials type GitLabIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // CA is the optional trusted certificate authority bundle to use when making requests to the server // If empty, the default system roots are used @@ -939,7 +939,7 @@ type GitLabIdentityProvider struct { // GoogleIdentityProvider provides identities for users authenticating using Google credentials type GoogleIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // ClientID is the oauth client ID ClientID string `json:"clientID"` @@ -952,7 +952,7 @@ type GoogleIdentityProvider struct { // OpenIDIdentityProvider provides identities for users authenticating using OpenID credentials type OpenIDIdentityProvider struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // CA is the optional trusted certificate authority bundle to use when making requests to the server // If empty, the default system roots are used @@ -1148,7 +1148,7 @@ type StringSourceSpec struct { // LDAPSyncConfig holds the necessary configuration options to define an LDAP group sync type LDAPSyncConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Host is the scheme, host and port of the LDAP server to connect to: // scheme://host:port URL string `json:"url"` @@ -1340,7 +1340,7 @@ type ServiceServingCert struct { // When this type is present as the `configuration` object under `pluginConfig` and *if* the admission plugin supports it, // this will cause an "off by default" admission plugin to be enabled type DefaultAdmissionConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Disable turns off an admission plugin that is enabled by default. Disable bool `json:"disable"` diff --git a/pkg/cmd/server/api/v1/types_test.go b/pkg/cmd/server/api/v1/types_test.go index 0f81577f4fa7..3b737a787c51 100644 --- a/pkg/cmd/server/api/v1/types_test.go +++ b/pkg/cmd/server/api/v1/types_test.go @@ -5,10 +5,11 @@ import ( "github.com/ghodss/yaml" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/util/diff" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/diff" internal "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/server/api/latest" @@ -633,11 +634,11 @@ volumeConfig: } type AdmissionPluginTestConfig struct { - unversioned.TypeMeta + metav1.TypeMeta Data string `json:"data"` } -func (obj *AdmissionPluginTestConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *AdmissionPluginTestConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } func TestMasterConfig(t *testing.T) { internal.Scheme.AddKnownTypes(v1.SchemeGroupVersion, &AdmissionPluginTestConfig{}) diff --git a/pkg/cmd/server/api/validation/etcd.go b/pkg/cmd/server/api/validation/etcd.go index 7814917f4567..3636863923b8 100644 --- a/pkg/cmd/server/api/validation/etcd.go +++ b/pkg/cmd/server/api/validation/etcd.go @@ -5,8 +5,8 @@ import ( "strings" "github.com/openshift/origin/pkg/cmd/server/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" ) // ValidateEtcdConnectionInfo validates the connection info. If a server EtcdConfig is provided, diff --git a/pkg/cmd/server/api/validation/ldap.go b/pkg/cmd/server/api/validation/ldap.go index 0fd730f59965..68e5d39ba414 100644 --- a/pkg/cmd/server/api/validation/ldap.go +++ b/pkg/cmd/server/api/validation/ldap.go @@ -6,7 +6,7 @@ import ( "gopkg.in/ldap.v2" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/auth/ldaputil" "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/pkg/cmd/server/api/validation/master.go b/pkg/cmd/server/api/validation/master.go index 565359d224dc..cb2e196e83dc 100644 --- a/pkg/cmd/server/api/validation/master.go +++ b/pkg/cmd/server/api/validation/master.go @@ -10,14 +10,14 @@ import ( "strings" "time" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/sets" + kuval "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" apiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" controlleroptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" kvalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/serviceaccount" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/sets" - kuval "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" diff --git a/pkg/cmd/server/api/validation/master_test.go b/pkg/cmd/server/api/validation/master_test.go index e008b5f4b48e..2db7d12ef5a8 100644 --- a/pkg/cmd/server/api/validation/master_test.go +++ b/pkg/cmd/server/api/validation/master_test.go @@ -3,10 +3,10 @@ package validation import ( "testing" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/cmd/server/api" configapi "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/pkg/cmd/server/api/validation/node.go b/pkg/cmd/server/api/validation/node.go index da385eb1b903..31ebd49fb0ea 100644 --- a/pkg/cmd/server/api/validation/node.go +++ b/pkg/cmd/server/api/validation/node.go @@ -5,8 +5,8 @@ import ( "strings" "time" + "k8s.io/apimachinery/pkg/util/validation/field" kubeletoptions "k8s.io/kubernetes/cmd/kubelet/app/options" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/api/validation/node_test.go b/pkg/cmd/server/api/validation/node_test.go index 9ce5dd1b0691..c0b6c2cc4740 100644 --- a/pkg/cmd/server/api/validation/node_test.go +++ b/pkg/cmd/server/api/validation/node_test.go @@ -3,8 +3,8 @@ package validation import ( "testing" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/util/validation/field" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/api/validation/oauth.go b/pkg/cmd/server/api/validation/oauth.go index 56d2eea55dea..4952c3ae794c 100644 --- a/pkg/cmd/server/api/validation/oauth.go +++ b/pkg/cmd/server/api/validation/oauth.go @@ -7,8 +7,8 @@ import ( "path" "strings" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/auth/authenticator/redirector" "github.com/openshift/origin/pkg/auth/server/errorpage" diff --git a/pkg/cmd/server/api/validation/validation.go b/pkg/cmd/server/api/validation/validation.go index 34833d016b3a..45f622a52110 100644 --- a/pkg/cmd/server/api/validation/validation.go +++ b/pkg/cmd/server/api/validation/validation.go @@ -15,10 +15,10 @@ import ( "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/sets" + utilvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" kvalidation "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/sets" - utilvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/server/crypto" diff --git a/pkg/cmd/server/authenticator/remote.go b/pkg/cmd/server/authenticator/remote.go index d23b2b2d636a..573de0f1a44a 100644 --- a/pkg/cmd/server/authenticator/remote.go +++ b/pkg/cmd/server/authenticator/remote.go @@ -4,10 +4,10 @@ import ( "crypto/x509" "time" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/group" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/group" + "k8s.io/apiserver/pkg/authentication/request/union" unversionedauthentication "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion" - "k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/union" "github.com/openshift/origin/pkg/auth/authenticator/anonymous" "github.com/openshift/origin/pkg/auth/authenticator/request/bearertoken" diff --git a/pkg/cmd/server/bootstrappolicy/infra_sa_policy.go b/pkg/cmd/server/bootstrappolicy/infra_sa_policy.go index a7d01e8abd05..67e33765586c 100644 --- a/pkg/cmd/server/bootstrappolicy/infra_sa_policy.go +++ b/pkg/cmd/server/bootstrappolicy/infra_sa_policy.go @@ -3,6 +3,8 @@ package bootstrappolicy import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" @@ -11,7 +13,6 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/storage" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -140,7 +141,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraBuildControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BuildControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -188,7 +189,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraDeploymentConfigControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DeploymentConfigControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -222,7 +223,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraDeploymentControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DeploymentControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -263,7 +264,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraReplicationControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ReplicationControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -308,7 +309,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraReplicaSetControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ReplicaSetControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -340,7 +341,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraJobControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: JobControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -391,7 +392,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraHPAControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: HPAControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -441,7 +442,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraPersistentVolumeRecyclerControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: PersistentVolumeRecyclerControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -500,7 +501,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraPersistentVolumeAttachDetachControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: PersistentVolumeAttachDetachControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -549,7 +550,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraPersistentVolumeBinderControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: PersistentVolumeBinderControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -630,7 +631,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraPersistentVolumeProvisionerControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: PersistentVolumeProvisionerControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -674,7 +675,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraDaemonSetControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DaemonSetControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -725,7 +726,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraDisruptionControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DisruptionControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -773,7 +774,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraNamespaceControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NamespaceControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -806,7 +807,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraGCControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: GCControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -838,7 +839,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraServiceLoadBalancerControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ServiceLoadBalancerControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -881,7 +882,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraStatefulSetControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: StatefulSetControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -937,7 +938,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraUnidlingControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: UnidlingControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -986,7 +987,7 @@ func init() { err = InfraSAs.addServiceAccount( ServiceServingCertServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ServiceServingCertControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -1010,7 +1011,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraCertificateSigningControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: CertificateSigningControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -1034,7 +1035,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraEndpointControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: EndpointControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -1066,7 +1067,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraServiceIngressIPControllerServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ServiceIngressIPControllerRoleName, }, Rules: []authorizationapi.PolicyRule{ @@ -1103,7 +1104,7 @@ func init() { err = InfraSAs.addServiceAccount( InfraNodeBootstrapServiceAccountName, authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeBootstrapRoleName, }, Rules: []authorizationapi.PolicyRule{ diff --git a/pkg/cmd/server/bootstrappolicy/policy.go b/pkg/cmd/server/bootstrappolicy/policy.go index 5e1ad2d4bca7..cf1436b6358c 100644 --- a/pkg/cmd/server/bootstrappolicy/policy.go +++ b/pkg/cmd/server/bootstrappolicy/policy.go @@ -3,6 +3,8 @@ package bootstrappolicy import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" kauthenticationapi "k8s.io/kubernetes/pkg/apis/authentication" @@ -13,7 +15,6 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/storage" - "k8s.io/kubernetes/pkg/util/sets" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -82,7 +83,7 @@ var ( func GetBootstrapOpenshiftRoles(openshiftNamespace string) []authorizationapi.Role { roles := []authorizationapi.Role{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: OpenshiftSharedResourceViewRoleName, Namespace: openshiftNamespace, }, @@ -114,7 +115,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { roles := []authorizationapi.ClusterRole{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ClusterAdminRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A super-user that can perform any action in the cluster. When granted to a user within a project, they have full control over quota and membership and can perform every action on every resource in the project.", @@ -130,7 +131,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SudoerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -141,7 +142,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ClusterReaderRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -223,7 +224,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ClusterDebuggerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -237,7 +238,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BuildStrategyDockerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -248,7 +249,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BuildStrategyCustomRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -259,7 +260,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BuildStrategySourceRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -270,7 +271,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BuildStrategyJenkinsPipelineRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -281,7 +282,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: StorageAdminRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -294,7 +295,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: AdminRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user that has edit rights within the project and can change the project's membership.", @@ -359,7 +360,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: EditRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user that can create and edit most objects in a project, but can not update the project's membership.", @@ -414,7 +415,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ViewRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user who can view but not edit any resources within the project. They can not view secrets or membership.", @@ -466,7 +467,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BasicUserRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user that can get basic information about projects.", @@ -483,7 +484,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SelfAccessReviewerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -495,7 +496,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SelfProvisionerRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user that can request projects.", @@ -507,7 +508,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: StatusCheckerRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "A user that can get basic cluster status information.", @@ -526,7 +527,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImageAuditorRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -537,7 +538,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImagePullerRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "Grants the right to pull images from within a project.", @@ -553,7 +554,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { // if we found another permission needed by them, we'd add it there so the intent is different if you used the ImageBuilderRole // you could end up accidentally granting more permissions than you intended. This is intended to only grant enough powers to // push an image to our registry - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImagePusherRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "Grants the right to push and pull images from within a project.", @@ -565,7 +566,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImageBuilderRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "Grants the right to build, push and pull images from within a project. Used primarily with service accounts for builds.", @@ -581,7 +582,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImagePrunerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -599,7 +600,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImageSignerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -611,7 +612,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DeployerRoleName, Annotations: map[string]string{ oapi.OpenShiftDescription: "Grants the right to deploy within a project. Used primarily with service accounts for automated deployments.", @@ -627,7 +628,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: MasterRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -642,7 +643,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: OAuthTokenDeleterRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -653,7 +654,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: RouterRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -668,7 +669,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: RegistryRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -684,7 +685,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeProxierRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -696,7 +697,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeAdminRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -711,7 +712,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeReaderRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -729,7 +730,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -778,7 +779,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SDNReaderRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -793,7 +794,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SDNManagerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -807,7 +808,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: WebHooksRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -819,7 +820,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DiscoveryRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -830,7 +831,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: PersistentVolumeProvisionerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -847,7 +848,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: RegistryAdminRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -871,7 +872,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: RegistryEditorRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -888,7 +889,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: RegistryViewerRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -903,7 +904,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: TemplateServiceBrokerClientRoleName, Annotations: map[string]string{ roleSystemOnly: roleIsSystemOnly, @@ -964,7 +965,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole { func GetBootstrapOpenshiftRoleBindings(openshiftNamespace string) []authorizationapi.RoleBinding { return []authorizationapi.RoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: OpenshiftSharedResourceViewRoleBindingName, Namespace: openshiftNamespace, }, @@ -980,7 +981,7 @@ func GetBootstrapOpenshiftRoleBindings(openshiftNamespace string) []authorizatio func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { return []authorizationapi.ClusterRoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: MasterRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -989,7 +990,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: MastersGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeAdminRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1002,7 +1003,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ClusterAdminRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1015,7 +1016,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ClusterReaderRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1024,7 +1025,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: ClusterReaderGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: BasicUserRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1033,7 +1034,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SelfAccessReviewerRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1045,7 +1046,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SelfProvisionerRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1054,7 +1055,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedOAuthGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: OAuthTokenDeleterRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1063,7 +1064,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}, {Kind: authorizationapi.SystemGroupKind, Name: UnauthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: StatusCheckerRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1072,7 +1073,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}, {Kind: authorizationapi.SystemGroupKind, Name: UnauthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1081,7 +1082,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: NodesGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: NodeProxierRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1091,7 +1092,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: NodesGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SDNReaderRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1101,7 +1102,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: NodesGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: WebHooksRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1110,7 +1111,7 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}, {Kind: authorizationapi.SystemGroupKind, Name: UnauthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DiscoveryRoleBindingName, }, RoleRef: kapi.ObjectReference{ @@ -1126,17 +1127,17 @@ func GetBootstrapClusterRoleBindings() []authorizationapi.ClusterRoleBinding { // Cluster admins can remove these role bindings, and the reconcile-cluster-role-bindings command // run during an upgrade won't re-add the "system:authenticated" group { - ObjectMeta: kapi.ObjectMeta{Name: BuildStrategyDockerRoleBindingName}, + ObjectMeta: metav1.ObjectMeta{Name: BuildStrategyDockerRoleBindingName}, RoleRef: kapi.ObjectReference{Name: BuildStrategyDockerRoleName}, Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{Name: BuildStrategySourceRoleBindingName}, + ObjectMeta: metav1.ObjectMeta{Name: BuildStrategySourceRoleBindingName}, RoleRef: kapi.ObjectReference{Name: BuildStrategySourceRoleName}, Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}}, }, { - ObjectMeta: kapi.ObjectMeta{Name: BuildStrategyJenkinsPipelineRoleBindingName}, + ObjectMeta: metav1.ObjectMeta{Name: BuildStrategyJenkinsPipelineRoleBindingName}, RoleRef: kapi.ObjectReference{Name: BuildStrategyJenkinsPipelineRoleName}, Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: AuthenticatedGroup}}, }, diff --git a/pkg/cmd/server/bootstrappolicy/policy_test.go b/pkg/cmd/server/bootstrappolicy/policy_test.go index e788f75c8d99..cd685e6a0f0c 100644 --- a/pkg/cmd/server/bootstrappolicy/policy_test.go +++ b/pkg/cmd/server/bootstrappolicy/policy_test.go @@ -8,9 +8,9 @@ import ( "github.com/ghodss/yaml" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" "github.com/openshift/origin/pkg/api/v1" authorizationapi "github.com/openshift/origin/pkg/authorization/api" diff --git a/pkg/cmd/server/bootstrappolicy/project_policy.go b/pkg/cmd/server/bootstrappolicy/project_policy.go index 3f13cb368927..9b9556865941 100644 --- a/pkg/cmd/server/bootstrappolicy/project_policy.go +++ b/pkg/cmd/server/bootstrappolicy/project_policy.go @@ -1,8 +1,9 @@ package bootstrappolicy import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/serviceaccount" authorizationapi "github.com/openshift/origin/pkg/authorization/api" ) @@ -10,7 +11,7 @@ import ( func GetBootstrapServiceAccountProjectRoleBindings(namespace string) []authorizationapi.RoleBinding { return []authorizationapi.RoleBinding{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImagePullerRoleBindingName, Namespace: namespace, }, @@ -20,7 +21,7 @@ func GetBootstrapServiceAccountProjectRoleBindings(namespace string) []authoriza Subjects: []kapi.ObjectReference{{Kind: authorizationapi.SystemGroupKind, Name: serviceaccount.MakeNamespaceGroupName(namespace)}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ImageBuilderRoleBindingName, Namespace: namespace, }, @@ -30,7 +31,7 @@ func GetBootstrapServiceAccountProjectRoleBindings(namespace string) []authoriza Subjects: []kapi.ObjectReference{{Kind: authorizationapi.ServiceAccountKind, Name: BuilderServiceAccountName}}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: DeployerRoleBindingName, Namespace: namespace, }, diff --git a/pkg/cmd/server/bootstrappolicy/securitycontextconstraints.go b/pkg/cmd/server/bootstrappolicy/securitycontextconstraints.go index e4617c23eb40..fcc5b260bfbe 100644 --- a/pkg/cmd/server/bootstrappolicy/securitycontextconstraints.go +++ b/pkg/cmd/server/bootstrappolicy/securitycontextconstraints.go @@ -1,8 +1,9 @@ package bootstrappolicy import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/serviceaccount" ) const ( @@ -57,7 +58,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string constraints := []kapi.SecurityContextConstraints{ // SecurityContextConstraintPrivileged allows all access for every field { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintPrivileged, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintPrivilegedDesc, @@ -87,7 +88,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string // SecurityContextConstraintNonRoot does not allow host access, allocates SELinux labels // and allows the user to request a specific UID or provide the default in the dockerfile. { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintNonRoot, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintNonRootDesc, @@ -115,7 +116,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string // SecurityContextConstraintHostMountAndAnyUID is the same as the restricted scc but allows the use of the hostPath and NFS plugins, and running as any UID. // Used by the PV recycler. { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintHostMountAndAnyUID, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintHostMountAndAnyUIDDesc, @@ -144,7 +145,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string // SecurityContextConstraintHostNS allows access to everything except privileged on the host // but still allocates UIDs and SELinux. { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintHostNS, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintHostNSDesc, @@ -176,7 +177,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string }, // SecurityContextConstraintRestricted allows no host access and allocates UIDs and SELinux. { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintRestricted, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintRestrictedDesc, @@ -206,7 +207,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string }, // SecurityContextConstraintsAnyUID allows no host access and allocates SELinux. { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintsAnyUID, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintsAnyUIDDesc, @@ -235,7 +236,7 @@ func GetBootstrapSecurityContextConstraints(sccNameToAdditionalGroups map[string }, // SecurityContextConstraintsHostNetwork allows host network and host ports { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: SecurityContextConstraintsHostNetwork, Annotations: map[string]string{ DescriptionAnnotation: SecurityContextConstraintsHostNetworkDesc, diff --git a/pkg/cmd/server/bootstrappolicy/securitycontextconstraints_test.go b/pkg/cmd/server/bootstrappolicy/securitycontextconstraints_test.go index 4c8f5191074b..b7ba94523139 100644 --- a/pkg/cmd/server/bootstrappolicy/securitycontextconstraints_test.go +++ b/pkg/cmd/server/bootstrappolicy/securitycontextconstraints_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/serviceaccount" ) func TestBootstrappedConstraints(t *testing.T) { diff --git a/pkg/cmd/server/crypto/crypto.go b/pkg/cmd/server/crypto/crypto.go index ce69d7ba3810..33367a84b706 100644 --- a/pkg/cmd/server/crypto/crypto.go +++ b/pkg/cmd/server/crypto/crypto.go @@ -24,8 +24,8 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" "sort" diff --git a/pkg/cmd/server/election/lease_endpoint_reconciler.go b/pkg/cmd/server/election/lease_endpoint_reconciler.go index 456771989def..b846ac7d3f88 100644 --- a/pkg/cmd/server/election/lease_endpoint_reconciler.go +++ b/pkg/cmd/server/election/lease_endpoint_reconciler.go @@ -5,13 +5,15 @@ import ( "net" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kruntime "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/endpoints" - "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/master" "k8s.io/kubernetes/pkg/registry/core/endpoint" - kruntime "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" ) // Leases is an interface which assists in managing the set of active masters @@ -34,7 +36,7 @@ var _ Leases = &storageLeases{} // ListLeases retrieves a list of the current master IPs from storage func (s *storageLeases) ListLeases() ([]string, error) { ipInfoList := &api.EndpointsList{} - if err := s.storage.List(api.NewDefaultContext(), s.baseKey, "0", storage.Everything, ipInfoList); err != nil { + if err := s.storage.List(apirequest.NewDefaultContext(), s.baseKey, "0", storage.Everything, ipInfoList); err != nil { return nil, err } @@ -50,7 +52,7 @@ func (s *storageLeases) ListLeases() ([]string, error) { // UpdateLease resets the TTL on a master IP in storage func (s *storageLeases) UpdateLease(ip string) error { - return s.storage.GuaranteedUpdate(api.NewDefaultContext(), s.baseKey+"/"+ip, &api.Endpoints{}, true, nil, func(input kruntime.Object, respMeta storage.ResponseMeta) (kruntime.Object, *uint64, error) { + return s.storage.GuaranteedUpdate(apirequest.NewDefaultContext(), s.baseKey+"/"+ip, &api.Endpoints{}, true, nil, func(input kruntime.Object, respMeta storage.ResponseMeta) (kruntime.Object, *uint64, error) { // just make sure we've got the right IP set, and then refresh the TTL existing := input.(*api.Endpoints) existing.Subsets = []api.EndpointSubset{ @@ -104,7 +106,7 @@ func NewLeaseEndpointReconciler(endpointRegistry endpoint.Registry, masterLeases // different from the directory listing, and update the endpoints object // accordingly. func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error { - ctx := api.NewDefaultContext() + ctx := apirequest.NewDefaultContext() // Refresh the TTL on our key, independently of whether any error or // update conflict happens below. This makes sure that at least some of @@ -114,14 +116,14 @@ func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net. } // Retrieve the current list of endpoints... - e, err := r.endpointRegistry.GetEndpoints(ctx, serviceName) + e, err := r.endpointRegistry.GetEndpoints(ctx, serviceName, &metav1.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { return err } e = &api.Endpoints{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, Namespace: api.NamespaceDefault, }, diff --git a/pkg/cmd/server/election/lease_endpoint_reconciler_test.go b/pkg/cmd/server/election/lease_endpoint_reconciler_test.go index 5f3d28d976fe..f5cdb2a675a1 100644 --- a/pkg/cmd/server/election/lease_endpoint_reconciler_test.go +++ b/pkg/cmd/server/election/lease_endpoint_reconciler_test.go @@ -5,6 +5,7 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -50,8 +51,8 @@ func (f *fakeLeases) GetUpdatedKeys() []string { func TestLeaseEndpointReconciler(t *testing.T) { ns := api.NamespaceDefault - om := func(name string) api.ObjectMeta { - return api.ObjectMeta{Namespace: ns, Name: name} + om := func(name string) metav1.ObjectMeta { + return metav1.ObjectMeta{Namespace: ns, Name: name} } reconcile_tests := []struct { testName string diff --git a/pkg/cmd/server/etcd/etcd.go b/pkg/cmd/server/etcd/etcd.go index 42a6a03d263d..c7602ade1d90 100644 --- a/pkg/cmd/server/etcd/etcd.go +++ b/pkg/cmd/server/etcd/etcd.go @@ -9,9 +9,9 @@ import ( etcdclient "github.com/coreos/etcd/client" "golang.org/x/net/context" - "k8s.io/kubernetes/pkg/client/restclient" - etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" + etcdutil "k8s.io/apiserver/pkg/storage/etcd/util" + restclient "k8s.io/client-go/rest" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/handlers/authentication.go b/pkg/cmd/server/handlers/authentication.go index cf16371f8f91..7950a15dc0d8 100644 --- a/pkg/cmd/server/handlers/authentication.go +++ b/pkg/cmd/server/handlers/authentication.go @@ -5,12 +5,12 @@ import ( "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/authenticator" + "k8s.io/apiserver/pkg/authentication/authenticator" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) // AuthenticationHandlerFilter creates a filter object that will enforce authentication directly -func AuthenticationHandlerFilter(handler http.Handler, authenticator authenticator.Request, contextMapper kapi.RequestContextMapper) http.Handler { +func AuthenticationHandlerFilter(handler http.Handler, authenticator authenticator.Request, contextMapper apirequest.RequestContextMapper) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { user, ok, err := authenticator.AuthenticateRequest(req) if err != nil || !ok { @@ -23,7 +23,7 @@ func AuthenticationHandlerFilter(handler http.Handler, authenticator authenticat http.Error(w, "Unable to find request context", http.StatusInternalServerError) return } - if err := contextMapper.Update(req, kapi.WithUser(ctx, user)); err != nil { + if err := contextMapper.Update(req, apirequest.WithUser(ctx, user)); err != nil { glog.V(4).Infof("Error setting authenticated context: %v", err) http.Error(w, "Unable to set authenticated request context", http.StatusInternalServerError) return diff --git a/pkg/cmd/server/handlers/authorization.go b/pkg/cmd/server/handlers/authorization.go index ee434376c804..b947017ec0d2 100644 --- a/pkg/cmd/server/handlers/authorization.go +++ b/pkg/cmd/server/handlers/authorization.go @@ -9,12 +9,13 @@ import ( restful "github.com/emicklei/go-restful" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/authorization/authorizer" ) @@ -38,7 +39,7 @@ func (a bypassAuthorizer) Authorize(attributes kauthorizer.Attributes) (allowed } // AuthorizationFilter imposes normal authorization rules -func AuthorizationFilter(handler http.Handler, authorizer kauthorizer.Authorizer, authorizationAttributeBuilder authorizer.AuthorizationAttributeBuilder, contextMapper kapi.RequestContextMapper) http.Handler { +func AuthorizationFilter(handler http.Handler, authorizer kauthorizer.Authorizer, authorizationAttributeBuilder authorizer.AuthorizationAttributeBuilder, contextMapper apirequest.RequestContextMapper) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { attributes, err := authorizationAttributeBuilder.GetAttributes(req) if err != nil { @@ -88,7 +89,7 @@ func Forbidden(reason string, attributes kauthorizer.Attributes, w http.Response // We don't have direct access to kind or name (not that those apply either in the general case) // We create a NewForbidden to stay close the API, but then we override the message to get a serialization // that makes sense when a human reads it. - forbiddenError := kapierrors.NewForbidden(unversioned.GroupResource{Group: group, Resource: resource}, name, errors.New("") /*discarded*/) + forbiddenError := kapierrors.NewForbidden(schema.GroupResource{Group: group, Resource: resource}, name, errors.New("") /*discarded*/) forbiddenError.ErrStatus.Message = reason formatted := &bytes.Buffer{} diff --git a/pkg/cmd/server/handlers/impersonation.go b/pkg/cmd/server/handlers/impersonation.go index 36a1b8ad7e16..1070dfbf288f 100644 --- a/pkg/cmd/server/handlers/impersonation.go +++ b/pkg/cmd/server/handlers/impersonation.go @@ -4,11 +4,12 @@ import ( "fmt" "net/http" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/apiserver/pkg/authentication/user" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/server/httplog" kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/httplog" - "k8s.io/kubernetes/pkg/serviceaccount" authenticationapi "github.com/openshift/origin/pkg/auth/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -22,7 +23,7 @@ type GroupCache interface { } // ImpersonationFilter checks for impersonation rules against the current user. -func ImpersonationFilter(handler http.Handler, a kauthorizer.Authorizer, groupCache GroupCache, contextMapper kapi.RequestContextMapper) http.Handler { +func ImpersonationFilter(handler http.Handler, a kauthorizer.Authorizer, groupCache GroupCache, contextMapper apirequest.RequestContextMapper) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { requestedUser := req.Header.Get(authenticationapi.ImpersonateUserHeader) if len(requestedUser) == 0 { @@ -41,7 +42,7 @@ func ImpersonationFilter(handler http.Handler, a kauthorizer.Authorizer, groupCa Forbidden("context not found", nil, w, req) return } - oldUser, ok := kapi.UserFrom(ctx) + oldUser, ok := apirequest.UserFrom(ctx) if !ok { Forbidden("user not found", nil, w, req) return @@ -139,7 +140,7 @@ func ImpersonationFilter(handler http.Handler, a kauthorizer.Authorizer, groupCa Groups: groups, Extra: extra, } - contextMapper.Update(req, kapi.WithUser(ctx, newUser)) + contextMapper.Update(req, apirequest.WithUser(ctx, newUser)) httplog.LogOf(req, w).Addf("%v is acting as %v", oldUser, newUser) diff --git a/pkg/cmd/server/kubernetes/master.go b/pkg/cmd/server/kubernetes/master.go index 5cf0ccf77747..e97516348177 100644 --- a/pkg/cmd/server/kubernetes/master.go +++ b/pkg/cmd/server/kubernetes/master.go @@ -9,17 +9,25 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/client-go/discovery" + "k8s.io/client-go/dynamic" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + kclientv1 "k8s.io/client-go/pkg/api/v1" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/record" kctrlmgr "k8s.io/kubernetes/cmd/kube-controller-manager/app" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/componentconfig" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/typed/dynamic" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" + coreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions/core/v1" certcontroller "k8s.io/kubernetes/pkg/controller/certificates" "k8s.io/kubernetes/pkg/controller/cronjob" "k8s.io/kubernetes/pkg/controller/daemon" @@ -31,20 +39,17 @@ import ( jobcontroller "k8s.io/kubernetes/pkg/controller/job" namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace" nodecontroller "k8s.io/kubernetes/pkg/controller/node" - petsetcontroller "k8s.io/kubernetes/pkg/controller/petset" podautoscalercontroller "k8s.io/kubernetes/pkg/controller/podautoscaler" "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics" gccontroller "k8s.io/kubernetes/pkg/controller/podgc" replicasetcontroller "k8s.io/kubernetes/pkg/controller/replicaset" replicationcontroller "k8s.io/kubernetes/pkg/controller/replication" servicecontroller "k8s.io/kubernetes/pkg/controller/service" + statefulsetcontroller "k8s.io/kubernetes/pkg/controller/statefulset" attachdetachcontroller "k8s.io/kubernetes/pkg/controller/volume/attachdetach" persistentvolumecontroller "k8s.io/kubernetes/pkg/controller/volume/persistentvolume" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/master" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/storage" - utilwait "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/aws_ebs" "k8s.io/kubernetes/pkg/volume/azure_dd" @@ -79,14 +84,14 @@ func (c *MasterConfig) RunNamespaceController(kubeClient kclientset.Interface, c if err != nil { glog.Fatalf("Failed to get resources: %v", err) } - gvrFn := func() ([]unversioned.GroupVersionResource, error) { + gvrFn := func() ([]schema.GroupVersionResource, error) { return groupVersionResources, nil } namespaceController := namespacecontroller.NewNamespaceController(kubeClient, clientPool, gvrFn, c.ControllerManager.NamespaceSyncPeriod.Duration, kapi.FinalizerKubernetes) go namespaceController.Run(int(c.ControllerManager.ConcurrentNamespaceSyncs), utilwait.NeverStop) } -func (c *MasterConfig) RunPersistentVolumeController(client *kclientset.Clientset, namespace, recyclerImageName, recyclerServiceAccountName string) { +func (c *MasterConfig) RunPersistentVolumeController(client kclientset.Interface, namespace, recyclerImageName, recyclerServiceAccountName string) { s := c.ControllerManager alphaProvisioner, err := kctrlmgr.NewAlphaVolumeProvisioner(c.CloudProvider, s.VolumeConfiguration) @@ -107,7 +112,7 @@ func (c *MasterConfig) RunPersistentVolumeController(client *kclientset.Clientse volumeController.Run(utilwait.NeverStop) } -func (c *MasterConfig) RunPersistentVolumeAttachDetachController(client *kclientset.Clientset) { +func (c *MasterConfig) RunPersistentVolumeAttachDetachController(client kclientset.Interface) { s := c.ControllerManager eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartRecordingToSink((&kcoreclient.EventSinkImpl{Interface: c.KubeClient.Core().Events("")})) @@ -115,10 +120,10 @@ func (c *MasterConfig) RunPersistentVolumeAttachDetachController(client *kclient attachDetachController, err := attachdetachcontroller.NewAttachDetachController( client, - c.Informers.KubernetesInformers().Pods().Informer(), - c.Informers.KubernetesInformers().Nodes().Informer(), - c.Informers.KubernetesInformers().PersistentVolumeClaims().Informer(), - c.Informers.KubernetesInformers().PersistentVolumes().Informer(), + c.Informers.KubernetesInformers().Core().V1().Pods(), + c.Informers.KubernetesInformers().Core().V1().Nodes(), + c.Informers.KubernetesInformers().Core().V1().PersistentVolumeClaims(), + c.Informers.KubernetesInformers().Core().V1().PersistentVolumes(), c.CloudProvider, kctrlmgr.ProbeAttachableVolumePlugins(s.VolumeConfiguration), recorder, @@ -141,8 +146,8 @@ func probeRecyclableVolumePlugins(config componentconfig.VolumeConfiguration, na defaultScrubPod.Spec.Containers[0].Image = recyclerImageName defaultScrubPod.Spec.Containers[0].Command = []string{"/usr/bin/openshift-recycle"} defaultScrubPod.Spec.Containers[0].Args = []string{"/scrub"} - defaultScrubPod.Spec.Containers[0].SecurityContext = &kapi.SecurityContext{RunAsUser: &uid} - defaultScrubPod.Spec.Containers[0].ImagePullPolicy = kapi.PullIfNotPresent + defaultScrubPod.Spec.Containers[0].SecurityContext = &kapiv1.SecurityContext{RunAsUser: &uid} + defaultScrubPod.Spec.Containers[0].ImagePullPolicy = kapiv1.PullIfNotPresent allPlugins := []volume.VolumePlugin{} @@ -188,10 +193,10 @@ func probeRecyclableVolumePlugins(config componentconfig.VolumeConfiguration, na return allPlugins } -func (c *MasterConfig) RunReplicaSetController(client *kclientset.Clientset) { +func (c *MasterConfig) RunReplicaSetController(client kclientset.Interface) { controller := replicasetcontroller.NewReplicaSetController( - c.Informers.KubernetesInformers().ReplicaSets(), - c.Informers.KubernetesInformers().Pods(), + c.Informers.KubernetesInformers().Extensions().V1beta1().ReplicaSets(), + c.Informers.KubernetesInformers().Core().V1().Pods(), client, replicasetcontroller.BurstReplicas, int(c.ControllerManager.LookupCacheSizeForRC), @@ -201,9 +206,9 @@ func (c *MasterConfig) RunReplicaSetController(client *kclientset.Clientset) { } // RunReplicationController starts the Kubernetes replication controller sync loop -func (c *MasterConfig) RunReplicationController(client *kclientset.Clientset) { +func (c *MasterConfig) RunReplicationController(client kclientset.Interface) { controllerManager := replicationcontroller.NewReplicationManager( - c.Informers.KubernetesInformers().Pods().Informer(), + c.Informers.KubernetesInformers().Core().V1().Pods(), client, kctrlmgr.ResyncPeriod(c.ControllerManager), replicationcontroller.BurstReplicas, @@ -213,18 +218,18 @@ func (c *MasterConfig) RunReplicationController(client *kclientset.Clientset) { go controllerManager.Run(int(c.ControllerManager.ConcurrentRCSyncs), utilwait.NeverStop) } -func (c *MasterConfig) RunDeploymentController(client *kclientset.Clientset) { +func (c *MasterConfig) RunDeploymentController(client kclientset.Interface) { controller := deployment.NewDeploymentController( - c.Informers.KubernetesInformers().Deployments(), - c.Informers.KubernetesInformers().ReplicaSets(), - c.Informers.KubernetesInformers().Pods(), + c.Informers.KubernetesInformers().Extensions().V1beta1().Deployments(), + c.Informers.KubernetesInformers().Extensions().V1beta1().ReplicaSets(), + c.Informers.KubernetesInformers().Core().V1().Pods(), client, ) go controller.Run(int(c.ControllerManager.ConcurrentDeploymentSyncs), utilwait.NeverStop) } // RunJobController starts the Kubernetes job controller sync loop -func (c *MasterConfig) RunJobController(client *kclientset.Clientset) { +func (c *MasterConfig) RunJobController(client kclientset.Interface) { controller := jobcontroller.NewJobController(c.Informers.KubernetesInformers().Pods().Informer(), c.Informers.KubernetesInformers().Jobs(), client) go controller.Run(int(c.ControllerManager.ConcurrentJobSyncs), utilwait.NeverStop) } @@ -240,25 +245,25 @@ func (c *MasterConfig) RunDisruptionBudgetController(client kclientset.Interface } // RunHPAController starts the Kubernetes hpa controller sync loop -func (c *MasterConfig) RunHPAController(oc *osclient.Client, kc *kclientset.Clientset, heapsterNamespace string) { - delegatingScaleNamespacer := osclient.NewDelegatingScaleNamespacer(oc, kc) +func (c *MasterConfig) RunHPAController(oc *osclient.Client, kc kclientset.Interface, heapsterNamespace string) { + delegatingScaleNamespacer := osclient.NewDelegatingScaleNamespacer(oc, kc.ExtensionsV1beta1()) metricsClient := metrics.NewHeapsterMetricsClient(kc, heapsterNamespace, "https", "heapster", "") replicaCalc := podautoscalercontroller.NewReplicaCalculator(metricsClient, kc.Core()) podautoscaler := podautoscalercontroller.NewHorizontalController( - kc, + kv1core.New(kc.Core().RESTClient()), delegatingScaleNamespacer, - kc, + kc.AutoscalingV1(), replicaCalc, c.ControllerManager.HorizontalPodAutoscalerSyncPeriod.Duration, ) go podautoscaler.Run(utilwait.NeverStop) } -func (c *MasterConfig) RunDaemonSetsController(client *kclientset.Clientset) { +func (c *MasterConfig) RunDaemonSetsController(client kclientset.Interface) { controller := daemon.NewDaemonSetsController( - c.Informers.KubernetesInformers().DaemonSets(), - c.Informers.KubernetesInformers().Pods(), - c.Informers.KubernetesInformers().Nodes(), + c.Informers.KubernetesInformers().Extensions().V1beta1().DaemonSets(), + c.Informers.KubernetesInformers().Core().V1().Pods(), + c.Informers.KubernetesInformers().Core().V1().Nodes(), client, int(c.ControllerManager.LookupCacheSizeForDaemonSet), ) @@ -266,10 +271,9 @@ func (c *MasterConfig) RunDaemonSetsController(client *kclientset.Clientset) { } // RunEndpointController starts the Kubernetes replication controller sync loop -func (c *MasterConfig) RunEndpointController(client *kclientset.Clientset) { +func (c *MasterConfig) RunEndpointController(client kclientset.Interface) { endpoints := endpointcontroller.NewEndpointController(c.Informers.KubernetesInformers().Pods().Informer(), client) go endpoints.Run(int(c.ControllerManager.ConcurrentEndpointSyncs), utilwait.NeverStop) - } // RunScheduler starts the Kubernetes scheduler @@ -287,7 +291,7 @@ func (c *MasterConfig) RunScheduler() { } // RunGCController handles deletion of terminated pods. -func (c *MasterConfig) RunGCController(client *kclientset.Clientset) { +func (c *MasterConfig) RunGCController(client kclientset.Interface) { if c.ControllerManager.TerminatedPodGCThreshold > 0 { gcController := gccontroller.NewPodGC(client, c.Informers.KubernetesInformers().Pods().Informer(), int(c.ControllerManager.TerminatedPodGCThreshold)) go gcController.Run(utilwait.NeverStop) @@ -308,7 +312,7 @@ func (c *MasterConfig) RunGarbageCollectorController(client *osclient.Client, co config = restclient.AddUserAgent(config, "generic-garbage-collector") config.ContentConfig.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: metaonly.NewMetadataCodecFactory()} // TODO: should use a dynamic RESTMapper built from the discovery results. - restMapper := registered.RESTMapper() + restMapper := kapi.Registry.RESTMapper() // TODO: needs to take GVR metaOnlyClientPool := dynamic.NewClientPool(config, restMapper, dynamic.LegacyAPIPathResolverFunc) config.ContentConfig.NegotiatedSerializer = nil @@ -333,9 +337,9 @@ func (c *MasterConfig) RunNodeController() { _, serviceCIDR, _ := net.ParseCIDR(s.ServiceCIDR) controller, err := nodecontroller.NewNodeController( - c.Informers.KubernetesInformers().Pods(), - c.Informers.KubernetesInformers().Nodes(), - c.Informers.KubernetesInformers().DaemonSets(), + c.Informers.KubernetesInformers().Core().V1().Pods(), + c.Informers.KubernetesInformers().Core().V1().Nodes(), + c.Informers.KubernetesInformers().Extensions().V1beta1().DaemonSets(), c.CloudProvider, c.KubeClient, s.PodEvictionTimeout.Duration, @@ -363,7 +367,7 @@ func (c *MasterConfig) RunNodeController() { } // RunServiceLoadBalancerController starts the service loadbalancer controller if the cloud provider is configured. -func (c *MasterConfig) RunServiceLoadBalancerController(client *kclientset.Clientset) { +func (c *MasterConfig) RunServiceLoadBalancerController(client kclientset.Interface) { if c.CloudProvider == nil { glog.V(2).Infof("Service controller will not start - no cloud provider configured") return @@ -411,7 +415,7 @@ func (noAutoApproval) AutoApprove(csr *certificates.CertificateSigningRequest) ( return csr, nil } -func (c *MasterConfig) RunCertificateSigningController(clientset *kclientset.Clientset) { +func (c *MasterConfig) RunCertificateSigningController(clientset kclientset.Interface) { if len(c.ControllerManager.ClusterSigningCertFile) == 0 || len(c.ControllerManager.ClusterSigningKeyFile) == 0 { glog.V(2).Infof("Certificate signer controller will not start - no signing key or cert set") return diff --git a/pkg/cmd/server/kubernetes/master_config.go b/pkg/cmd/server/kubernetes/master_config.go index c39b28083deb..79fedb3c50d3 100644 --- a/pkg/cmd/server/kubernetes/master_config.go +++ b/pkg/cmd/server/kubernetes/master_config.go @@ -18,33 +18,40 @@ import ( "github.com/go-openapi/spec" "github.com/golang/glog" - apiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + openapicommon "k8s.io/apimachinery/pkg/openapi" + "k8s.io/apimachinery/pkg/runtime/schema" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/intstr" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authorization/authorizer" + apiserverendpointsopenapi "k8s.io/apiserver/pkg/endpoints/openapi" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic" + apiserver "k8s.io/apiserver/pkg/server" + kgenericfilters "k8s.io/apiserver/pkg/server/filters" + apiserverstorage "k8s.io/apiserver/pkg/server/storage" + storagefactory "k8s.io/apiserver/pkg/storage/storagebackend/factory" + utilflag "k8s.io/apiserver/pkg/util/flag" + kapiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" + "k8s.io/kubernetes/cmd/kube-apiserver/app/preflight" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" - "k8s.io/kubernetes/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" - apiserveropenapi "k8s.io/kubernetes/pkg/apiserver/openapi" - "k8s.io/kubernetes/pkg/auth/authenticator" - "k8s.io/kubernetes/pkg/auth/authorizer" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" + kinternalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/cloudprovider" - "k8s.io/kubernetes/pkg/genericapiserver" - kgenericfilters "k8s.io/kubernetes/pkg/genericapiserver/filters" - openapicommon "k8s.io/kubernetes/pkg/genericapiserver/openapi/common" + "k8s.io/kubernetes/pkg/kubeapiserver" "k8s.io/kubernetes/pkg/master" "k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/core/endpoint" - endpointsetcd "k8s.io/kubernetes/pkg/registry/core/endpoint/etcd" - "k8s.io/kubernetes/pkg/registry/generic" - storagefactory "k8s.io/kubernetes/pkg/storage/storagebackend/factory" - "k8s.io/kubernetes/pkg/util/config" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/intstr" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/sets" + endpointsstorage "k8s.io/kubernetes/pkg/registry/core/endpoint/storage" kversion "k8s.io/kubernetes/pkg/version" scheduleroptions "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" @@ -63,7 +70,7 @@ import ( // and not subjected to the default server timeout. const originLongRunningEndpointsRE = "(/|^)(buildconfigs/.*/instantiatebinary|imagestreamimports)$" -var LegacyAPIGroupPrefixes = sets.NewString(genericapiserver.DefaultLegacyAPIPrefix, api.Prefix, api.LegacyPrefix) +var LegacyAPIGroupPrefixes = sets.NewString(apiserver.DefaultLegacyAPIPrefix, api.Prefix, api.LegacyPrefix) // MasterConfig defines the required values to start a Kubernetes master type MasterConfig struct { @@ -136,25 +143,25 @@ func BuildDefaultAPIServer(options configapi.MasterConfig) (*apiserveroptions.Se resourceEncodingConfig := genericapiserver.NewDefaultResourceEncodingConfig() resourceEncodingConfig.SetVersionEncoding( kapi.GroupName, - unversioned.GroupVersion{Group: kapi.GroupName, Version: options.EtcdStorageConfig.KubernetesStorageVersion}, + schema.GroupVersion{Group: kapi.GroupName, Version: options.EtcdStorageConfig.KubernetesStorageVersion}, kapi.SchemeGroupVersion, ) resourceEncodingConfig.SetVersionEncoding( extensions.GroupName, - unversioned.GroupVersion{Group: extensions.GroupName, Version: "v1beta1"}, + schema.GroupVersion{Group: extensions.GroupName, Version: "v1beta1"}, extensions.SchemeGroupVersion, ) resourceEncodingConfig.SetVersionEncoding( batch.GroupName, - unversioned.GroupVersion{Group: batch.GroupName, Version: "v1"}, + schema.GroupVersion{Group: batch.GroupName, Version: "v1"}, batch.SchemeGroupVersion, ) resourceEncodingConfig.SetVersionEncoding( autoscaling.GroupName, - unversioned.GroupVersion{Group: autoscaling.GroupName, Version: "v1"}, + schema.GroupVersion{Group: autoscaling.GroupName, Version: "v1"}, autoscaling.SchemeGroupVersion, ) @@ -178,7 +185,7 @@ func BuildDefaultAPIServer(options configapi.MasterConfig) (*apiserveroptions.Se genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, // FIXME: this GroupVersionResource override should be configurable - []unversioned.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, + []schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, master.DefaultAPIResourceConfigSource(), server.GenericServerRunOptions.RuntimeConfig, ) if err != nil { @@ -202,7 +209,7 @@ func BuildDefaultAPIServer(options configapi.MasterConfig) (*apiserveroptions.Se // TODO this function's parameters need to be refactored func BuildKubernetesMasterConfig( options configapi.MasterConfig, - requestContextMapper kapi.RequestContextMapper, + requestContextMapper apirequest.RequestContextMapper, kubeClient kclientset.Interface, informers shared.InformerFactory, admissionControl admission.Interface, @@ -229,7 +236,7 @@ func BuildKubernetesMasterConfig( cmserver.Address = "" // no healthz endpoint cmserver.Port = 0 // no healthz endpoint cmserver.EnableGarbageCollector = false // disabled until we add the controller - cmserver.PodEvictionTimeout = unversioned.Duration{Duration: podEvictionTimeout} + cmserver.PodEvictionTimeout = metav1.Duration{Duration: podEvictionTimeout} cmserver.VolumeConfiguration.EnableDynamicProvisioning = options.VolumeConfig.DynamicProvisioningEnabled // resolve extended arguments @@ -448,7 +455,7 @@ func BuildKubernetesMasterConfig( func DefaultOpenAPIConfig() *openapicommon.Config { return &openapicommon.Config{ - Definitions: openapigenerated.OpenAPIDefinitions, + GetDefinitions: openapigenerated.GetOpenAPIDefinitions, IgnorePrefixes: []string{"/swaggerapi", "/healthz", "/controllers", "/metrics", "/version/openshift", "/brokers"}, GetOperationIDAndTags: func(servePath string, r *restful.Route) (string, []string, error) { op := r.Operation @@ -468,7 +475,7 @@ func DefaultOpenAPIConfig() *openapicommon.Config { if op != r.Operation { return op, []string{}, nil } - return apiserveropenapi.GetOperationIDAndTags(servePath, r) + return apiserverendpointsopenapi.GetOperationIDAndTags(servePath, r) }, Info: &spec.Info{ InfoProps: spec.InfoProps{ @@ -526,7 +533,7 @@ func DefaultOpenAPIConfig() *openapicommon.Config { no backwards incompatible changes are allowed without incrementing the apiVersion. The server will return and accept a number of standard responses that share a common schema - for instance, the common - error type is 'unversioned.Status' (described below) and will be returned + error type is 'metav1.Status' (described below) and will be returned on any error from the API server. The API is available in multiple serialization formats - the default is @@ -552,19 +559,19 @@ func DefaultOpenAPIConfig() *openapicommon.Config { } // getAPIResourceConfig builds the config for enabling resources -func getAPIResourceConfig(options configapi.MasterConfig) genericapiserver.APIResourceConfigSource { - resourceConfig := genericapiserver.NewResourceConfig() +func getAPIResourceConfig(options configapi.MasterConfig) apiserverstorage.APIResourceConfigSource { + resourceConfig := apiserverstorage.NewResourceConfig() for group := range configapi.KnownKubeAPIGroups { for _, version := range configapi.GetEnabledAPIVersionsForGroup(*options.KubernetesMasterConfig, group) { - gv := unversioned.GroupVersion{Group: group, Version: version} + gv := schema.GroupVersion{Group: group, Version: version} resourceConfig.EnableVersions(gv) } } for group := range options.KubernetesMasterConfig.DisabledAPIGroupVersions { for _, version := range configapi.GetDisabledAPIVersionsForGroup(*options.KubernetesMasterConfig, group) { - gv := unversioned.GroupVersion{Group: group, Version: version} + gv := schema.GroupVersion{Group: group, Version: version} resourceConfig.DisableVersions(gv) } } diff --git a/pkg/cmd/server/kubernetes/master_config_test.go b/pkg/cmd/server/kubernetes/master_config_test.go index 6348892f8b59..0fbb25b482a9 100644 --- a/pkg/cmd/server/kubernetes/master_config_test.go +++ b/pkg/cmd/server/kubernetes/master_config_test.go @@ -6,25 +6,27 @@ import ( "testing" "time" - apiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + apiserveroptions "k8s.io/apiserver/pkg/server/options" + "k8s.io/apiserver/pkg/storage/storagebackend" + utilconfig "k8s.io/apiserver/pkg/util/flag" + kubeapiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" - "k8s.io/kubernetes/pkg/api/unversioned" + kapi "k8s.io/kubernetes/pkg/api" apiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apis/componentconfig" extensionsapiv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - genericapiserveroptions "k8s.io/kubernetes/pkg/genericapiserver/options" + kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - "k8s.io/kubernetes/pkg/storage/storagebackend" - utilconfig "k8s.io/kubernetes/pkg/util/config" - "k8s.io/kubernetes/pkg/util/diff" scheduleroptions "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" configapi "github.com/openshift/origin/pkg/cmd/server/api" ) func TestAPIServerDefaults(t *testing.T) { - defaults := apiserveroptions.NewServerRunOptions() + defaults := kubeapiserveroptions.NewServerRunOptions() // This is a snapshot of the default config // If the default changes (new fields are added, or default values change), we want to know @@ -45,9 +47,9 @@ func TestAPIServerDefaults(t *testing.T) { MinRequestTimeout: 1800, ServiceNodePortRange: genericapiserveroptions.DefaultServiceNodePortRange, RuntimeConfig: utilconfig.ConfigurationMap{}, - StorageVersions: registered.AllPreferredGroupVersions(), + StorageVersions: kapi.Registry.AllPreferredGroupVersions(), MasterCount: 1, - DefaultStorageVersions: registered.AllPreferredGroupVersions(), + DefaultStorageVersions: kapi.Registry.AllPreferredGroupVersions(), StorageConfig: storagebackend.Config{ ServerList: nil, Prefix: "/registry", @@ -108,19 +110,19 @@ func TestCMServerDefaults(t *testing.T) { LookupCacheSizeForDaemonSet: 1024, ConfigureCloudRoutes: true, NodeCIDRMaskSize: 24, - ServiceSyncPeriod: unversioned.Duration{Duration: 5 * time.Minute}, - ResourceQuotaSyncPeriod: unversioned.Duration{Duration: 5 * time.Minute}, - NamespaceSyncPeriod: unversioned.Duration{Duration: 5 * time.Minute}, - PVClaimBinderSyncPeriod: unversioned.Duration{Duration: 15 * time.Second}, - HorizontalPodAutoscalerSyncPeriod: unversioned.Duration{Duration: 30 * time.Second}, - DeploymentControllerSyncPeriod: unversioned.Duration{Duration: 30 * time.Second}, - MinResyncPeriod: unversioned.Duration{Duration: 12 * time.Hour}, + ServiceSyncPeriod: metav1.Duration{Duration: 5 * time.Minute}, + ResourceQuotaSyncPeriod: metav1.Duration{Duration: 5 * time.Minute}, + NamespaceSyncPeriod: metav1.Duration{Duration: 5 * time.Minute}, + PVClaimBinderSyncPeriod: metav1.Duration{Duration: 15 * time.Second}, + HorizontalPodAutoscalerSyncPeriod: metav1.Duration{Duration: 30 * time.Second}, + DeploymentControllerSyncPeriod: metav1.Duration{Duration: 30 * time.Second}, + MinResyncPeriod: metav1.Duration{Duration: 12 * time.Hour}, RegisterRetryCount: 10, - RouteReconciliationPeriod: unversioned.Duration{Duration: 10 * time.Second}, - PodEvictionTimeout: unversioned.Duration{Duration: 5 * time.Minute}, - NodeMonitorGracePeriod: unversioned.Duration{Duration: 40 * time.Second}, - NodeStartupGracePeriod: unversioned.Duration{Duration: 60 * time.Second}, - NodeMonitorPeriod: unversioned.Duration{Duration: 5 * time.Second}, + RouteReconciliationPeriod: metav1.Duration{Duration: 10 * time.Second}, + PodEvictionTimeout: metav1.Duration{Duration: 5 * time.Minute}, + NodeMonitorGracePeriod: metav1.Duration{Duration: 40 * time.Second}, + NodeStartupGracePeriod: metav1.Duration{Duration: 60 * time.Second}, + NodeMonitorPeriod: metav1.Duration{Duration: 5 * time.Second}, ClusterName: "kubernetes", TerminatedPodGCThreshold: 12500, VolumeConfiguration: componentconfig.VolumeConfiguration{ @@ -140,15 +142,15 @@ func TestCMServerDefaults(t *testing.T) { KubeAPIBurst: 30, LeaderElection: componentconfig.LeaderElectionConfiguration{ LeaderElect: true, - LeaseDuration: unversioned.Duration{Duration: 15 * time.Second}, - RenewDeadline: unversioned.Duration{Duration: 10 * time.Second}, - RetryPeriod: unversioned.Duration{Duration: 2 * time.Second}, + LeaseDuration: metav1.Duration{Duration: 15 * time.Second}, + RenewDeadline: metav1.Duration{Duration: 10 * time.Second}, + RetryPeriod: metav1.Duration{Duration: 2 * time.Second}, }, ClusterSigningCertFile: "/etc/kubernetes/ca/ca.pem", ClusterSigningKeyFile: "/etc/kubernetes/ca/ca.key", EnableGarbageCollector: true, DisableAttachDetachReconcilerSync: false, - ReconcilerSyncLoopPeriod: unversioned.Duration{Duration: 5 * time.Second}, + ReconcilerSyncLoopPeriod: metav1.Duration{Duration: 5 * time.Second}, }, } @@ -177,13 +179,13 @@ func TestSchedulerServerDefaults(t *testing.T) { FailureDomains: "kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region", LeaderElection: componentconfig.LeaderElectionConfiguration{ LeaderElect: true, - LeaseDuration: unversioned.Duration{ + LeaseDuration: metav1.Duration{ Duration: 15 * time.Second, }, - RenewDeadline: unversioned.Duration{ + RenewDeadline: metav1.Duration{ Duration: 10 * time.Second, }, - RetryPeriod: unversioned.Duration{ + RetryPeriod: metav1.Duration{ Duration: 2 * time.Second, }, }, @@ -199,33 +201,33 @@ func TestSchedulerServerDefaults(t *testing.T) { func TestGetAPIGroupVersionOverrides(t *testing.T) { testcases := map[string]struct { DisabledVersions map[string][]string - ExpectedDisabledVersions []unversioned.GroupVersion - ExpectedEnabledVersions []unversioned.GroupVersion + ExpectedDisabledVersions []schema.GroupVersion + ExpectedEnabledVersions []schema.GroupVersion }{ "empty": { DisabledVersions: nil, - ExpectedDisabledVersions: []unversioned.GroupVersion{}, - ExpectedEnabledVersions: []unversioned.GroupVersion{apiv1.SchemeGroupVersion, extensionsapiv1beta1.SchemeGroupVersion}, + ExpectedDisabledVersions: []schema.GroupVersion{}, + ExpectedEnabledVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion, extensionsapiv1beta1.SchemeGroupVersion}, }, "* -> v1": { DisabledVersions: map[string][]string{"": {"*"}}, - ExpectedDisabledVersions: []unversioned.GroupVersion{apiv1.SchemeGroupVersion}, - ExpectedEnabledVersions: []unversioned.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, + ExpectedDisabledVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion}, + ExpectedEnabledVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, }, "v1": { DisabledVersions: map[string][]string{"": {"v1"}}, - ExpectedDisabledVersions: []unversioned.GroupVersion{apiv1.SchemeGroupVersion}, - ExpectedEnabledVersions: []unversioned.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, + ExpectedDisabledVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion}, + ExpectedEnabledVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, }, "* -> v1beta1": { DisabledVersions: map[string][]string{"extensions": {"*"}}, - ExpectedDisabledVersions: []unversioned.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, - ExpectedEnabledVersions: []unversioned.GroupVersion{apiv1.SchemeGroupVersion}, + ExpectedDisabledVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, + ExpectedEnabledVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion}, }, "extensions/v1beta1": { DisabledVersions: map[string][]string{"extensions": {"v1beta1"}}, - ExpectedDisabledVersions: []unversioned.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, - ExpectedEnabledVersions: []unversioned.GroupVersion{apiv1.SchemeGroupVersion}, + ExpectedDisabledVersions: []schema.GroupVersion{extensionsapiv1beta1.SchemeGroupVersion}, + ExpectedEnabledVersions: []schema.GroupVersion{apiv1.SchemeGroupVersion}, }, } diff --git a/pkg/cmd/server/kubernetes/master_test.go b/pkg/cmd/server/kubernetes/master_test.go index a47d724ca381..b3dcd6433a62 100644 --- a/pkg/cmd/server/kubernetes/master_test.go +++ b/pkg/cmd/server/kubernetes/master_test.go @@ -6,11 +6,11 @@ import ( "github.com/coreos/etcd/client" "golang.org/x/net/context" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/storage/etcd/etcdtest" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" + "k8s.io/apiserver/pkg/storage/storagebackend" "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/registry/generic" - "k8s.io/kubernetes/pkg/storage/etcd/etcdtest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/storage/storagebackend" ) func TestNewMasterLeasesHasCorrectTTL(t *testing.T) { diff --git a/pkg/cmd/server/kubernetes/node.go b/pkg/cmd/server/kubernetes/node.go index 720aaa5d1184..aa3face6a035 100644 --- a/pkg/cmd/server/kubernetes/node.go +++ b/pkg/cmd/server/kubernetes/node.go @@ -17,12 +17,15 @@ import ( "github.com/openshift/origin/pkg/proxy/hybrid" "github.com/openshift/origin/pkg/proxy/unidler" ouserspace "github.com/openshift/origin/pkg/proxy/userspace" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilnet "k8s.io/apimachinery/pkg/util/net" + utilwait "k8s.io/apimachinery/pkg/util/wait" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/client-go/tools/record" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/componentconfig" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/kubelet/cadvisor" cadvisortesting "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing" "k8s.io/kubernetes/pkg/kubelet/cm" @@ -34,18 +37,16 @@ import ( utildbus "k8s.io/kubernetes/pkg/util/dbus" kexec "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" - utilnet "k8s.io/kubernetes/pkg/util/net" utilnode "k8s.io/kubernetes/pkg/util/node" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" - utilwait "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/pkg/volume" configapi "github.com/openshift/origin/pkg/cmd/server/api" cmdutil "github.com/openshift/origin/pkg/cmd/util" dockerutil "github.com/openshift/origin/pkg/cmd/util/docker" "github.com/openshift/origin/pkg/volume/emptydir" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/fields" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/client-go/tools/cache" ) type commandExecutor interface { @@ -263,12 +264,12 @@ func (c *NodeConfig) RunServiceStores(enableProxy, enableDNS bool) { return } - serviceList := cache.NewListWatchFromClient(c.Client.CoreClient.RESTClient(), "services", kapi.NamespaceAll, fields.Everything()) + serviceList := cache.NewListWatchFromClient(c.Client.CoreClient.RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) serviceReflector := cache.NewReflector(serviceList, &kapi.Service{}, c.ServiceStore, c.ProxyConfig.ConfigSyncPeriod) serviceReflector.Run() if enableProxy { - endpointList := cache.NewListWatchFromClient(c.Client.CoreClient.RESTClient(), "endpoints", kapi.NamespaceAll, fields.Everything()) + endpointList := cache.NewListWatchFromClient(c.Client.CoreClient.RESTClient(), "endpoints", metav1.NamespaceAll, fields.Everything()) endpointReflector := cache.NewReflector(endpointList, &kapi.Endpoints{}, c.EndpointsStore, c.ProxyConfig.ConfigSyncPeriod) endpointReflector.Run() @@ -286,7 +287,7 @@ func (c *NodeConfig) RunServiceStores(enableProxy, enableDNS bool) { func (c *NodeConfig) RunKubelet() { var clusterDNS net.IP if c.KubeletServer.ClusterDNS == "" { - if service, err := c.Client.Core().Services(kapi.NamespaceDefault).Get("kubernetes"); err == nil { + if service, err := c.Client.Core().Services(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}); err == nil { if includesServicePort(service.Spec.Ports, 53, "dns") { // Use master service if service includes "dns" port 53. clusterDNS = net.ParseIP(service.Spec.ClusterIP) @@ -294,7 +295,7 @@ func (c *NodeConfig) RunKubelet() { } } if clusterDNS == nil { - if endpoint, err := c.Client.Core().Endpoints(kapi.NamespaceDefault).Get("kubernetes"); err == nil { + if endpoint, err := c.Client.Core().Endpoints(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}); err == nil { if endpointIP, ok := firstEndpointIPWithNamedPort(endpoint, 53, "dns"); ok { // Use first endpoint if endpoint includes "dns" port 53. clusterDNS = net.ParseIP(endpointIP) @@ -502,9 +503,9 @@ func (c *NodeConfig) RunProxy() { } // getNodeIP is copied from the upstream proxy config to retrieve the IP of a node. -func getNodeIP(client *kclientset.Clientset, hostname string) net.IP { +func getNodeIP(client kclientset.Interface, hostname string) net.IP { var nodeIP net.IP - node, err := client.Core().Nodes().Get(hostname) + node, err := client.Core().Nodes().Get(hostname, metav1.GetOptions{}) if err != nil { glog.Warningf("Failed to retrieve node info: %v", err) return nil diff --git a/pkg/cmd/server/kubernetes/node_auth.go b/pkg/cmd/server/kubernetes/node_auth.go index e3fb145a9266..778c15f165f8 100644 --- a/pkg/cmd/server/kubernetes/node_auth.go +++ b/pkg/cmd/server/kubernetes/node_auth.go @@ -7,8 +7,8 @@ import ( "github.com/golang/glog" - authorizer "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" authzcache "github.com/openshift/origin/pkg/authorization/authorizer/cache" diff --git a/pkg/cmd/server/kubernetes/node_config.go b/pkg/cmd/server/kubernetes/node_config.go index b2ebcfa31f9d..331e91a4b6e6 100644 --- a/pkg/cmd/server/kubernetes/node_config.go +++ b/pkg/cmd/server/kubernetes/node_config.go @@ -10,15 +10,17 @@ import ( "github.com/golang/glog" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + kclientgoclientset "k8s.io/client-go/kubernetes" + kclientv1 "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/util/cert" proxyoptions "k8s.io/kubernetes/cmd/kube-proxy/app/options" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" kubeletoptions "k8s.io/kubernetes/cmd/kubelet/app/options" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/kubelet" @@ -27,8 +29,6 @@ import ( kubeletcni "k8s.io/kubernetes/pkg/kubelet/network/cni" kubeletserver "k8s.io/kubernetes/pkg/kubelet/server" kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" - "k8s.io/kubernetes/pkg/util/cert" - kerrors "k8s.io/kubernetes/pkg/util/errors" osclient "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -155,8 +155,8 @@ func BuildKubernetesNodeConfig(options configapi.NodeConfig, enableProxy, enable server.HostNetworkSources = []string{kubelettypes.ApiserverSource, kubelettypes.FileSource} server.HostPIDSources = []string{kubelettypes.ApiserverSource, kubelettypes.FileSource} server.HostIPCSources = []string{kubelettypes.ApiserverSource, kubelettypes.FileSource} - server.HTTPCheckFrequency = unversioned.Duration{Duration: time.Duration(0)} // no remote HTTP pod creation access - server.FileCheckFrequency = unversioned.Duration{Duration: time.Duration(fileCheckInterval) * time.Second} + server.HTTPCheckFrequency = metav1.Duration{Duration: time.Duration(0)} // no remote HTTP pod creation access + server.FileCheckFrequency = metav1.Duration{Duration: time.Duration(fileCheckInterval) * time.Second} server.PodInfraContainerImage = imageTemplate.ExpandOrDie("pod") server.CPUCFSQuota = true // enable cpu cfs quota enforcement by default server.MaxPods = 250 @@ -387,14 +387,14 @@ func buildKubeProxyConfig(options configapi.NodeConfig) (*proxyoptions.ProxyServ if err != nil { return nil, fmt.Errorf("Cannot parse the provided ip-tables sync period (%s) : %v", options.IPTablesSyncPeriod, err) } - proxyconfig.IPTablesSyncPeriod = unversioned.Duration{ + proxyconfig.IPTablesSyncPeriod = metav1.Duration{ Duration: syncPeriod, } // ConfigSyncPeriod, use default // NodeRef, build from config - proxyconfig.NodeRef = &kapi.ObjectReference{ + proxyconfig.NodeRef = &kclientv1.ObjectReference{ Kind: "Node", Name: options.NodeName, } @@ -419,7 +419,7 @@ func buildKubeProxyConfig(options configapi.NodeConfig) (*proxyoptions.ProxyServ func validateNetworkPluginName(originClient *osclient.Client, pluginName string) error { if sdnapi.IsOpenShiftNetworkPlugin(pluginName) { // Detect any plugin mismatches between node and master - clusterNetwork, err := originClient.ClusterNetwork().Get(sdnapi.ClusterNetworkDefault) + clusterNetwork, err := originClient.ClusterNetwork().Get(sdnapi.ClusterNetworkDefault, metav1.GetOptions{}) if kerrs.IsNotFound(err) { return fmt.Errorf("master has not created a default cluster network, network plugin %q can not start", pluginName) } else if err != nil { diff --git a/pkg/cmd/server/kubernetes/node_config_test.go b/pkg/cmd/server/kubernetes/node_config_test.go index f69836c4a78f..4abe9b930526 100644 --- a/pkg/cmd/server/kubernetes/node_config_test.go +++ b/pkg/cmd/server/kubernetes/node_config_test.go @@ -6,17 +6,17 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apiserver/pkg/util/flag" proxyoptions "k8s.io/kubernetes/cmd/kube-proxy/app/options" kubeletoptions "k8s.io/kubernetes/cmd/kubelet/app/options" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/fake" "k8s.io/kubernetes/pkg/kubelet/rkt" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" utilconfig "k8s.io/kubernetes/pkg/util/config" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/flag" ) func TestKubeletDefaults(t *testing.T) { @@ -34,7 +34,7 @@ func TestKubeletDefaults(t *testing.T) { AllowPrivileged: false, // overridden Authentication: componentconfig.KubeletAuthentication{ Webhook: componentconfig.KubeletWebhookAuthentication{ - CacheTTL: unversioned.Duration{Duration: 2 * time.Minute}, + CacheTTL: metav1.Duration{Duration: 2 * time.Minute}, }, Anonymous: componentconfig.KubeletAnonymousAuthentication{ Enabled: true, @@ -43,12 +43,12 @@ func TestKubeletDefaults(t *testing.T) { Authorization: componentconfig.KubeletAuthorization{ Mode: componentconfig.KubeletAuthorizationModeAlwaysAllow, Webhook: componentconfig.KubeletWebhookAuthorization{ - CacheAuthorizedTTL: unversioned.Duration{Duration: 5 * time.Minute}, - CacheUnauthorizedTTL: unversioned.Duration{Duration: 30 * time.Second}, + CacheAuthorizedTTL: metav1.Duration{Duration: 5 * time.Minute}, + CacheUnauthorizedTTL: metav1.Duration{Duration: 30 * time.Second}, }, }, CAdvisorPort: 4194, // disabled - VolumeStatsAggPeriod: unversioned.Duration{Duration: time.Minute}, + VolumeStatsAggPeriod: metav1.Duration{Duration: time.Minute}, CertDirectory: "/var/run/kubernetes", CgroupRoot: "", CgroupDriver: "cgroupfs", @@ -65,14 +65,14 @@ func TestKubeletDefaults(t *testing.T) { EnableDebuggingHandlers: true, EnableServer: true, EvictionHard: "memory.available<100Mi", - FileCheckFrequency: unversioned.Duration{Duration: 20 * time.Second}, // overridden - HealthzBindAddress: "127.0.0.1", // disabled - HealthzPort: 10248, // disabled - HostNetworkSources: []string{"*"}, // overridden - HostPIDSources: []string{"*"}, // overridden - HostIPCSources: []string{"*"}, // overridden - HTTPCheckFrequency: unversioned.Duration{Duration: 20 * time.Second}, // disabled - ImageMinimumGCAge: unversioned.Duration{Duration: 120 * time.Second}, + FileCheckFrequency: metav1.Duration{Duration: 20 * time.Second}, // overridden + HealthzBindAddress: "127.0.0.1", // disabled + HealthzPort: 10248, // disabled + HostNetworkSources: []string{"*"}, // overridden + HostPIDSources: []string{"*"}, // overridden + HostIPCSources: []string{"*"}, // overridden + HTTPCheckFrequency: metav1.Duration{Duration: 20 * time.Second}, // disabled + ImageMinimumGCAge: metav1.Duration{Duration: 120 * time.Second}, ImageGCHighThresholdPercent: 85, ImageGCLowThresholdPercent: 80, IPTablesMasqueradeBit: 14, @@ -84,12 +84,12 @@ func TestKubeletDefaults(t *testing.T) { MaxPerPodContainerCount: 1, MaxOpenFiles: 1000000, MaxPods: 110, // overridden - MinimumGCAge: unversioned.Duration{}, + MinimumGCAge: metav1.Duration{}, NetworkPluginDir: "", NetworkPluginName: "", // overridden NonMasqueradeCIDR: "10.0.0.0/8", VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", - NodeStatusUpdateFrequency: unversioned.Duration{Duration: 10 * time.Second}, + NodeStatusUpdateFrequency: metav1.Duration{Duration: 10 * time.Second}, NodeLabels: nil, OOMScoreAdj: -999, LockFilePath: "", @@ -108,24 +108,24 @@ func TestKubeletDefaults(t *testing.T) { RootDirectory: "/var/lib/kubelet", // overridden RuntimeCgroups: "", SerializeImagePulls: true, - StreamingConnectionIdleTimeout: unversioned.Duration{Duration: 4 * time.Hour}, - SyncFrequency: unversioned.Duration{Duration: 1 * time.Minute}, + StreamingConnectionIdleTimeout: metav1.Duration{Duration: 4 * time.Hour}, + SyncFrequency: metav1.Duration{Duration: 1 * time.Minute}, SystemCgroups: "", TLSCertFile: "", // overridden to prevent cert generation TLSPrivateKeyFile: "", // overridden to prevent cert generation ReconcileCIDR: true, KubeAPIQPS: 5.0, KubeAPIBurst: 10, - OutOfDiskTransitionFrequency: unversioned.Duration{Duration: 5 * time.Minute}, + OutOfDiskTransitionFrequency: metav1.Duration{Duration: 5 * time.Minute}, HairpinMode: "promiscuous-bridge", BabysitDaemons: false, SeccompProfileRoot: "/var/lib/kubelet/seccomp", CloudProvider: "auto-detect", - RuntimeRequestTimeout: unversioned.Duration{Duration: 2 * time.Minute}, + RuntimeRequestTimeout: metav1.Duration{Duration: 2 * time.Minute}, ContentType: "application/vnd.kubernetes.protobuf", EnableControllerAttachDetach: true, - EvictionPressureTransitionPeriod: unversioned.Duration{Duration: 5 * time.Minute}, + EvictionPressureTransitionPeriod: metav1.Duration{Duration: 5 * time.Minute}, ExperimentalKernelMemcgNotification: false, SystemReserved: utilconfig.ConfigurationMap{}, @@ -150,18 +150,18 @@ func TestProxyConfig(t *testing.T) { BindAddress: "0.0.0.0", ClusterCIDR: "", ConntrackMin: 128 * 1024, - ConntrackTCPCloseWaitTimeout: unversioned.Duration{Duration: 1 * time.Hour}, + ConntrackTCPCloseWaitTimeout: metav1.Duration{Duration: 1 * time.Hour}, HealthzPort: 10249, // disabled HealthzBindAddress: "127.0.0.1", // disabled OOMScoreAdj: &oomScoreAdj, // disabled ResourceContainer: "/kube-proxy", // disabled - IPTablesSyncPeriod: unversioned.Duration{Duration: 30 * time.Second}, + IPTablesSyncPeriod: metav1.Duration{Duration: 30 * time.Second}, // from k8s.io/kubernetes/cmd/kube-proxy/app/options/options.go // defaults to 14. IPTablesMasqueradeBit: &ipTablesMasqueratebit, - UDPIdleTimeout: unversioned.Duration{Duration: 250 * time.Millisecond}, + UDPIdleTimeout: metav1.Duration{Duration: 250 * time.Millisecond}, ConntrackMaxPerCore: 32 * 1024, - ConntrackTCPEstablishedTimeout: unversioned.Duration{Duration: 86400 * time.Second}, // 1 day (1/5 default) + ConntrackTCPEstablishedTimeout: metav1.Duration{Duration: 86400 * time.Second}, // 1 day (1/5 default) }, ConfigSyncPeriod: 15 * time.Minute, KubeAPIQPS: 5.0, diff --git a/pkg/cmd/server/kubernetes/proxy.go b/pkg/cmd/server/kubernetes/proxy.go index af905c425a83..3e868756840b 100644 --- a/pkg/cmd/server/kubernetes/proxy.go +++ b/pkg/cmd/server/kubernetes/proxy.go @@ -4,7 +4,7 @@ import ( "fmt" "net/url" - "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" restful "github.com/emicklei/go-restful" diff --git a/pkg/cmd/server/origin/admissionconfig_test.go b/pkg/cmd/server/origin/admissionconfig_test.go index e77bbf36ffdd..dce316a85b0e 100644 --- a/pkg/cmd/server/origin/admissionconfig_test.go +++ b/pkg/cmd/server/origin/admissionconfig_test.go @@ -5,9 +5,9 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/plugin/pkg/admission/namespace/lifecycle" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" @@ -100,11 +100,11 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { testCases := []struct { name string options configapi.MasterConfig - admissionChainBuilder func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) + admissionChainBuilder func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) }{ { name: "stock everything", - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { if !reflect.DeepEqual(pluginNames, CombinedAdmissionControlPlugins) { t.Errorf("%s: expected %v, got %v", "stock everything", CombinedAdmissionControlPlugins, pluginNames) } @@ -120,7 +120,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { expectedKube := []string{"foo"} isKube := reflect.DeepEqual(pluginNames, expectedKube) @@ -142,7 +142,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { expectedKube := []string{"foo"} isKube := reflect.DeepEqual(pluginNames, expectedKube) @@ -162,7 +162,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { PluginOrderOverride: []string{"foo"}, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { isKube := reflect.DeepEqual(pluginNames, KubeAdmissionPlugins) expectedOrigin := []string{"foo"} @@ -184,7 +184,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { isKube := reflect.DeepEqual(pluginNames, KubeAdmissionPlugins) isOrigin := reflect.DeepEqual(pluginNames, openshiftAdmissionControlPlugins) if !isKube && !isOrigin { @@ -204,7 +204,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { if !reflect.DeepEqual(pluginNames, CombinedAdmissionControlPlugins) { t.Errorf("%s: expected %v, got %v", "specified, non-conflicting plugin configs 01", CombinedAdmissionControlPlugins, pluginNames) } @@ -234,7 +234,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { if !reflect.DeepEqual(pluginNames, CombinedAdmissionControlPlugins) { t.Errorf("%s: expected %v, got %v", "specified, non-conflicting plugin configs 02", CombinedAdmissionControlPlugins, pluginNames) } @@ -257,7 +257,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { if !reflect.DeepEqual(pluginNames, CombinedAdmissionControlPlugins) { t.Errorf("%s: expected %v, got %v", "specified, non-conflicting plugin configs 03", CombinedAdmissionControlPlugins, pluginNames) } @@ -284,7 +284,7 @@ func TestSeparateAdmissionChainDetection(t *testing.T) { }, }, }, - admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet *kclientset.Clientset, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { + admissionChainBuilder: func(pluginNames []string, admissionConfigFilename string, pluginConfig map[string]configapi.AdmissionPluginConfig, options configapi.MasterConfig, kubeClientSet kclientset.Interface, pluginInitializer oadmission.PluginInitializer, kubePluginInitializer admission.PluginInitializer) (admission.Interface, error) { isKube := reflect.DeepEqual(pluginNames, KubeAdmissionPlugins) isOrigin := reflect.DeepEqual(pluginNames, openshiftAdmissionControlPlugins) if !isKube && !isOrigin { diff --git a/pkg/cmd/server/origin/asset.go b/pkg/cmd/server/origin/asset.go index 7a24e9fb7241..4bc298c05830 100644 --- a/pkg/cmd/server/origin/asset.go +++ b/pkg/cmd/server/origin/asset.go @@ -12,6 +12,14 @@ import ( "github.com/elazarl/go-bindata-assetfs" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/server" + kapi "k8s.io/kubernetes/pkg/api" + kversion "k8s.io/kubernetes/pkg/version" + "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/assets" @@ -20,15 +28,6 @@ import ( "github.com/openshift/origin/pkg/cmd/server/crypto" cmdutil "github.com/openshift/origin/pkg/cmd/util" oversion "github.com/openshift/origin/pkg/version" - - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/genericapiserver" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" - kversion "k8s.io/kubernetes/pkg/version" ) // WithAssets decorates a handler by serving static assets for the subpath of @@ -175,9 +174,9 @@ func (c *AssetConfig) addHandlers(handler http.Handler) (http.Handler, error) { originResources := sets.NewString() k8sResources := sets.NewString() - versions := []unversioned.GroupVersion{} - versions = append(versions, registered.GroupOrDie(api.GroupName).GroupVersions...) - versions = append(versions, registered.GroupOrDie(kapi.GroupName).GroupVersions...) + versions := []schema.GroupVersion{} + versions = append(versions, kapi.Registry.GroupOrDie(api.GroupName).GroupVersions...) + versions = append(versions, kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions...) deadOriginVersions := sets.NewString(configapi.DeadOpenShiftAPILevels...) deadKubernetesVersions := sets.NewString(configapi.DeadKubernetesAPILevels...) for _, version := range versions { @@ -211,12 +210,12 @@ func (c *AssetConfig) addHandlers(handler http.Handler) (http.Handler, error) { // Generated web console config and server version config := assets.WebConsoleConfig{ APIGroupAddr: masterURL.Host, - APIGroupPrefix: genericapiserver.APIGroupPrefix, + APIGroupPrefix: server.APIGroupPrefix, MasterAddr: masterURL.Host, MasterPrefix: api.Prefix, MasterResources: originResources.List(), KubernetesAddr: masterURL.Host, - KubernetesPrefix: genericapiserver.DefaultLegacyAPIPrefix, + KubernetesPrefix: server.DefaultLegacyAPIPrefix, KubernetesResources: k8sResources.List(), OAuthAuthorizeURI: OpenShiftOAuthAuthorizeURL(masterURL.String()), OAuthTokenURI: OpenShiftOAuthTokenURL(masterURL.String()), diff --git a/pkg/cmd/server/origin/auth.go b/pkg/cmd/server/origin/auth.go index 1e7157d0b4a3..7fdce275c578 100644 --- a/pkg/cmd/server/origin/auth.go +++ b/pkg/cmd/server/origin/auth.go @@ -15,14 +15,15 @@ import ( "github.com/golang/glog" "github.com/pborman/uuid" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/authenticator" - kuser "k8s.io/kubernetes/pkg/auth/user" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/request/union" + kuser "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/client/retry" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/union" "github.com/openshift/origin/pkg/auth/authenticator/challenger/passwordchallenger" "github.com/openshift/origin/pkg/auth/authenticator/challenger/placeholderchallenger" @@ -159,7 +160,7 @@ func (c *AuthConfig) WithOAuth(handler http.Handler) (http.Handler, error) { if err := CreateOrUpdateDefaultOAuthClients(c.Options.MasterPublicURL, c.AssetPublicAddresses, clientRegistry); err != nil { glog.Fatal(err) } - browserClient, err := clientRegistry.GetClient(kapi.NewContext(), OpenShiftBrowserClientID) + browserClient, err := clientRegistry.GetClient(apirequest.NewContext(), OpenShiftBrowserClientID, &metav1.GetOptions{}) if err != nil { glog.Fatal(err) } @@ -241,14 +242,14 @@ func OpenShiftOAuthTokenRequestURL(masterAddr string) string { } func ensureOAuthClient(client oauthapi.OAuthClient, clientRegistry clientregistry.Registry, preserveExistingRedirects, preserveExistingSecret bool) error { - ctx := kapi.NewContext() + ctx := apirequest.NewContext() _, err := clientRegistry.CreateClient(ctx, &client) if err == nil || !kerrs.IsAlreadyExists(err) { return err } return retry.RetryOnConflict(retry.DefaultRetry, func() error { - existing, err := clientRegistry.GetClient(ctx, client.Name) + existing, err := clientRegistry.GetClient(ctx, client.Name, &metav1.GetOptions{}) if err != nil { return err } @@ -289,7 +290,7 @@ func ensureOAuthClient(client oauthapi.OAuthClient, clientRegistry clientregistr func CreateOrUpdateDefaultOAuthClients(masterPublicAddr string, assetPublicAddresses []string, clientRegistry clientregistry.Registry) error { { webConsoleClient := oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: OpenShiftWebConsoleClientID}, + ObjectMeta: metav1.ObjectMeta{Name: OpenShiftWebConsoleClientID}, Secret: "", RespondWithChallenges: false, RedirectURIs: assetPublicAddresses, @@ -302,7 +303,7 @@ func CreateOrUpdateDefaultOAuthClients(masterPublicAddr string, assetPublicAddre { browserClient := oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: OpenShiftBrowserClientID}, + ObjectMeta: metav1.ObjectMeta{Name: OpenShiftBrowserClientID}, Secret: uuid.New(), RespondWithChallenges: false, RedirectURIs: []string{masterPublicAddr + path.Join(OpenShiftOAuthAPIPrefix, tokenrequest.DisplayTokenEndpoint)}, @@ -315,7 +316,7 @@ func CreateOrUpdateDefaultOAuthClients(masterPublicAddr string, assetPublicAddre { cliClient := oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: OpenShiftCLIClientID}, + ObjectMeta: metav1.ObjectMeta{Name: OpenShiftCLIClientID}, Secret: "", RespondWithChallenges: true, RedirectURIs: []string{masterPublicAddr + path.Join(OpenShiftOAuthAPIPrefix, tokenrequest.ImplicitTokenEndpoint)}, diff --git a/pkg/cmd/server/origin/auth_config.go b/pkg/cmd/server/origin/auth_config.go index 1b1a646466a3..7535c747556d 100644 --- a/pkg/cmd/server/origin/auth_config.go +++ b/pkg/cmd/server/origin/auth_config.go @@ -7,8 +7,8 @@ import ( "github.com/pborman/uuid" + "k8s.io/apiserver/pkg/storage" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/storage" "github.com/openshift/origin/pkg/auth/server/session" osclient "github.com/openshift/origin/pkg/client" diff --git a/pkg/cmd/server/origin/control.go b/pkg/cmd/server/origin/control.go index 78cd77a22382..935bb84968bc 100644 --- a/pkg/cmd/server/origin/control.go +++ b/pkg/cmd/server/origin/control.go @@ -6,7 +6,7 @@ import ( restful "github.com/emicklei/go-restful" - genericmux "k8s.io/kubernetes/pkg/genericapiserver/mux" + genericmux "k8s.io/apiserver/pkg/server/mux" "github.com/openshift/origin/pkg/cmd/util/plug" ) diff --git a/pkg/cmd/server/origin/ensure.go b/pkg/cmd/server/origin/ensure.go index 850ec95f1ace..bdb4f3500ded 100644 --- a/pkg/cmd/server/origin/ensure.go +++ b/pkg/cmd/server/origin/ensure.go @@ -7,11 +7,12 @@ import ( "github.com/golang/glog" + kapierror "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/cmd/admin/policy" @@ -24,8 +25,8 @@ import ( // ensureOpenShiftSharedResourcesNamespace is called as part of global policy initialization to ensure shared namespace exists func (c *MasterConfig) ensureOpenShiftSharedResourcesNamespace() { - if _, err := c.KubeClientset().Namespaces().Get(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace); kapierror.IsNotFound(err) { - namespace, createErr := c.KubeClientset().Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace}}) + if _, err := c.KubeClientset().Namespaces().Get(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace, metav1.GetOptions{}); kapierror.IsNotFound(err) { + namespace, createErr := c.KubeClientset().Namespaces().Create(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace}}) if createErr != nil { glog.Errorf("Error creating namespace: %v due to %v\n", c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace, createErr) return @@ -40,10 +41,10 @@ func (c *MasterConfig) ensureOpenShiftInfraNamespace() { ns := c.Options.PolicyConfig.OpenShiftInfrastructureNamespace // Ensure namespace exists - namespace, err := c.KubeClientset().Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: ns}}) + namespace, err := c.KubeClientset().Namespaces().Create(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) if kapierror.IsAlreadyExists(err) { // Get the persisted namespace - namespace, err = c.KubeClientset().Namespaces().Get(ns) + namespace, err = c.KubeClientset().Namespaces().Get(ns, metav1.GetOptions{}) if err != nil { glog.Errorf("Error getting namespace %s: %v", ns, err) return @@ -55,7 +56,7 @@ func (c *MasterConfig) ensureOpenShiftInfraNamespace() { roleAccessor := policy.NewClusterRoleBindingAccessor(c.ServiceAccountRoleBindingClient()) for _, saName := range bootstrappolicy.InfraSAs.GetServiceAccounts() { - _, err := c.KubeClientset().ServiceAccounts(ns).Create(&kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: saName}}) + _, err := c.KubeClientset().ServiceAccounts(ns).Create(&kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: saName}}) if err != nil && !kapierror.IsAlreadyExists(err) { glog.Errorf("Error creating service account %s/%s: %v", ns, saName, err) } @@ -93,7 +94,7 @@ func (c *MasterConfig) ensureDefaultNamespaceServiceAccountRoles() { // Wait for the default namespace var namespace *kapi.Namespace for i := 0; i < 30; i++ { - ns, err := c.KubeClientset().Namespaces().Get(kapi.NamespaceDefault) + ns, err := c.KubeClientset().Namespaces().Get(metav1.NamespaceDefault, metav1.GetOptions{}) if err == nil { namespace = ns break @@ -102,11 +103,11 @@ func (c *MasterConfig) ensureDefaultNamespaceServiceAccountRoles() { time.Sleep(time.Second) continue } - glog.Errorf("Error adding service account roles to %q namespace: %v", kapi.NamespaceDefault, err) + glog.Errorf("Error adding service account roles to %q namespace: %v", metav1.NamespaceDefault, err) return } if namespace == nil { - glog.Errorf("Namespace %q not found, could not initialize the %q namespace", kapi.NamespaceDefault, kapi.NamespaceDefault) + glog.Errorf("Namespace %q not found, could not initialize the %q namespace", metav1.NamespaceDefault, metav1.NamespaceDefault) return } @@ -159,7 +160,7 @@ func (c *MasterConfig) securityContextConstraintsSupported() (bool, error) { return false, err } // find the preferred version of the legacy group - var legacyGroup *unversioned.APIGroup + var legacyGroup *metav1.APIGroup for i := range serverGroupList.Groups { if len(serverGroupList.Groups[i].Name) == 0 { legacyGroup = &serverGroupList.Groups[i] @@ -216,9 +217,9 @@ func (c *MasterConfig) ensureComponentAuthorizationRules() { return } clusterPolicyRegistry := clusterpolicyregistry.NewRegistry(clusterPolicyStorage) - ctx := kapi.WithNamespace(kapi.NewContext(), "") + ctx := apirequest.WithNamespace(apirequest.NewContext(), "") - if _, err := clusterPolicyRegistry.GetClusterPolicy(ctx, authorizationapi.PolicyName); kapierror.IsNotFound(err) { + if _, err := clusterPolicyRegistry.GetClusterPolicy(ctx, authorizationapi.PolicyName, &metav1.GetOptions{}); kapierror.IsNotFound(err) { glog.Infof("No cluster policy found. Creating bootstrap policy based on: %v", c.Options.PolicyConfig.BootstrapPolicyFile) if err := admin.OverwriteBootstrapPolicy(c.RESTOptionsGetter, c.Options.PolicyConfig.BootstrapPolicyFile, admin.CreateBootstrapPolicyFileFullCommand, true, ioutil.Discard); err != nil { diff --git a/pkg/cmd/server/origin/handlers.go b/pkg/cmd/server/origin/handlers.go index 85f6b59ff4b3..e32e3fa884fc 100644 --- a/pkg/cmd/server/origin/handlers.go +++ b/pkg/cmd/server/origin/handlers.go @@ -9,10 +9,9 @@ import ( restful "github.com/emicklei/go-restful" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apiserver/request" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" configapi "github.com/openshift/origin/pkg/cmd/server/api" serverhandlers "github.com/openshift/origin/pkg/cmd/server/handlers" @@ -45,7 +44,7 @@ func indexAPIPaths(osAPIVersions, kubeAPIVersions []string, handler http.Handler return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if req.URL.Path == "/" { - output, err := json.MarshalIndent(unversioned.RootPaths{Paths: rootPaths}, "", " ") + output, err := json.MarshalIndent(metav1.RootPaths{Paths: rootPaths}, "", " ") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -69,7 +68,7 @@ func cacheControlFilter(handler http.Handler, value string) http.Handler { // namespacingFilter adds a filter that adds the namespace of the request to the context. Not all requests will have namespaces, // but any that do will have the appropriate value added. -func namespacingFilter(handler http.Handler, contextMapper kapi.RequestContextMapper) http.Handler { +func namespacingFilter(handler http.Handler, contextMapper apirequest.RequestContextMapper) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { ctx, ok := contextMapper.Get(req) if !ok { @@ -77,8 +76,8 @@ func namespacingFilter(handler http.Handler, contextMapper kapi.RequestContextMa return } - if _, exists := kapi.NamespaceFrom(ctx); !exists { - if requestInfo, ok := request.RequestInfoFrom(ctx); ok && requestInfo != nil { + if _, exists := apirequest.NamespaceFrom(ctx); !exists { + if requestInfo, ok := apirequest.RequestInfoFrom(ctx); ok && requestInfo != nil { // only set the namespace if the apiRequestInfo was resolved // keep in mind that GetAPIRequestInfo will fail on non-api requests, so don't fail the entire http request on that // kind of failure. @@ -90,7 +89,7 @@ func namespacingFilter(handler http.Handler, contextMapper kapi.RequestContextMa namespace = requestInfo.Name } - ctx = kapi.WithNamespace(ctx, namespace) + ctx = apirequest.WithNamespace(ctx, namespace) contextMapper.Update(req, ctx) } } @@ -125,7 +124,7 @@ func (f *userAgentFilter) matches(verb, userAgent string) bool { // versionSkewFilter adds a filter that may deny requests from skewed // oc clients, since we know that those clients will strip unknown fields which can lead to unexpected outcomes -func (c *MasterConfig) versionSkewFilter(handler http.Handler, contextMapper kapi.RequestContextMapper) http.Handler { +func (c *MasterConfig) versionSkewFilter(handler http.Handler, contextMapper apirequest.RequestContextMapper) http.Handler { filterConfig := c.Options.PolicyConfig.UserAgentMatchingConfig if len(filterConfig.RequiredClients) == 0 && len(filterConfig.DeniedClients) == 0 { return handler @@ -165,7 +164,7 @@ func (c *MasterConfig) versionSkewFilter(handler http.Handler, contextMapper kap return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if ctx, ok := contextMapper.Get(req); ok { - if requestInfo, ok := request.RequestInfoFrom(ctx); ok && requestInfo != nil && !requestInfo.IsResourceRequest { + if requestInfo, ok := apirequest.RequestInfoFrom(ctx); ok && requestInfo != nil && !requestInfo.IsResourceRequest { handler.ServeHTTP(w, req) return } diff --git a/pkg/cmd/server/origin/handlers_test.go b/pkg/cmd/server/origin/handlers_test.go index f267d931d55b..658fb39e5f9c 100644 --- a/pkg/cmd/server/origin/handlers_test.go +++ b/pkg/cmd/server/origin/handlers_test.go @@ -10,13 +10,15 @@ import ( "sync" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kapiserverfilters "k8s.io/kubernetes/pkg/apiserver/filters" - "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/genericapiserver" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" + apifilters "k8s.io/apiserver/pkg/endpoints/filters" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + apiserver "k8s.io/apiserver/pkg/server" authenticationapi "github.com/openshift/origin/pkg/auth/api" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -74,22 +76,22 @@ func (impersonateAuthorizer) GetAllowedSubjects(attributes authorizer.Attributes type groupCache struct { } -func (*groupCache) ListGroups(ctx kapi.Context, options *kapi.ListOptions) (*userapi.GroupList, error) { +func (*groupCache) ListGroups(ctx apirequest.Context, options *metainternal.ListOptions) (*userapi.GroupList, error) { return &userapi.GroupList{}, nil } -func (*groupCache) GetGroup(ctx kapi.Context, name string) (*userapi.Group, error) { +func (*groupCache) GetGroup(ctx apirequest.Context, name string, options *metav1.GetOptions) (*userapi.Group, error) { return nil, nil } -func (*groupCache) CreateGroup(ctx kapi.Context, group *userapi.Group) (*userapi.Group, error) { +func (*groupCache) CreateGroup(ctx apirequest.Context, group *userapi.Group) (*userapi.Group, error) { return nil, nil } -func (*groupCache) UpdateGroup(ctx kapi.Context, group *userapi.Group) (*userapi.Group, error) { +func (*groupCache) UpdateGroup(ctx apirequest.Context, group *userapi.Group) (*userapi.Group, error) { return nil, nil } -func (*groupCache) DeleteGroup(ctx kapi.Context, name string) error { +func (*groupCache) DeleteGroup(ctx apirequest.Context, name string) error { return nil } -func (*groupCache) WatchGroups(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (*groupCache) WatchGroups(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return watch.NewFake(), nil } @@ -248,16 +250,16 @@ func TestImpersonationFilter(t *testing.T) { } config := MasterConfig{} - config.RequestContextMapper = kapi.NewRequestContextMapper() + config.RequestContextMapper = apirequest.NewRequestContextMapper() config.Authorizer = impersonateAuthorizer{} config.GroupCache = usercache.NewGroupCache(&groupCache{}) - var ctx kapi.Context + var ctx apirequest.Context var actualUser user.Info var lock sync.Mutex doNothingHandler := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { currentCtx, _ := config.RequestContextMapper.Get(req) - user, exists := kapi.UserFrom(currentCtx) + user, exists := apirequest.UserFrom(currentCtx) if !exists { actualUser = nil return @@ -277,7 +279,7 @@ func TestImpersonationFilter(t *testing.T) { config.RequestContextMapper.Update(req, ctx) currentCtx, _ := config.RequestContextMapper.Get(req) - user, exists := kapi.UserFrom(currentCtx) + user, exists := apirequest.UserFrom(currentCtx) if !exists { actualUser = nil return @@ -288,7 +290,7 @@ func TestImpersonationFilter(t *testing.T) { delegate.ServeHTTP(w, req) }) }(serverhandlers.ImpersonationFilter(doNothingHandler, config.Authorizer, config.GroupCache, config.RequestContextMapper)) - handler = kapi.WithRequestContext(handler, config.RequestContextMapper) + handler = apirequest.WithRequestContext(handler, config.RequestContextMapper) server := httptest.NewServer(handler) defer server.Close() @@ -297,7 +299,7 @@ func TestImpersonationFilter(t *testing.T) { func() { lock.Lock() defer lock.Unlock() - ctx = kapi.WithUser(kapi.NewContext(), tc.user) + ctx = apirequest.WithUser(apirequest.NewContext(), tc.user) }() req, err := http.NewRequest("GET", server.URL, nil) @@ -433,7 +435,7 @@ func TestVersionSkewFilterDenyOld(t *testing.T) { {UserAgentMatchRule: configapi.UserAgentMatchRule{Regex: `\w+/v1\.1\.10 \(.+/.+\) kubernetes/\w{7}`, HTTPVerbs: verbs}, RejectionMessage: "rejected for reasons!"}, {UserAgentMatchRule: configapi.UserAgentMatchRule{Regex: `\w+/v(?:(?:1\.1\.1)|(?:1\.0\.1)) \(.+/.+\) openshift/\w{7}`, HTTPVerbs: verbs}, RejectionMessage: "rejected for reasons!"}, } - requestContextMapper := kapi.NewRequestContextMapper() + requestContextMapper := apirequest.NewRequestContextMapper() handler := config.versionSkewFilter(doNothingHandler, requestContextMapper) server := httptest.NewServer(testHandlerChain(handler, requestContextMapper)) defer server.Close() @@ -482,7 +484,7 @@ func TestVersionSkewFilterDenySkewed(t *testing.T) { {Regex: `\w+/` + openshiftServerVersion + ` \(.+/.+\) openshift/\w{7}`, HTTPVerbs: verbs}, } config.Options.PolicyConfig.UserAgentMatchingConfig.DefaultRejectionMessage = "rejected for reasons!" - requestContextMapper := kapi.NewRequestContextMapper() + requestContextMapper := apirequest.NewRequestContextMapper() handler := config.versionSkewFilter(doNothingHandler, requestContextMapper) server := httptest.NewServer(testHandlerChain(handler, requestContextMapper)) defer server.Close() @@ -535,7 +537,7 @@ func TestVersionSkewFilterSkippedOnNonAPIRequest(t *testing.T) { } config.Options.PolicyConfig.UserAgentMatchingConfig.DefaultRejectionMessage = "rejected for reasons!" - requestContextMapper := kapi.NewRequestContextMapper() + requestContextMapper := apirequest.NewRequestContextMapper() handler := config.versionSkewFilter(doNothingHandler, requestContextMapper) server := httptest.NewServer(testHandlerChain(handler, requestContextMapper)) defer server.Close() @@ -573,11 +575,11 @@ func TestVersionSkewFilterSkippedOnNonAPIRequest(t *testing.T) { } } -func testHandlerChain(handler http.Handler, contextMapper kapi.RequestContextMapper) http.Handler { - kgenericconfig := genericapiserver.NewConfig() +func testHandlerChain(handler http.Handler, contextMapper apirequest.RequestContextMapper) http.Handler { + kgenericconfig := apiserver.NewConfig() kgenericconfig.LegacyAPIGroupPrefixes = kubernetes.LegacyAPIGroupPrefixes - handler = kapiserverfilters.WithRequestInfo(handler, genericapiserver.NewRequestInfoResolver(kgenericconfig), contextMapper) - handler = kapi.WithRequestContext(handler, contextMapper) + handler = apifilters.WithRequestInfo(handler, apiserver.NewRequestInfoResolver(kgenericconfig), contextMapper) + handler = apirequest.WithRequestContext(handler, contextMapper) return handler } diff --git a/pkg/cmd/server/origin/legacy.go b/pkg/cmd/server/origin/legacy.go index 6fa5fd46091c..dd82ed46e3a7 100644 --- a/pkg/cmd/server/origin/legacy.go +++ b/pkg/cmd/server/origin/legacy.go @@ -1,9 +1,9 @@ package origin import ( - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/registry/rest" ) var ( @@ -181,7 +181,7 @@ var ( ) // LegacyStorage returns a storage for locked legacy types. -func LegacyStorage(storage map[unversioned.GroupVersion]map[string]rest.Storage) map[string]rest.Storage { +func LegacyStorage(storage map[schema.GroupVersion]map[string]rest.Storage) map[string]rest.Storage { legacyStorage := map[string]rest.Storage{} for _, gvStorage := range storage { for resource, s := range gvStorage { diff --git a/pkg/cmd/server/origin/master.go b/pkg/cmd/server/origin/master.go index ae3e95ce15e1..1a182bdb3fb9 100644 --- a/pkg/cmd/server/origin/master.go +++ b/pkg/cmd/server/origin/master.go @@ -18,28 +18,29 @@ import ( "github.com/prometheus/client_golang/prometheus" "gopkg.in/natefinch/lumberjack.v2" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + apiendpoints "k8s.io/apiserver/pkg/endpoints" + apifilters "k8s.io/apiserver/pkg/endpoints/filters" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + apiserver "k8s.io/apiserver/pkg/server" + apiserverfilters "k8s.io/apiserver/pkg/server/filters" + "k8s.io/apiserver/pkg/server/healthz" + genericmux "k8s.io/apiserver/pkg/server/mux" + genericroutes "k8s.io/apiserver/pkg/server/routes" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" kubeapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/apimachinery/registered" v1beta1extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - "k8s.io/kubernetes/pkg/apiserver" - kapiserverfilters "k8s.io/kubernetes/pkg/apiserver/filters" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/genericapiserver" - kgenericfilters "k8s.io/kubernetes/pkg/genericapiserver/filters" - genericmux "k8s.io/kubernetes/pkg/genericapiserver/mux" - genericroutes "k8s.io/kubernetes/pkg/genericapiserver/routes" - "k8s.io/kubernetes/pkg/healthz" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/master" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flowcontrol" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" authzapiv1 "github.com/openshift/origin/pkg/authorization/api/v1" authzcache "github.com/openshift/origin/pkg/authorization/authorizer/cache" @@ -234,7 +235,7 @@ func readCAorNil(file string) ([]byte, error) { return ioutil.ReadFile(file) } -type sortedGroupVersions []unversioned.GroupVersion +type sortedGroupVersions []schema.GroupVersion func (s sortedGroupVersions) Len() int { return len(s) } func (s sortedGroupVersions) Swap(i, j int) { s[i], s[j] = s[j], s[i] } @@ -245,9 +246,9 @@ func (c *MasterConfig) kubernetesAPIMessages(kc *kubernetes.MasterConfig) []stri // v1 has to be printed separately since it's served from different endpoint than groups if configapi.HasKubernetesAPIVersion(*c.Options.KubernetesMasterConfig, kubeapiv1.SchemeGroupVersion) { - messages = append(messages, fmt.Sprintf("Started Kubernetes API at %%s%s", genericapiserver.DefaultLegacyAPIPrefix)) + messages = append(messages, fmt.Sprintf("Started Kubernetes API at %%s%s", apiserver.DefaultLegacyAPIPrefix)) } - versions := registered.EnabledVersions() + versions := kapi.Registry.EnabledVersions() sort.Sort(sortedGroupVersions(versions)) for _, ver := range versions { if ver.String() == "v1" { @@ -255,7 +256,7 @@ func (c *MasterConfig) kubernetesAPIMessages(kc *kubernetes.MasterConfig) []stri continue } if configapi.HasKubernetesAPIVersion(*c.Options.KubernetesMasterConfig, ver) { - messages = append(messages, fmt.Sprintf("Started Kubernetes API %s at %%s%s", ver.String(), genericapiserver.APIGroupPrefix)) + messages = append(messages, fmt.Sprintf("Started Kubernetes API %s at %%s%s", ver.String(), apiserver.APIGroupPrefix)) } } @@ -265,7 +266,7 @@ func (c *MasterConfig) kubernetesAPIMessages(kc *kubernetes.MasterConfig) []stri return messages } -func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Handler, *genericapiserver.Config) (secure, insecure http.Handler), []string, error) { +func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Handler, *apiserver.Config) (secure, insecure http.Handler), []string, error) { var messages []string if c.Options.OAuthConfig != nil { messages = append(messages, fmt.Sprintf("Started OAuth2 API at %%s%s", OpenShiftOAuthAPIPrefix)) @@ -280,9 +281,8 @@ func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Ha } // TODO(sttts): resync with upstream handler chain and re-use upstream filters as much as possible - return func(apiHandler http.Handler, kc *genericapiserver.Config) (secure, insecure http.Handler) { + return func(apiHandler http.Handler, kc *apiserver.Config) (secure, insecure http.Handler) { contextMapper := c.getRequestContextMapper() - attributeGetter := kapiserverfilters.NewRequestAttributeGetter(contextMapper) handler := c.versionSkewFilter(apiHandler, contextMapper) handler = serverhandlers.AuthorizationFilter(handler, c.Authorizer, c.AuthorizationAttributeBuilder, contextMapper) @@ -302,7 +302,7 @@ func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Ha // backwards compatible writer to regular log writer = cmdutil.NewGLogWriterV(0) } - handler = kapiserverfilters.WithAudit(handler, attributeGetter, writer) + handler = apifilters.WithAudit(handler, contextMapper, writer) } handler = serverhandlers.AuthenticationHandlerFilter(handler, c.Authenticator, contextMapper) handler = namespacingFilter(handler, contextMapper) @@ -331,15 +331,15 @@ func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Ha handler = WithAssetServerRedirect(handler, c.Options.AssetConfig.PublicURL) } - handler = kgenericfilters.WithCORS(handler, c.Options.CORSAllowedOrigins, nil, nil, nil, "true") - handler = kgenericfilters.WithPanicRecovery(handler, contextMapper) - handler = kgenericfilters.WithTimeoutForNonLongRunningRequests(handler, kc.LongRunningFunc) + handler = apiserverfilters.WithCORS(handler, c.Options.CORSAllowedOrigins, nil, nil, nil, "true") + handler = apiserverfilters.WithPanicRecovery(handler, contextMapper) + handler = apiserverfilters.WithTimeoutForNonLongRunningRequests(handler, contextMapper, kc.LongRunningFunc) // TODO: MaxRequestsInFlight should be subdivided by intent, type of behavior, and speed of // execution - updates vs reads, long reads vs short reads, fat reads vs skinny reads. // NOTE: read vs. write is implemented in Kube 1.6+ - handler = kgenericfilters.WithMaxInFlightLimit(handler, kc.MaxRequestsInFlight, kc.LongRunningFunc) - handler = kapiserverfilters.WithRequestInfo(handler, genericapiserver.NewRequestInfoResolver(kc), contextMapper) - handler = kapi.WithRequestContext(handler, contextMapper) + handler = apiserverfilters.WithMaxInFlightLimit(handler, kc.MaxRequestsInFlight, kc.MaxMutatingRequestsInFlight, contextMapper, kc.LongRunningFunc) + handler = apifilters.WithRequestInfo(handler, apiserver.NewRequestInfoResolver(kc), contextMapper) + handler = apirequest.WithRequestContext(handler, contextMapper) return handler, nil }, messages, nil @@ -371,9 +371,9 @@ func (c *MasterConfig) RunHealth() error { contextMapper := c.getRequestContextMapper() handler := serverhandlers.AuthorizationFilter(apiContainer.ServeMux, authz, c.AuthorizationAttributeBuilder, contextMapper) handler = serverhandlers.AuthenticationHandlerFilter(handler, authn, contextMapper) - handler = kgenericfilters.WithPanicRecovery(handler, contextMapper) - handler = kapiserverfilters.WithRequestInfo(handler, genericapiserver.NewRequestInfoResolver(&genericapiserver.Config{}), contextMapper) - handler = kapi.WithRequestContext(handler, contextMapper) + handler = apiserverfilters.WithPanicRecovery(handler, contextMapper) + handler = apifilters.WithRequestInfo(handler, apiserver.NewRequestInfoResolver(&apiserver.Config{}), contextMapper) + handler = apirequest.WithRequestContext(handler, contextMapper) c.serve(handler, []string{"Started health checks at %s"}) return nil @@ -438,30 +438,30 @@ func (c *MasterConfig) InitializeObjects() { // apiGroupInfo represents a set of API group versions and their preferred version. type apiGroupInfo struct { PreferredVersion string - Versions []unversioned.GroupVersion + Versions []schema.GroupVersion } // apiGroupsVersions holds the list of installed Origin API groups and their preferred version. // FIXME: This should be handled in each REST storage separately and on in one place. That // will be addressed as a separate issue. var apiGroupsVersions = []apiGroupInfo{ - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{securityapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{projectapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{buildapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{quotaapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{networkapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{routeapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{userapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{imageapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{deployapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{authzapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{templateapiv1.SchemeGroupVersion}}, - {PreferredVersion: "v1", Versions: []unversioned.GroupVersion{oauthapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{securityapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{projectapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{buildapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{quotaapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{networkapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{routeapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{userapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{imageapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{deployapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{authzapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{templateapiv1.SchemeGroupVersion}}, + {PreferredVersion: "v1", Versions: []schema.GroupVersion{oauthapiv1.SchemeGroupVersion}}, } // isPreferredGroupVersion returns true if the given GroupVersion is preferred version in // the API group. -func isPreferredGroupVersion(gv unversioned.GroupVersion) bool { +func isPreferredGroupVersion(gv schema.GroupVersion) bool { for _, info := range apiGroupsVersions { for _, version := range info.Versions { if version == gv && gv.Version == info.PreferredVersion { @@ -472,8 +472,8 @@ func isPreferredGroupVersion(gv unversioned.GroupVersion) bool { return false } -func (c *MasterConfig) InstallProtectedAPI(apiserver *genericapiserver.GenericAPIServer) ([]string, error) { - apiContainer := apiserver.HandlerContainer +func (c *MasterConfig) InstallProtectedAPI(apiserver *apiserver.GenericAPIServer) ([]string, error) { + apiContainer := server.HandlerContainer messages := []string{} storage := c.GetRestStorage() groupVersions := map[string][]string{} @@ -484,7 +484,7 @@ func (c *MasterConfig) InstallProtectedAPI(apiserver *genericapiserver.GenericAP if gv == v1.SchemeGroupVersion { continue } - if !registered.IsEnabledVersion(gv) { + if !kapi.Registry.IsEnabledVersion(gv) { continue } for _, infos := range apiGroupsVersions { @@ -494,10 +494,10 @@ func (c *MasterConfig) InstallProtectedAPI(apiserver *genericapiserver.GenericAP } } for group, versions := range groupVersions { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(group) + apiGroupInfo := apiserver.NewDefaultAPIGroupInfo(group) for _, version := range versions { - gv := unversioned.GroupVersion{Group: group, Version: version} + gv := schema.GroupVersion{Group: group, Version: version} apiGroupInfo.VersionedResourcesStorageMap[version] = storage[gv] if isPreferredGroupVersion(gv) { apiGroupInfo.GroupMeta.GroupVersion = gv @@ -549,7 +549,7 @@ func (c *MasterConfig) InstallProtectedAPI(apiserver *genericapiserver.GenericAP templateservicebroker.NewBroker( c.PrivilegedLoopbackClientConfig, c.PrivilegedLoopbackOpenShiftClient, - c.PrivilegedLoopbackKubernetesClientset.Core(), + c.PrivilegedLoopbackKubernetesClientsetInternal.Core(), c.Informers, c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace, ), @@ -607,7 +607,7 @@ func initOAuthAuthorizationServerMetadataRoute(apiContainer *genericmux.APIConta // Create temporary container because we only have a mux for secret routes secretContainer := restful.NewContainer() - secretContainer.ServeMux = apiContainer.SecretRoutes.(*http.ServeMux) // we know it's a *http.ServeMux. In kube 1.6, the type will actually be correct. + secretContainer.ServeMux = apiContainer.UnlistedRoutes // Set up a service to return the OAuth metadata. ws := new(restful.WebService) @@ -624,9 +624,9 @@ func initOAuthAuthorizationServerMetadataRoute(apiContainer *genericmux.APIConta secretContainer.Add(ws) } -func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string]rest.Storage { - //TODO/REBASE use something other than c.KubeClientset - nodeConnectionInfoGetter, err := kubeletclient.NewNodeConnectionInfoGetter(c.KubeClientset().Core().Nodes(), *c.KubeletClientConfig) +func (c *MasterConfig) GetRestStorage() map[schema.GroupVersion]map[string]rest.Storage { + //TODO/REBASE use something other than c.KubeClientsetInternal + nodeConnectionInfoGetter, err := kubeletclient.NewNodeConnectionInfoGetter(c.KubeClientsetExternal().CoreV1().Nodes(), *c.KubeletClientConfig) if err != nil { glog.Fatalf("Unable to configure the node connection info getter: %v", err) } @@ -636,7 +636,11 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] if err != nil { glog.Fatalf("Unable to configure a default transport for importing: %v", err) } - insecureImportTransport, err := restclient.TransportFor(&restclient.Config{Insecure: true}) + insecureImportTransport, err := restclient.TransportFor(&restclient.Config{ + TLSClientConfig: restclient.TLSClientConfig{ + Insecure: true, + }, + }) if err != nil { glog.Fatalf("Unable to configure a default transport for importing: %v", err) } @@ -716,9 +720,9 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] resourceAccessReviewRegistry := resourceaccessreview.NewRegistry(resourceAccessReviewStorage) localResourceAccessReviewStorage := localresourceaccessreview.NewREST(resourceAccessReviewRegistry) - podSecurityPolicyReviewStorage := podsecuritypolicyreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.Informers.KubernetesInformers().ServiceAccounts().Lister(), c.PrivilegedLoopbackKubernetesClientset) - podSecurityPolicySubjectStorage := podsecuritypolicysubjectreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.PrivilegedLoopbackKubernetesClientset) - podSecurityPolicySelfSubjectReviewStorage := podsecuritypolicyselfsubjectreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.PrivilegedLoopbackKubernetesClientset) + podSecurityPolicyReviewStorage := podsecuritypolicyreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.Informers.KubernetesInformers().ServiceAccounts().Lister(), c.PrivilegedLoopbackKubernetesClientsetInternal) + podSecurityPolicySubjectStorage := podsecuritypolicysubjectreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.PrivilegedLoopbackKubernetesClientsetInternal) + podSecurityPolicySelfSubjectReviewStorage := podsecuritypolicyselfsubjectreview.NewREST(oscc.NewDefaultSCCMatcher(c.Informers.SecurityContextConstraints().Lister()), c.PrivilegedLoopbackKubernetesClientsetInternal) imageStorage, err := imageetcd.NewREST(c.RESTOptionsGetter) checkStorageErr(err) @@ -781,7 +785,7 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] glog.Errorf("Error parsing project request template value: %v", err) // we can continue on, the storage that gets created will be valid, it simply won't work properly. There's no reason to kill the master } - projectRequestStorage := projectrequeststorage.NewREST(c.Options.ProjectConfig.ProjectRequestMessage, namespace, templateName, c.PrivilegedLoopbackOpenShiftClient, c.PrivilegedLoopbackKubernetesClientset, c.Informers.PolicyBindings().Lister()) + projectRequestStorage := projectrequeststorage.NewREST(c.Options.ProjectConfig.ProjectRequestMessage, namespace, templateName, c.PrivilegedLoopbackOpenShiftClient, c.PrivilegedLoopbackKubernetesClientsetInternal, c.Informers.PolicyBindings().Lister()) bcClient := c.BuildConfigWebHookClient() buildConfigWebHooks := buildconfigregistry.NewWebHookREST( @@ -827,7 +831,7 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] roleBindingRestrictionStorage, err := rolebindingrestrictionetcd.NewREST(c.RESTOptionsGetter) checkStorageErr(err) - storage := map[unversioned.GroupVersion]map[string]rest.Storage{ + storage := map[schema.GroupVersion]map[string]rest.Storage{ v1.SchemeGroupVersion: { // TODO: Deprecate these "generateDeploymentConfigs": deployconfiggenerator.NewREST(deployConfigGenerator, c.ExternalVersionCodec), @@ -900,7 +904,7 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] "deploymentConfigs/scale": deployConfigScaleStorage, "deploymentConfigs/status": deployConfigStatusStorage, "deploymentConfigs/rollback": deployConfigRollbackStorage, - "deploymentConfigs/log": deploylogregistry.NewREST(configClient, kclient, c.DeploymentLogClient(), nodeConnectionInfoGetter), + "deploymentConfigs/log": deploylogregistry.NewREST(configClient, kclient.Core(), c.DeploymentLogClient().Core(), nodeConnectionInfoGetter), "deploymentConfigs/instantiate": dcInstantiateStorage, } @@ -946,7 +950,7 @@ func (c *MasterConfig) GetRestStorage() map[unversioned.GroupVersion]map[string] "buildConfigs": buildConfigStorage, "buildConfigs/webhooks": buildConfigWebHooks, "buildConfigs/instantiate": buildconfiginstantiate.NewStorage(buildGenerator), - "buildConfigs/instantiatebinary": buildconfiginstantiate.NewBinaryStorage(buildGenerator, buildStorage, c.BuildLogClient(), nodeConnectionInfoGetter), + "buildConfigs/instantiatebinary": buildconfiginstantiate.NewBinaryStorage(buildGenerator, buildStorage, c.BuildLogClient().Core(), nodeConnectionInfoGetter), } } @@ -961,8 +965,8 @@ func checkStorageErr(err error) { // initAPIVersionRoute initializes the osapi endpoint to behave similar to the upstream api endpoint func initAPIVersionRoute(apiContainer *genericmux.APIContainer, prefix string, versions ...string) { - versionHandler := apiserver.APIVersionHandler(kapi.Codecs, func(req *restful.Request) *unversioned.APIVersions { - apiVersionsForDiscovery := unversioned.APIVersions{ + versionHandler := apiendpoints.APIVersionHandler(kapi.Codecs, func(req *restful.Request) *metav1.APIVersions { + apiVersionsForDiscovery := metav1.APIVersions{ // TODO: ServerAddressByClientCIDRs: s.getServerAddressByClientCIDRs(req.Request), Versions: versions, } @@ -1015,27 +1019,27 @@ func initMetricsRoute(apiContainer *genericmux.APIContainer, path string) { apiContainer.Add(ws) } -func (c *MasterConfig) defaultAPIGroupVersion() *apiserver.APIGroupVersion { +func (c *MasterConfig) defaultAPIGroupVersion() *apiendpoints.APIGroupVersion { var restMapper meta.MultiRESTMapper seenGroups := sets.String{} - for _, gv := range registered.EnabledVersions() { + for _, gv := range kapi.Registry.EnabledVersions() { if seenGroups.Has(gv.Group) { continue } seenGroups.Insert(gv.Group) - groupMeta, err := registered.Group(gv.Group) + groupMeta, err := kapi.Registry.Group(gv.Group) if err != nil { continue } restMapper = meta.MultiRESTMapper(append(restMapper, groupMeta.RESTMapper)) } - statusMapper := meta.NewDefaultRESTMapper([]unversioned.GroupVersion{kubeapiv1.SchemeGroupVersion}, registered.GroupOrDie(kapi.GroupName).InterfacesFor) + statusMapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{kubeapiv1.SchemeGroupVersion}, kapi.Registry.GroupOrDie(kapi.GroupName).InterfacesFor) statusMapper.Add(kubeapiv1.SchemeGroupVersion.WithKind("Status"), meta.RESTScopeRoot) restMapper = meta.MultiRESTMapper(append(restMapper, statusMapper)) - return &apiserver.APIGroupVersion{ + return &apiendpoints.APIGroupVersion{ Root: api.Prefix, Mapper: restMapper, @@ -1044,16 +1048,16 @@ func (c *MasterConfig) defaultAPIGroupVersion() *apiserver.APIGroupVersion { Typer: kapi.Scheme, Convertor: kapi.Scheme, Copier: kapi.Scheme, - Linker: registered.GroupOrDie("").SelfLinker, + Linker: kapi.Registry.GroupOrDie("").SelfLinker, Admit: c.AdmissionControl, Context: c.getRequestContextMapper(), - SubresourceGroupVersionKind: map[string]unversioned.GroupVersionKind{}, + SubresourceGroupVersionKind: map[string]schema.GroupVersionKind{}, } } // apiLegacyV1 returns the resources and codec for API version v1. -func (c *MasterConfig) apiLegacyV1(all map[string]rest.Storage) *apiserver.APIGroupVersion { +func (c *MasterConfig) apiLegacyV1(all map[string]rest.Storage) *apiendpoints.APIGroupVersion { storage := make(map[string]rest.Storage) for k, v := range all { if excludedV1Types.Has(k) { @@ -1071,9 +1075,9 @@ func (c *MasterConfig) apiLegacyV1(all map[string]rest.Storage) *apiserver.APIGr } // getRequestContextMapper returns a mapper from requests to contexts, initializing it if needed -func (c *MasterConfig) getRequestContextMapper() kapi.RequestContextMapper { +func (c *MasterConfig) getRequestContextMapper() apirequest.RequestContextMapper { if c.RequestContextMapper == nil { - c.RequestContextMapper = kapi.NewRequestContextMapper() + c.RequestContextMapper = apirequest.NewRequestContextMapper() } return c.RequestContextMapper } @@ -1108,8 +1112,12 @@ type clientDeploymentInterface struct { } // GetDeployment returns the deployment with the provided context and name -func (c clientDeploymentInterface) GetDeployment(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { - return c.KubeClient.Core().ReplicationControllers(kapi.NamespaceValue(ctx)).Get(name) +func (c clientDeploymentInterface) GetDeployment(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { + opts := metav1.GetOptions{} + if options != nil { + opts = *options + } + return c.KubeClient.Core().ReplicationControllers(apirequest.NamespaceValue(ctx)).Get(name, opts) } func WithPatternsHandler(handler http.Handler, patternHandler http.Handler, patterns ...string) http.Handler { diff --git a/pkg/cmd/server/origin/master_config.go b/pkg/cmd/server/origin/master_config.go index bff82cb73457..422f0abf20f2 100644 --- a/pkg/cmd/server/origin/master_config.go +++ b/pkg/cmd/server/origin/master_config.go @@ -13,31 +13,36 @@ import ( etcdclient "github.com/coreos/etcd/client" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + kutilrand "k8s.io/apimachinery/pkg/util/rand" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/request/headerrequest" + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" + "k8s.io/apiserver/pkg/authorization/union" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apiserver/request" - "k8s.io/kubernetes/pkg/auth/authenticator" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/auth/group" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/controller/informers" + kinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions" + kinternalinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" sacontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/serviceaccount" - kutilrand "k8s.io/kubernetes/pkg/util/rand" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/plugin/pkg/admission/namespace/lifecycle" saadmit "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" storageclassdefaultadmission "k8s.io/kubernetes/plugin/pkg/admission/storageclass/default" - "k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/headerrequest" - "k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/union" "github.com/openshift/origin/pkg/auth/authenticator/anonymous" "github.com/openshift/origin/pkg/auth/authenticator/request/bearertoken" @@ -104,7 +109,7 @@ type MasterConfig struct { Authorizer kauthorizer.Authorizer SubjectLocator authorizer.SubjectLocator - // TODO(sttts): replace AuthorizationAttributeBuilder with kapiserverfilters.NewRequestAttributeGetter + // TODO(sttts): replace AuthorizationAttributeBuilder with apiserverfilters.NewRequestAttributeGetter AuthorizationAttributeBuilder authorizer.AuthorizationAttributeBuilder GroupCache *usercache.GroupCache @@ -114,7 +119,7 @@ type MasterConfig struct { LimitVerifier imageadmission.LimitVerifier // RequestContextMapper maps requests to contexts - RequestContextMapper kapi.RequestContextMapper + RequestContextMapper apirequest.RequestContextMapper AdmissionControl admission.Interface @@ -207,13 +212,13 @@ func BuildMasterConfig(options configapi.MasterConfig) (*MasterConfig, error) { imageTemplate.Latest = options.ImageConfig.Latest defaultRegistry := env("OPENSHIFT_DEFAULT_REGISTRY", "${DOCKER_REGISTRY_SERVICE_HOST}:${DOCKER_REGISTRY_SERVICE_PORT}") - svcCache := service.NewServiceResolverCache(privilegedLoopbackKubeClientset.Services(kapi.NamespaceDefault).Get) + svcCache := service.NewServiceResolverCache(privilegedLoopbackKubeClientset.Services(metav1.NamespaceDefault).Get) defaultRegistryFunc, err := svcCache.Defer(defaultRegistry) if err != nil { return nil, fmt.Errorf("OPENSHIFT_DEFAULT_REGISTRY variable is invalid %q: %v", defaultRegistry, err) } - requestContextMapper := kapi.NewRequestContextMapper() + requestContextMapper := apirequest.NewRequestContextMapper() groupStorage, err := groupstorage.NewREST(restOptsGetter) if err != nil { @@ -249,7 +254,7 @@ func BuildMasterConfig(options configapi.MasterConfig) (*MasterConfig, error) { // TODO if we want to support WantsAuthorizer, we need to pass in a kube // Authorizer as the 2nd arg. It's currently only used by PSP. - kubePluginInitializer := admission.NewPluginInitializer(kubeInformerFactory, nil) + kubePluginInitializer := kadmission.NewPluginInitializer(kubeInformerFactory, nil, nil, nil) originAdmission, kubeAdmission, err := buildAdmissionChains(options, privilegedLoopbackKubeClientset, pluginInitializer, kubePluginInitializer) if err != nil { return nil, err @@ -297,7 +302,7 @@ func BuildMasterConfig(options configapi.MasterConfig) (*MasterConfig, error) { RegistryNameFn: imageapi.DefaultRegistryFunc(defaultRegistryFunc), // TODO: migration of versions of resources stored in annotations must be sorted out - ExternalVersionCodec: kapi.Codecs.LegacyCodec(unversioned.GroupVersion{Group: "", Version: "v1"}), + ExternalVersionCodec: kapi.Codecs.LegacyCodec(schema.GroupVersion{Group: "", Version: "v1"}), KubeletClientConfig: kubeletClientConfig, @@ -311,16 +316,16 @@ func BuildMasterConfig(options configapi.MasterConfig) (*MasterConfig, error) { } // ensure that the limit range informer will be started - informer := config.Informers.KubernetesInformers().LimitRanges().Informer() - config.LimitVerifier = imageadmission.NewLimitVerifier(imageadmission.LimitRangesForNamespaceFunc(func(ns string) ([]*kapi.LimitRange, error) { - list, err := config.Informers.KubernetesInformers().LimitRanges().Lister().LimitRanges(ns).List(labels.Everything()) + informer := config.Informers.KubernetesInformers().Core().V1().LimitRanges().Informer() + config.LimitVerifier = imageadmission.NewLimitVerifier(imageadmission.LimitRangesForNamespaceFunc(func(ns string) ([]*kapiv1.LimitRange, error) { + list, err := config.Informers.KubernetesInformers().Core().V1().LimitRanges().Lister().LimitRanges(ns).List(labels.Everything()) if err != nil { return nil, err } // the verifier must return an error if len(list) == 0 && len(informer.LastSyncResourceVersion()) == 0 { glog.V(4).Infof("LimitVerifier still waiting for ranges to load: %#v", informer) - forbiddenErr := kapierrors.NewForbidden(unversioned.GroupResource{Resource: "limitranges"}, "", fmt.Errorf("the server is still loading limit information")) + forbiddenErr := kapierrors.NewForbidden(schema.GroupResource{Resource: "limitranges"}, "", fmt.Errorf("the server is still loading limit information")) forbiddenErr.ErrStatus.Details.RetryAfterSeconds = 1 return nil, forbiddenErr } @@ -504,7 +509,7 @@ func newAdmissionChain(pluginNames []string, admissionConfigFilename string, plu switch pluginName { case lifecycle.PluginName: // We need to include our infrastructure and shared resource namespaces in the immortal namespaces list - immortalNamespaces := sets.NewString(kapi.NamespaceDefault) + immortalNamespaces := sets.NewString(metav1.NamespaceDefault) if len(options.PolicyConfig.OpenShiftSharedResourcesNamespace) > 0 { immortalNamespaces.Insert(options.PolicyConfig.OpenShiftSharedResourcesNamespace) } @@ -732,7 +737,7 @@ func addAuthorizationListerWatchers(customListerWatchers shared.DefaultListerWat } func newClusterPolicyLW(optsGetter restoptions.Getter) (cache.ListerWatcher, error) { - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) storage, err := clusterpolicyetcd.NewREST(optsGetter) if err != nil { @@ -741,17 +746,17 @@ func newClusterPolicyLW(optsGetter restoptions.Getter) (cache.ListerWatcher, err registry := clusterpolicyregistry.NewRegistry(storage) return &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return registry.ListClusterPolicies(ctx, &options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return registry.WatchClusterPolicies(ctx, &options) }, }, nil } func newClusterPolicyBindingLW(optsGetter restoptions.Getter) (cache.ListerWatcher, error) { - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) storage, err := clusterpolicybindingetcd.NewREST(optsGetter) if err != nil { @@ -760,17 +765,17 @@ func newClusterPolicyBindingLW(optsGetter restoptions.Getter) (cache.ListerWatch registry := clusterpolicybindingregistry.NewRegistry(storage) return &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return registry.ListClusterPolicyBindings(ctx, &options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return registry.WatchClusterPolicyBindings(ctx, &options) }, }, nil } func newPolicyLW(optsGetter restoptions.Getter) (cache.ListerWatcher, error) { - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) storage, err := policyetcd.NewREST(optsGetter) if err != nil { @@ -779,17 +784,17 @@ func newPolicyLW(optsGetter restoptions.Getter) (cache.ListerWatcher, error) { registry := policyregistry.NewRegistry(storage) return &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return registry.ListPolicies(ctx, &options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return registry.WatchPolicies(ctx, &options) }, }, nil } func newPolicyBindingLW(optsGetter restoptions.Getter) (cache.ListerWatcher, error) { - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) storage, err := policybindingetcd.NewREST(optsGetter) if err != nil { @@ -798,10 +803,10 @@ func newPolicyBindingLW(optsGetter restoptions.Getter) (cache.ListerWatcher, err registry := policybindingregistry.NewRegistry(storage) return &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return registry.ListPolicyBindings(ctx, &options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return registry.WatchPolicyBindings(ctx, &options) }, }, nil @@ -814,9 +819,9 @@ func newAuthorizer(ruleResolver rulevalidation.AuthorizationRuleResolver, inform return scopeLimitedAuthorizer, subjectLocator } -func newAuthorizationAttributeBuilder(requestContextMapper kapi.RequestContextMapper) authorizer.AuthorizationAttributeBuilder { +func newAuthorizationAttributeBuilder(requestContextMapper apirequest.RequestContextMapper) authorizer.AuthorizationAttributeBuilder { // Default API request info factory - requestInfoFactory := &request.RequestInfoFactory{APIPrefixes: sets.NewString("api", "osapi", "oapi", "apis"), GrouplessAPIPrefixes: sets.NewString("api", "osapi", "oapi")} + requestInfoFactory := &apirequest.RequestInfoFactory{APIPrefixes: sets.NewString("api", "osapi", "oapi", "apis"), GrouplessAPIPrefixes: sets.NewString("api", "osapi", "oapi")} // Wrap with a request info factory that detects unsafe requests and modifies verbs/resources appropriately so policy can address them separately browserSafeRequestInfoResolver := authorizer.NewBrowserSafeRequestInfoResolver( requestContextMapper, diff --git a/pkg/cmd/server/origin/master_test.go b/pkg/cmd/server/origin/master_test.go index 1a6de214ad3b..19031010c6a4 100644 --- a/pkg/cmd/server/origin/master_test.go +++ b/pkg/cmd/server/origin/master_test.go @@ -6,7 +6,7 @@ import ( "github.com/emicklei/go-restful" - "k8s.io/kubernetes/pkg/genericapiserver/mux" + "k8s.io/apiserver/pkg/server/mux" "github.com/openshift/origin/pkg/cmd/server/api" ) diff --git a/pkg/cmd/server/origin/rest/storage_options.go b/pkg/cmd/server/origin/rest/storage_options.go index 0604ff8f4c83..84fb3aa0406c 100644 --- a/pkg/cmd/server/origin/rest/storage_options.go +++ b/pkg/cmd/server/origin/rest/storage_options.go @@ -1,8 +1,8 @@ package rest import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/genericapiserver" + "k8s.io/apimachinery/pkg/runtime/schema" + serverstorage "k8s.io/apiserver/pkg/server/storage" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/util/restoptions" @@ -13,8 +13,8 @@ import ( func StorageOptions(options configapi.MasterConfig) restoptions.Getter { return restoptions.NewConfigGetter( options, - &genericapiserver.ResourceConfig{}, - map[unversioned.GroupResource]string{ + &serverstorage.ResourceConfig{}, + map[schema.GroupResource]string{ {Resource: "clusterpolicies"}: "authorization/cluster/policies", {Resource: "clusterpolicies", Group: "authorization.openshift.io"}: "authorization/cluster/policies", {Resource: "clusterpolicybindings"}: "authorization/cluster/policybindings", @@ -45,7 +45,7 @@ func StorageOptions(options configapi.MasterConfig) restoptions.Getter { {Resource: "netnamespaces"}: "registry/sdnnetnamespaces", {Resource: "netnamespaces", Group: "network.openshift.io"}: "registry/sdnnetnamespaces", }, - map[unversioned.GroupResource]struct{}{ + map[schema.GroupResource]struct{}{ {Resource: "oauthauthorizetokens"}: {}, {Resource: "oauthauthorizetokens", Group: "oauth.openshift.io"}: {}, {Resource: "oauthaccesstokens"}: {}, diff --git a/pkg/cmd/server/origin/reststorage_validation_test.go b/pkg/cmd/server/origin/reststorage_validation_test.go index 7a122def862b..95552d67d402 100644 --- a/pkg/cmd/server/origin/reststorage_validation_test.go +++ b/pkg/cmd/server/origin/reststorage_validation_test.go @@ -5,13 +5,15 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api/rest" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage/storagebackend" extapi "k8s.io/kubernetes/pkg/apis/extensions" + fakeexternal "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/controller/informers" + fakeinternal "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" + kinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions" + kinternalinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - "k8s.io/kubernetes/pkg/storage/storagebackend" _ "github.com/openshift/origin/pkg/api/install" "github.com/openshift/origin/pkg/api/validation" diff --git a/pkg/cmd/server/origin/run_components.go b/pkg/cmd/server/origin/run_components.go index 4481886d1f41..f83e5e0b5bb9 100644 --- a/pkg/cmd/server/origin/run_components.go +++ b/pkg/cmd/server/origin/run_components.go @@ -9,22 +9,23 @@ import ( "github.com/golang/glog" - deployclient "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" + deployclient "github.com/openshift/origin/pkg/deploy/clientset/internalclientset/typed/deploy/internalversion" + "k8s.io/apimachinery/pkg/runtime/schema" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/admission" + "k8s.io/client-go/util/cert" + "k8s.io/client-go/util/flowcontrol" kctrlmgr "k8s.io/kubernetes/cmd/kube-controller-manager/app" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" - "k8s.io/kubernetes/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller" kresourcequota "k8s.io/kubernetes/pkg/controller/resourcequota" sacontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" "k8s.io/kubernetes/pkg/registry/core/service/allocator" - etcdallocator "k8s.io/kubernetes/pkg/registry/core/service/allocator/etcd" + etcdallocator "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage" "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/cert" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilwait "k8s.io/kubernetes/pkg/util/wait" serviceaccountadmission "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" builddefaults "github.com/openshift/origin/pkg/build/admission/defaults" @@ -98,7 +99,7 @@ func (c *MasterConfig) RunServiceAccountsController() { return } options := sacontroller.DefaultServiceAccountsControllerOptions() - options.ServiceAccounts = []kapi.ServiceAccount{} + options.ServiceAccounts = []kapiv1.ServiceAccount{} for _, saName := range c.Options.ServiceAccountConfig.ManagedNames { sa := kapi.ServiceAccount{} @@ -108,7 +109,7 @@ func (c *MasterConfig) RunServiceAccountsController() { } //REBASE: add new args to NewServiceAccountsController - go sacontroller.NewServiceAccountsController(c.Informers.KubernetesInformers().ServiceAccounts(), c.Informers.KubernetesInformers().Namespaces(), c.KubeClientset(), options).Run(1, utilwait.NeverStop) + go sacontroller.NewServiceAccountsController(c.Informers.KubernetesInformers().Core().V1().ServiceAccounts(), c.Informers.KubernetesInformers().Core().V1().Namespaces(), c.KubeClientset(), options).Run(1, utilwait.NeverStop) } // RunServiceAccountTokensController starts the service account token controller @@ -239,10 +240,13 @@ func (c *MasterConfig) RunBuildController(informers shared.InformerFactory) erro stiImage := c.ImageFor("sti-builder") storageVersion := c.Options.EtcdStorageConfig.OpenShiftStorageVersion - groupVersion := unversioned.GroupVersion{Group: "", Version: storageVersion} + groupVersion := schema.GroupVersion{Group: "", Version: storageVersion} codec := kapi.Codecs.LegacyCodec(groupVersion) - admissionControl := admission.InitPlugin("SecurityContextConstraint", c.KubeClientset(), "") + admissionControl, err := admission.InitPlugin("SecurityContextConstraint", c.KubeClientset(), "") + if err != nil { + return err + } if wantsInformers, ok := admissionControl.(cmdadmission.WantsInformers); ok { wantsInformers.SetInformers(informers) } @@ -324,11 +328,11 @@ func (c *MasterConfig) RunBuildConfigChangeController() { // RunDeploymentController starts the deployment controller process. func (c *MasterConfig) RunDeploymentController() { - rcInformer := c.Informers.ReplicationControllers().Informer() - podInformer := c.Informers.KubernetesInformers().Pods().Informer() + rcInformer := c.Informers.KubernetesInformers().Core().V1().ReplicationControllers().Informer() + podInformer := c.Informers.KubernetesInformers().Core().V1().Pods().Informer() _, kclient := c.DeploymentControllerClients() - _, kclientConfig, err := configapi.GetKubeClient(c.Options.MasterClients.OpenShiftLoopbackKubeConfig, c.Options.MasterClients.OpenShiftLoopbackClientConnectionOverrides) + _, kclientConfig, err := configapi.GetInternalKubeClient(c.Options.MasterClients.OpenShiftLoopbackKubeConfig, c.Options.MasterClients.OpenShiftLoopbackClientConnectionOverrides) if err != nil { glog.Fatalf("Unable to initialize deployment controller: %v", err) } @@ -355,8 +359,8 @@ func (c *MasterConfig) RunDeploymentController() { // RunDeploymentConfigController starts the deployment config controller process. func (c *MasterConfig) RunDeploymentConfigController() { dcInfomer := c.Informers.DeploymentConfigs().Informer() - rcInformer := c.Informers.ReplicationControllers().Informer() - podInformer := c.Informers.KubernetesInformers().Pods().Informer() + rcInformer := c.Informers.KubernetesInformers().Core().V1().ReplicationControllers().Informer() + podInformer := c.Informers.KubernetesInformers().Core().V1().Pods().Informer() osclient, kclient := c.DeploymentConfigControllerClients() controller := deployconfigcontroller.NewDeploymentConfigController(dcInfomer, rcInformer, podInformer, osclient, kclient, c.ExternalVersionCodec) @@ -366,7 +370,7 @@ func (c *MasterConfig) RunDeploymentConfigController() { // RunDeploymentTriggerController starts the deployment trigger controller process. func (c *MasterConfig) RunDeploymentTriggerController() { dcInfomer := c.Informers.DeploymentConfigs().Informer() - rcInformer := c.Informers.ReplicationControllers().Informer() + rcInformer := c.Informers.KubernetesInformers().Core().V1().ReplicationControllers().Informer() streamInformer := c.Informers.ImageStreams().Informer() osclient := c.DeploymentTriggerControllerClient() @@ -441,7 +445,7 @@ func (c *MasterConfig) RunSecurityAllocationController() { glog.Fatalf("Unable to describe UID range: %v", err) } - opts, err := c.RESTOptionsGetter.GetRESTOptions(unversioned.GroupResource{Resource: "securityuidranges"}) + opts, err := c.RESTOptionsGetter.GetRESTOptions(schema.GroupResource{Resource: "securityuidranges"}) if err != nil { glog.Fatalf("Unable to load storage options for security UID ranges") } diff --git a/pkg/cmd/server/start/admission.go b/pkg/cmd/server/start/admission.go index 2085645baf1f..16fc2a8f197e 100644 --- a/pkg/cmd/server/start/admission.go +++ b/pkg/cmd/server/start/admission.go @@ -5,8 +5,8 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" // Admission control plug-ins used by OpenShift _ "github.com/openshift/origin/pkg/authorization/admission/restrictusers" diff --git a/pkg/cmd/server/start/admission_sync_test.go b/pkg/cmd/server/start/admission_sync_test.go index 5d177b7c27f0..11f5cb74404f 100644 --- a/pkg/cmd/server/start/admission_sync_test.go +++ b/pkg/cmd/server/start/admission_sync_test.go @@ -7,8 +7,8 @@ import ( // it causes all the admission plugins to be registered, giving us a full listing. _ "k8s.io/kubernetes/cmd/kube-apiserver/app" - "k8s.io/kubernetes/pkg/admission" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" "github.com/openshift/origin/pkg/cmd/server/origin" imageadmission "github.com/openshift/origin/pkg/image/admission" diff --git a/pkg/cmd/server/start/bootstrap_node.go b/pkg/cmd/server/start/bootstrap_node.go index 75b709a3e99a..65056423fdfb 100644 --- a/pkg/cmd/server/start/bootstrap_node.go +++ b/pkg/cmd/server/start/bootstrap_node.go @@ -11,16 +11,17 @@ import ( "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + utilcert "k8s.io/client-go/util/cert" "k8s.io/kubernetes/pkg/apis/certificates" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - utilcert "k8s.io/kubernetes/pkg/util/cert" - "k8s.io/kubernetes/pkg/util/wait" "crypto/rsa" + configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest" "github.com/openshift/origin/pkg/cmd/server/crypto" ) @@ -83,7 +84,7 @@ func (o NodeOptions) loadBootstrapClientCertificate(nodeConfigDir string, c kcli } signingRequest := &certificates.CertificateSigningRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("node-bootstrapper-client-%s", safeSecretName(o.NodeArgs.NodeName)), }, Spec: certificates.CertificateSigningRequestSpec{ @@ -97,7 +98,7 @@ func (o NodeOptions) loadBootstrapClientCertificate(nodeConfigDir string, c kcli return nil, err } glog.V(3).Infof("Bootstrap client certificate already exists at %s", signingRequest.Name) - csr, err = c.Certificates().CertificateSigningRequests().Get(signingRequest.Name) + csr, err = c.Certificates().CertificateSigningRequests().Get(signingRequest.Name, metav1.GetOptions{}) if err != nil { return nil, err } @@ -115,7 +116,7 @@ func (o NodeOptions) loadBootstrapClientCertificate(nodeConfigDir string, c kcli glog.V(2).Infof("Bootstrap client cert approved") return true, nil } - csr, err = c.Certificates().CertificateSigningRequests().Get(csr.Name) + csr, err = c.Certificates().CertificateSigningRequests().Get(csr.Name, metav1.GetOptions{}) return false, err }) if err != nil { @@ -193,7 +194,7 @@ func (o NodeOptions) loadBootstrapServerCertificate(nodeConfigDir string, hostna } signingRequest := &certificates.CertificateSigningRequest{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("node-bootstrapper-server-%s", safeSecretName(o.NodeArgs.NodeName)), }, Spec: certificates.CertificateSigningRequestSpec{ @@ -207,7 +208,7 @@ func (o NodeOptions) loadBootstrapServerCertificate(nodeConfigDir string, hostna return err } glog.V(3).Infof("Bootstrap server certificate already exists at %s", signingRequest.Name) - csr, err = c.Certificates().CertificateSigningRequests().Get(signingRequest.Name) + csr, err = c.Certificates().CertificateSigningRequests().Get(signingRequest.Name, metav1.GetOptions{}) if err != nil { return err } @@ -225,7 +226,7 @@ func (o NodeOptions) loadBootstrapServerCertificate(nodeConfigDir string, hostna glog.V(2).Infof("Bootstrap serving cert approved") return true, nil } - csr, err = c.Certificates().CertificateSigningRequests().Get(csr.Name) + csr, err = c.Certificates().CertificateSigningRequests().Get(csr.Name, metav1.GetOptions{}) return false, err }) if err != nil { @@ -281,7 +282,7 @@ func (o NodeOptions) loadBootstrap(hostnames []string, nodeConfigDir string) err // try to refresh the latest node-config.yaml o.ConfigFile = filepath.Join(nodeConfigDir, "node-config.yaml") - config, err := c.Core().ConfigMaps("openshift-infra").Get("node-config") + config, err := c.Core().ConfigMaps("openshift-infra").Get("node-config", metav1.GetOptions{}) if err == nil { // skip all the config we generated ourselves skipConfig := map[string]struct{}{"server.crt": {}, "server.key": {}, "master-client.crt": {}, "master-client.key": {}, "node.kubeconfig": {}} diff --git a/pkg/cmd/server/start/config_test.go b/pkg/cmd/server/start/config_test.go index 2c29b32319ec..067298fac897 100644 --- a/pkg/cmd/server/start/config_test.go +++ b/pkg/cmd/server/start/config_test.go @@ -5,8 +5,8 @@ import ( "testing" "github.com/openshift/origin/pkg/cmd/util" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) func TestMasterURLNoPathAllowed(t *testing.T) { diff --git a/pkg/cmd/server/start/kube_connection_args.go b/pkg/cmd/server/start/kube_connection_args.go index acf4c39120ca..1869258290dc 100644 --- a/pkg/cmd/server/start/kube_connection_args.go +++ b/pkg/cmd/server/start/kube_connection_args.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "github.com/openshift/origin/pkg/cmd/flagtypes" ) diff --git a/pkg/cmd/server/start/kubernetes/apiserver.go b/pkg/cmd/server/start/kubernetes/apiserver.go index 954f6a950090..a99c612a3c08 100644 --- a/pkg/cmd/server/start/kubernetes/apiserver.go +++ b/pkg/cmd/server/start/kubernetes/apiserver.go @@ -7,9 +7,9 @@ import ( "github.com/spf13/cobra" + kflag "k8s.io/apiserver/pkg/util/flag" apiserverapp "k8s.io/kubernetes/cmd/kube-apiserver/app" apiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - kflag "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" ) diff --git a/pkg/cmd/server/start/kubernetes/kubelet.go b/pkg/cmd/server/start/kubernetes/kubelet.go index d24214b0369a..5cdb52c01b85 100644 --- a/pkg/cmd/server/start/kubernetes/kubelet.go +++ b/pkg/cmd/server/start/kubernetes/kubelet.go @@ -7,9 +7,9 @@ import ( "github.com/spf13/cobra" + kflag "k8s.io/apiserver/pkg/util/flag" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" kubeletoptions "k8s.io/kubernetes/cmd/kubelet/app/options" - kflag "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" ) diff --git a/pkg/cmd/server/start/kubernetes/proxy.go b/pkg/cmd/server/start/kubernetes/proxy.go index 753449de4ec5..c226a787a202 100644 --- a/pkg/cmd/server/start/kubernetes/proxy.go +++ b/pkg/cmd/server/start/kubernetes/proxy.go @@ -7,10 +7,10 @@ import ( "github.com/spf13/cobra" + kflag "k8s.io/apiserver/pkg/util/flag" proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app" proxyoptions "k8s.io/kubernetes/cmd/kube-proxy/app/options" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - kflag "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" ) diff --git a/pkg/cmd/server/start/kubernetes/scheduler.go b/pkg/cmd/server/start/kubernetes/scheduler.go index e49e01d2bcf5..afac9b696db8 100644 --- a/pkg/cmd/server/start/kubernetes/scheduler.go +++ b/pkg/cmd/server/start/kubernetes/scheduler.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" - kflag "k8s.io/kubernetes/pkg/util/flag" + kflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" schedulerapp "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" scheduleroptions "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" diff --git a/pkg/cmd/server/start/master_args.go b/pkg/cmd/server/start/master_args.go index 906ce347decb..aea9487b2fdf 100644 --- a/pkg/cmd/server/start/master_args.go +++ b/pkg/cmd/server/start/master_args.go @@ -9,14 +9,14 @@ import ( "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/apiserver/pkg/util/flag" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flag" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/yaml" "github.com/openshift/origin/pkg/bootstrap" "github.com/openshift/origin/pkg/cmd/flagtypes" @@ -692,7 +692,7 @@ func getPort(theURL url.URL) int { } // applyDefaults roundtrips the config to v1 and back to ensure proper defaults are set. -func applyDefaults(config runtime.Object, version unversioned.GroupVersion) (runtime.Object, error) { +func applyDefaults(config runtime.Object, version schema.GroupVersion) (runtime.Object, error) { ext, err := configapi.Scheme.ConvertToVersion(config, version) if err != nil { return nil, err diff --git a/pkg/cmd/server/start/node_args.go b/pkg/cmd/server/start/node_args.go index 614f78886c5a..da987962b7d1 100644 --- a/pkg/cmd/server/start/node_args.go +++ b/pkg/cmd/server/start/node_args.go @@ -13,9 +13,9 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/pkg/master/ports" - "k8s.io/kubernetes/pkg/util/flag" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/cmd/server/admin" configapi "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/pkg/cmd/server/start/start_allinone.go b/pkg/cmd/server/start/start_allinone.go index e6c71bb3ffa6..8588e1298b64 100644 --- a/pkg/cmd/server/start/start_allinone.go +++ b/pkg/cmd/server/start/start_allinone.go @@ -17,9 +17,9 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apiserver/pkg/util/flag" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/flag" "github.com/openshift/origin/pkg/cmd/server/admin" configapi "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/pkg/cmd/server/start/start_api.go b/pkg/cmd/server/start/start_api.go index 540b988b654f..604a4d7b9b0c 100644 --- a/pkg/cmd/server/start/start_api.go +++ b/pkg/cmd/server/start/start_api.go @@ -9,7 +9,7 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/cmd/flagtypes" diff --git a/pkg/cmd/server/start/start_controllers.go b/pkg/cmd/server/start/start_controllers.go index 6c5861136705..cdc904517856 100644 --- a/pkg/cmd/server/start/start_controllers.go +++ b/pkg/cmd/server/start/start_controllers.go @@ -8,7 +8,7 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/cmd/flagtypes" diff --git a/pkg/cmd/server/start/start_etcd.go b/pkg/cmd/server/start/start_etcd.go index 2bbcd2c66b95..085cd9b51a2f 100644 --- a/pkg/cmd/server/start/start_etcd.go +++ b/pkg/cmd/server/start/start_etcd.go @@ -10,9 +10,9 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/validation/field" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/validation/field" configapi "github.com/openshift/origin/pkg/cmd/server/api" configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest" diff --git a/pkg/cmd/server/start/start_master.go b/pkg/cmd/server/start/start_master.go index 8913fa983001..c273876fe0cc 100644 --- a/pkg/cmd/server/start/start_master.go +++ b/pkg/cmd/server/start/start_master.go @@ -15,20 +15,20 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/dynamic" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" + kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/capabilities" - "k8s.io/kubernetes/pkg/client/typed/dynamic" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" - utilwait "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/cmd/server/admin" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -607,7 +607,7 @@ func startControllers(oc *origin.MasterConfig, kc *kubernetes.MasterConfig) erro // TODO there has to be a better way to do this! // Make a copy of the client config because we need to modify it jobClientConfig := oc.PrivilegedLoopbackClientConfig - jobClientConfig.ContentConfig.GroupVersion = &unversioned.GroupVersion{Group: "batch", Version: "v2alpha1"} + jobClientConfig.ContentConfig.GroupVersion = &schema.GroupVersion{Group: "batch", Version: "v2alpha1"} _, _, jobClient, err := oc.GetServiceAccountClientsWithConfig(bootstrappolicy.InfraJobControllerServiceAccountName, jobClientConfig) if err != nil { glog.Fatalf("Could not get client for job controller: %v", err) @@ -663,7 +663,7 @@ func startControllers(oc *origin.MasterConfig, kc *kubernetes.MasterConfig) erro glog.Fatalf("Could not get client for namespace controller: %v", err) } // TODO: should use a dynamic RESTMapper built from the discovery results. - restMapper := registered.RESTMapper() + restMapper := kapi.Registry.RESTMapper() namespaceControllerClientPool := dynamic.NewClientPool(namespaceControllerClientConfig, restMapper, dynamic.LegacyAPIPathResolverFunc) _, _, endpointControllerClient, err := oc.GetServiceAccountClients(bootstrappolicy.InfraEndpointControllerServiceAccountName) diff --git a/pkg/cmd/server/start/start_node.go b/pkg/cmd/server/start/start_node.go index 280d984f5a68..f48db81d3aa5 100644 --- a/pkg/cmd/server/start/start_node.go +++ b/pkg/cmd/server/start/start_node.go @@ -12,7 +12,7 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "github.com/openshift/origin/pkg/cmd/server/admin" diff --git a/pkg/cmd/util/clientcmd/clientcmd.go b/pkg/cmd/util/clientcmd/clientcmd.go index 70be673fcfc2..5c58cb624546 100644 --- a/pkg/cmd/util/clientcmd/clientcmd.go +++ b/pkg/cmd/util/clientcmd/clientcmd.go @@ -7,10 +7,10 @@ import ( "github.com/golang/glog" "github.com/spf13/pflag" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" osclient "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/flagtypes" @@ -57,11 +57,11 @@ func AnonymousClientConfig(config *restclient.Config) restclient.Config { Prefix: config.Prefix, ContentConfig: config.ContentConfig, TLSClientConfig: restclient.TLSClientConfig{ - CAFile: config.TLSClientConfig.CAFile, - CAData: config.TLSClientConfig.CAData, + CAFile: config.TLSClientConfig.CAFile, + CAData: config.TLSClientConfig.CAData, + Insecure: config.Insecure, }, RateLimiter: config.RateLimiter, - Insecure: config.Insecure, UserAgent: config.UserAgent, Transport: config.Transport, WrapTransport: config.WrapTransport, diff --git a/pkg/cmd/util/clientcmd/clientcmd_test.go b/pkg/cmd/util/clientcmd/clientcmd_test.go index 41f2d913c65f..46bd97b40987 100644 --- a/pkg/cmd/util/clientcmd/clientcmd_test.go +++ b/pkg/cmd/util/clientcmd/clientcmd_test.go @@ -8,12 +8,12 @@ import ( fuzz "github.com/google/gofuzz" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/flowcontrol" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/util/flowcontrol" ) type fakeLimiter struct { @@ -39,7 +39,7 @@ func (t *fakeLimiter) Accept() {} type fakeCodec struct{} -func (c *fakeCodec) Decode([]byte, *unversioned.GroupVersionKind, runtime.Object) (runtime.Object, *unversioned.GroupVersionKind, error) { +func (c *fakeCodec) Decode([]byte, *schema.GroupVersionKind, runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) { return nil, nil, nil } diff --git a/pkg/cmd/util/clientcmd/errors.go b/pkg/cmd/util/clientcmd/errors.go index 6d75e75ea7d7..0263c1c35c06 100644 --- a/pkg/cmd/util/clientcmd/errors.go +++ b/pkg/cmd/util/clientcmd/errors.go @@ -6,8 +6,8 @@ import ( "fmt" "strings" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/client-go/tools/clientcmd" ) const ( diff --git a/pkg/cmd/util/clientcmd/factory.go b/pkg/cmd/util/clientcmd/factory.go index 6609b353b4cb..d57e6682c954 100644 --- a/pkg/cmd/util/clientcmd/factory.go +++ b/pkg/cmd/util/clientcmd/factory.go @@ -10,19 +10,21 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" + kclientcmd "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/typed/discovery" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" "k8s.io/kubernetes/pkg/controller" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/cmd/util" @@ -186,14 +188,14 @@ func (f *Factory) ApproximatePodTemplateForObject(object runtime.Object) (*api.P } latestDeploymentName := deployutil.LatestDeploymentNameForConfig(t) - deployment, err := kc.Core().ReplicationControllers(t.Namespace).Get(latestDeploymentName) + deployment, err := kc.Core().ReplicationControllers(t.Namespace).Get(latestDeploymentName, metav1.GetOptions{}) if err != nil { return fallback, err } fallback = deployment.Spec.Template - pods, err := kc.Core().Pods(deployment.Namespace).List(api.ListOptions{LabelSelector: labels.SelectorFromSet(deployment.Spec.Selector)}) + pods, err := kc.Core().Pods(deployment.Namespace).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(deployment.Spec.Selector).String()}) if err != nil { return fallback, err } @@ -232,7 +234,7 @@ func (f *Factory) ApproximatePodTemplateForObject(object runtime.Object) (*api.P } func (f *Factory) PodForResource(resource string, timeout time.Duration) (string, error) { - sortBy := func(pods []*api.Pod) sort.Interface { return sort.Reverse(controller.ActivePods(pods)) } + sortBy := func(pods []*v1.Pod) sort.Interface { return sort.Reverse(controller.ActivePods(pods)) } namespace, _, err := f.DefaultNamespace() if err != nil { return "", err @@ -251,12 +253,12 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - rc, err := kc.Core().ReplicationControllers(namespace).Get(name) + rc, err := kc.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } selector := labels.SelectorFromSet(rc.Spec.Selector) - pod, _, err := kcmdutil.GetFirstPod(kc, namespace, selector, timeout, sortBy) + pod, _, err := kcmdutil.GetFirstPod(kc.Core(), namespace, selector, timeout, sortBy) if err != nil { return "", err } @@ -266,7 +268,7 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - dc, err := oc.DeploymentConfigs(namespace).Get(name) + dc, err := oc.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -281,15 +283,15 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - ds, err := kc.Extensions().DaemonSets(namespace).Get(name) + ds, err := kc.Extensions().DaemonSets(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } - selector, err := unversioned.LabelSelectorAsSelector(ds.Spec.Selector) + selector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector) if err != nil { return "", err } - pod, _, err := kcmdutil.GetFirstPod(kc, namespace, selector, timeout, sortBy) + pod, _, err := kcmdutil.GetFirstPod(kc.Core(), namespace, selector, timeout, sortBy) if err != nil { return "", err } @@ -299,15 +301,15 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - d, err := kc.Extensions().Deployments(namespace).Get(name) + d, err := kc.Extensions().Deployments(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } - selector, err := unversioned.LabelSelectorAsSelector(d.Spec.Selector) + selector, err := metav1.LabelSelectorAsSelector(d.Spec.Selector) if err != nil { return "", err } - pod, _, err := kcmdutil.GetFirstPod(kc, namespace, selector, timeout, sortBy) + pod, _, err := kcmdutil.GetFirstPod(kc.Core(), namespace, selector, timeout, sortBy) if err != nil { return "", err } @@ -317,15 +319,15 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - rs, err := kc.Extensions().ReplicaSets(namespace).Get(name) + rs, err := kc.Extensions().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } - selector, err := unversioned.LabelSelectorAsSelector(rs.Spec.Selector) + selector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector) if err != nil { return "", err } - pod, _, err := kcmdutil.GetFirstPod(kc, namespace, selector, timeout, sortBy) + pod, _, err := kcmdutil.GetFirstPod(kc.Core(), namespace, selector, timeout, sortBy) if err != nil { return "", err } @@ -336,7 +338,7 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string return "", err } // TODO/REBASE kc.Extensions() doesn't exist any more. Is this ok? - job, err := kc.Batch().Jobs(namespace).Get(name) + job, err := kc.Batch().Jobs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -346,7 +348,7 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string if err != nil { return "", err } - job, err := kc.Batch().Jobs(namespace).Get(name) + job, err := kc.Batch().Jobs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -356,8 +358,8 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string } } -func podNameForJob(job *batch.Job, kc kclientset.Interface, timeout time.Duration, sortBy func(pods []*api.Pod) sort.Interface) (string, error) { - selector, err := unversioned.LabelSelectorAsSelector(job.Spec.Selector) +func podNameForJob(job *batch.Job, kc kclientset.Interface, timeout time.Duration, sortBy func(pods []*v1.Pod) sort.Interface) (string, error) { + selector, err := metav1.LabelSelectorAsSelector(job.Spec.Selector) if err != nil { return "", err } @@ -374,14 +376,14 @@ func podNameForJob(job *batch.Job, kc kclientset.Interface, timeout time.Duratio // represented. // TODO: add a field to APIResources for "virtual" (or that points to the canonical resource). // TODO: fallback to the scheme when discovery is not possible. -func FindAllCanonicalResources(d discovery.DiscoveryInterface, m meta.RESTMapper) ([]unversioned.GroupResource, error) { - set := make(map[unversioned.GroupResource]struct{}) +func FindAllCanonicalResources(d discovery.DiscoveryInterface, m meta.RESTMapper) ([]schema.GroupResource, error) { + set := make(map[schema.GroupResource]struct{}) all, err := d.ServerResources() if err != nil { return nil, err } for apiVersion, v := range all { - gv, err := unversioned.ParseGroupVersion(apiVersion) + gv, err := schema.ParseGroupVersion(apiVersion) if err != nil { continue } @@ -393,14 +395,14 @@ func FindAllCanonicalResources(d discovery.DiscoveryInterface, m meta.RESTMapper // because discovery info doesn't tell us whether the object is virtual or not, perform a lookup // by the kind for resource (which should be the canonical resource) and then verify that the reverse // lookup (KindsFor) does not error. - if mapping, err := m.RESTMapping(unversioned.GroupKind{Group: gv.Group, Kind: r.Kind}, gv.Version); err == nil { + if mapping, err := m.RESTMapping(schema.GroupKind{Group: gv.Group, Kind: r.Kind}, gv.Version); err == nil { if _, err := m.KindsFor(mapping.GroupVersionKind.GroupVersion().WithResource(mapping.Resource)); err == nil { - set[unversioned.GroupResource{Group: mapping.GroupVersionKind.Group, Resource: mapping.Resource}] = struct{}{} + set[schema.GroupResource{Group: mapping.GroupVersionKind.Group, Resource: mapping.Resource}] = struct{}{} } } } } - var groupResources []unversioned.GroupResource + var groupResources []schema.GroupResource for k := range set { groupResources = append(groupResources, k) } @@ -408,7 +410,7 @@ func FindAllCanonicalResources(d discovery.DiscoveryInterface, m meta.RESTMapper return groupResources, nil } -type groupResourcesByName []unversioned.GroupResource +type groupResourcesByName []schema.GroupResource func (g groupResourcesByName) Len() int { return len(g) } func (g groupResourcesByName) Less(i, j int) bool { diff --git a/pkg/cmd/util/clientcmd/factory_client_access.go b/pkg/cmd/util/clientcmd/factory_client_access.go index c886e079259a..c31b46f18aa1 100644 --- a/pkg/cmd/util/clientcmd/factory_client_access.go +++ b/pkg/cmd/util/clientcmd/factory_client_access.go @@ -1,6 +1,7 @@ package clientcmd import ( + "errors" "fmt" "io" "io/ioutil" @@ -15,21 +16,23 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/util/homedir" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/typed/discovery" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/set" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/homedir" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/config" @@ -146,11 +149,11 @@ func (f *ring0Factory) DiscoveryClient() (discovery.CachedDiscoveryInterface, er return f.kubeClientAccessFactory.DiscoveryClient() } -func (f *ring0Factory) ClientSet() (*kclientset.Clientset, error) { +func (f *ring0Factory) ClientSet() (kclientset.Interface, error) { return f.kubeClientAccessFactory.ClientSet() } -func (f *ring0Factory) ClientSetForVersion(requiredVersion *unversioned.GroupVersion) (*kclientset.Clientset, error) { +func (f *ring0Factory) ClientSetForVersion(requiredVersion *schema.GroupVersion) (kclientset.Interface, error) { return f.kubeClientAccessFactory.ClientSetForVersion(requiredVersion) } @@ -158,7 +161,7 @@ func (f *ring0Factory) ClientConfig() (*restclient.Config, error) { return f.kubeClientAccessFactory.ClientConfig() } -func (f *ring0Factory) ClientConfigForVersion(requiredVersion *unversioned.GroupVersion) (*restclient.Config, error) { +func (f *ring0Factory) ClientConfigForVersion(requiredVersion *schema.GroupVersion) (*restclient.Config, error) { return f.kubeClientAccessFactory.ClientConfigForVersion(nil) } @@ -166,11 +169,11 @@ func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) { return f.kubeClientAccessFactory.RESTClient() } -func (f *ring0Factory) FederationClientSetForVersion(version *unversioned.GroupVersion) (fedclientset.Interface, error) { +func (f *ring0Factory) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) { return f.kubeClientAccessFactory.FederationClientSetForVersion(version) } -func (f *ring0Factory) FederationClientForVersion(version *unversioned.GroupVersion) (*restclient.RESTClient, error) { +func (f *ring0Factory) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) { return f.kubeClientAccessFactory.FederationClientForVersion(version) } @@ -243,7 +246,7 @@ func (f *ring0Factory) BindExternalFlags(flags *pflag.FlagSet) { f.kubeClientAccessFactory.BindExternalFlags(flags) } -func (f *ring0Factory) DefaultResourceFilterOptions(cmd *cobra.Command, withNamespace bool) *kubectl.PrintOptions { +func (f *ring0Factory) DefaultResourceFilterOptions(cmd *cobra.Command, withNamespace bool) *kprinters.PrintOptions { return f.kubeClientAccessFactory.DefaultResourceFilterOptions(cmd, withNamespace) } @@ -251,13 +254,13 @@ func (f *ring0Factory) DefaultResourceFilterFunc() kubectl.Filters { return f.kubeClientAccessFactory.DefaultResourceFilterFunc() } -func (f *ring0Factory) SuggestedPodTemplateResources() []unversioned.GroupResource { +func (f *ring0Factory) SuggestedPodTemplateResources() []schema.GroupResource { return f.kubeClientAccessFactory.SuggestedPodTemplateResources() } // Saves current resource name (or alias if any) in PrintOptions. Once saved, it will not be overwritten by the // kubernetes resource alias look-up, as it will notice a non-empty value in `options.Kind` -func (f *ring0Factory) Printer(mapping *meta.RESTMapping, options kubectl.PrintOptions) (kubectl.ResourcePrinter, error) { +func (f *ring0Factory) Printer(mapping *meta.RESTMapping, options kprinters.PrintOptions) (kprinters.ResourcePrinter, error) { if mapping != nil { options.Kind = mapping.Resource if alias, ok := resourceShortFormFor(mapping.Resource); ok { @@ -380,14 +383,14 @@ func (f *ring0Factory) Generators(cmdName string) map[string]kubectl.Generator { return ret } -func (f *ring0Factory) CanBeExposed(kind unversioned.GroupKind) error { +func (f *ring0Factory) CanBeExposed(kind schema.GroupKind) error { if deployapi.IsKindOrLegacy("DeploymentConfig", kind) { return nil } return f.kubeClientAccessFactory.CanBeExposed(kind) } -func (f *ring0Factory) CanBeAutoscaled(kind unversioned.GroupKind) error { +func (f *ring0Factory) CanBeAutoscaled(kind schema.GroupKind) error { if deployapi.IsKindOrLegacy("DeploymentConfig", kind) { return nil } @@ -436,7 +439,7 @@ func (c defaultingClientConfig) Namespace() (string, bool, error) { } } - return kapi.NamespaceDefault, false, nil + return metav1.NamespaceDefault, false, nil } // ConfigAccess implements ClientConfig diff --git a/pkg/cmd/util/clientcmd/factory_object_mapping.go b/pkg/cmd/util/clientcmd/factory_object_mapping.go index 45ebb7a51f14..b4cc2e66382c 100644 --- a/pkg/cmd/util/clientcmd/factory_object_mapping.go +++ b/pkg/cmd/util/clientcmd/factory_object_mapping.go @@ -11,18 +11,22 @@ import ( "github.com/emicklei/go-restful/swagger" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/dynamic" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/typed/dynamic" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" + kprinters "k8s.io/kubernetes/pkg/printers" "github.com/openshift/origin/pkg/api/latest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -99,7 +103,7 @@ func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) ( return f.kubeObjectMappingFactory.UnstructuredClientForMapping(mapping) } -func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (kubectl.Describer, error) { +func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (kprinters.Describer, error) { if latest.OriginKind(mapping.GroupVersionKind) { oClient, kClient, err := f.clientAccessFactory.Clients() if err != nil { @@ -155,7 +159,7 @@ func (f *ring1Factory) LogsForObject(object, options runtime.Object) (*restclien if err != nil { return nil, err } - builds, err := oc.Builds(t.Namespace).List(kapi.ListOptions{}) + builds, err := oc.Builds(t.Namespace).List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -283,7 +287,7 @@ func (f *ring1Factory) AttachablePodForObject(object runtime.Object) (*kapi.Pod, return nil, err } selector := labels.SelectorFromSet(t.Spec.Selector) - f := func(pods []*kapi.Pod) sort.Interface { return sort.Reverse(controller.ActivePods(pods)) } + f := func(pods []*v1.Pod) sort.Interface { return sort.Reverse(controller.ActivePods(pods)) } pod, _, err := kcmdutil.GetFirstPod(kc.Core(), t.Namespace, selector, 1*time.Minute, f) return pod, err default: @@ -336,7 +340,7 @@ func (f *ring1Factory) Validator(validate bool, cacheDir string) (validation.Sch return f.kubeObjectMappingFactory.Validator(validate, cacheDir) } -func (f *ring1Factory) SwaggerSchema(gvk unversioned.GroupVersionKind) (*swagger.ApiDeclaration, error) { +func (f *ring1Factory) SwaggerSchema(gvk schema.GroupVersionKind) (*swagger.ApiDeclaration, error) { if !latest.OriginKind(gvk) { return f.kubeObjectMappingFactory.SwaggerSchema(gvk) } @@ -350,7 +354,7 @@ func (f *ring1Factory) SwaggerSchema(gvk unversioned.GroupVersionKind) (*swagger } // OriginSwaggerSchema returns a swagger API doc for an Origin schema under the /oapi prefix. -func (f *ring1Factory) OriginSwaggerSchema(client *restclient.RESTClient, version unversioned.GroupVersion) (*swagger.ApiDeclaration, error) { +func (f *ring1Factory) OriginSwaggerSchema(client *restclient.RESTClient, version schema.GroupVersion) (*swagger.ApiDeclaration, error) { if version.Empty() { return nil, fmt.Errorf("groupVersion cannot be empty") } diff --git a/pkg/cmd/util/clientcmd/factory_test.go b/pkg/cmd/util/clientcmd/factory_test.go index 20ee0c3fce09..68d7f0b0e8ec 100644 --- a/pkg/cmd/util/clientcmd/factory_test.go +++ b/pkg/cmd/util/clientcmd/factory_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) // TestRunGenerators makes sure we catch new generators added to `oc run` diff --git a/pkg/cmd/util/clientcmd/negotiate.go b/pkg/cmd/util/clientcmd/negotiate.go index db06d92eecdd..345992557a69 100644 --- a/pkg/cmd/util/clientcmd/negotiate.go +++ b/pkg/cmd/util/clientcmd/negotiate.go @@ -5,9 +5,10 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + restclient "k8s.io/client-go/rest" ) // negotiateVersion queries the server's supported api versions to find a version that both client and server support. @@ -16,7 +17,7 @@ import ( // commandline flag), and is unsupported by the server, print a warning to // stderr and try client's registered versions in order of preference. // - If version is config default, and the server does not support it, return an error. -func negotiateVersion(client restclient.Interface, config *restclient.Config, requestedGV *unversioned.GroupVersion, clientGVs []unversioned.GroupVersion) (*unversioned.GroupVersion, error) { +func negotiateVersion(client restclient.Interface, config *restclient.Config, requestedGV *schema.GroupVersion, clientGVs []schema.GroupVersion) (*schema.GroupVersion, error) { // Ensure we have a client var err error if client == nil { @@ -57,26 +58,26 @@ func negotiateVersion(client restclient.Interface, config *restclient.Config, re } // serverAPIVersions fetches the server versions available from the groupless API at the given prefix -func serverAPIVersions(c restclient.Interface, grouplessPrefix string) ([]unversioned.GroupVersion, error) { +func serverAPIVersions(c restclient.Interface, grouplessPrefix string) ([]schema.GroupVersion, error) { // Get versions doc - var v unversioned.APIVersions + var v metav1.APIVersions if err := c.Get().AbsPath(grouplessPrefix).Do().Into(&v); err != nil { - return []unversioned.GroupVersion{}, err + return []schema.GroupVersion{}, err } // Convert to GroupVersion structs - serverAPIVersions := []unversioned.GroupVersion{} + serverAPIVersions := []schema.GroupVersion{} for _, version := range v.Versions { - gv, err := unversioned.ParseGroupVersion(version) + gv, err := schema.ParseGroupVersion(version) if err != nil { - return []unversioned.GroupVersion{}, err + return []schema.GroupVersion{}, err } serverAPIVersions = append(serverAPIVersions, gv) } return serverAPIVersions, nil } -func matchAPIVersion(preferredGV *unversioned.GroupVersion, clientGVs []unversioned.GroupVersion, serverGVs []unversioned.GroupVersion) (*unversioned.GroupVersion, error) { +func matchAPIVersion(preferredGV *schema.GroupVersion, clientGVs []schema.GroupVersion, serverGVs []schema.GroupVersion) (*schema.GroupVersion, error) { // If version explicitly requested verify that both client and server support it. // If server does not support warn, but try to negotiate a lower version. if preferredGV != nil { @@ -97,7 +98,7 @@ func matchAPIVersion(preferredGV *unversioned.GroupVersion, clientGVs []unversio return nil, fmt.Errorf("failed to negotiate an api version; server supports: %v, client supports: %v", serverGVs, clientGVs) } -func copyGroupVersion(version *unversioned.GroupVersion) *unversioned.GroupVersion { +func copyGroupVersion(version *schema.GroupVersion) *schema.GroupVersion { if version == nil { return nil } @@ -105,7 +106,7 @@ func copyGroupVersion(version *unversioned.GroupVersion) *unversioned.GroupVersi return &versionCopy } -func containsGroupVersion(versions []unversioned.GroupVersion, version unversioned.GroupVersion) bool { +func containsGroupVersion(versions []schema.GroupVersion, version schema.GroupVersion) bool { for _, v := range versions { if v == version { return true diff --git a/pkg/cmd/util/clientcmd/shortcut_restmapper.go b/pkg/cmd/util/clientcmd/shortcut_restmapper.go index 6d99796c562c..537cbc41d680 100644 --- a/pkg/cmd/util/clientcmd/shortcut_restmapper.go +++ b/pkg/cmd/util/clientcmd/shortcut_restmapper.go @@ -1,9 +1,9 @@ package clientcmd import ( - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/typed/discovery" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" ) // ShortcutExpander is a RESTMapper that can be used for OpenShift resources. It expands the resource first, then invokes the wrapped @@ -24,9 +24,9 @@ func NewShortcutExpander(discoveryClient discovery.DiscoveryInterface, delegate return defaultMapper } - availableResources := []unversioned.GroupVersionResource{} - for groupVersionString, resourceList := range apiResources { - currVersion, err := unversioned.ParseGroupVersion(groupVersionString) + availableResources := []schema.GroupVersionResource{} + for _, resourceList := range apiResources { + currVersion, err := schema.ParseGroupVersion(resourceList.GroupVersion) if err != nil { return defaultMapper } @@ -49,32 +49,32 @@ func NewShortcutExpander(discoveryClient discovery.DiscoveryInterface, delegate return ShortcutExpander{All: availableAll, RESTMapper: delegate} } -func (e ShortcutExpander) KindFor(resource unversioned.GroupVersionResource) (unversioned.GroupVersionKind, error) { +func (e ShortcutExpander) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { return e.RESTMapper.KindFor(expandResourceShortcut(resource)) } -func (e ShortcutExpander) KindsFor(resource unversioned.GroupVersionResource) ([]unversioned.GroupVersionKind, error) { +func (e ShortcutExpander) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) { return e.RESTMapper.KindsFor(expandResourceShortcut(resource)) } -func (e ShortcutExpander) ResourcesFor(resource unversioned.GroupVersionResource) ([]unversioned.GroupVersionResource, error) { +func (e ShortcutExpander) ResourcesFor(resource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) { return e.RESTMapper.ResourcesFor(expandResourceShortcut(resource)) } -func (e ShortcutExpander) ResourceFor(resource unversioned.GroupVersionResource) (unversioned.GroupVersionResource, error) { +func (e ShortcutExpander) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) { return e.RESTMapper.ResourceFor(expandResourceShortcut(resource)) } func (e ShortcutExpander) ResourceSingularizer(resource string) (string, error) { - return e.RESTMapper.ResourceSingularizer(expandResourceShortcut(unversioned.GroupVersionResource{Resource: resource}).Resource) + return e.RESTMapper.ResourceSingularizer(expandResourceShortcut(schema.GroupVersionResource{Resource: resource}).Resource) } -func (e ShortcutExpander) RESTMapping(gk unversioned.GroupKind, versions ...string) (*meta.RESTMapping, error) { +func (e ShortcutExpander) RESTMapping(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error) { return e.RESTMapper.RESTMapping(gk, versions...) } -func (e ShortcutExpander) RESTMappings(gk unversioned.GroupKind) ([]*meta.RESTMapping, error) { - return e.RESTMapper.RESTMappings(gk) +func (e ShortcutExpander) RESTMappings(gk schema.GroupKind, versions ...string) ([]*meta.RESTMapping, error) { + return e.RESTMapper.RESTMappings(gk, versions...) } // userResources are the resource names that apply to the primary, user facing resources used by @@ -99,7 +99,7 @@ func (e ShortcutExpander) AliasesForResource(resource string) ([]string, bool) { if res, ok := aliases[resource]; ok { return res, true } - return e.RESTMapper.AliasesForResource(expandResourceShortcut(unversioned.GroupVersionResource{Resource: resource}).Resource) + return e.RESTMapper.AliasesForResource(expandResourceShortcut(schema.GroupVersionResource{Resource: resource}).Resource) } // shortForms is the list of short names to their expanded names @@ -118,7 +118,7 @@ var shortForms = map[string]string{ // expandResourceShortcut will return the expanded version of resource // (something that a pkg/api/meta.RESTMapper can understand), if it is // indeed a shortcut. Otherwise, will return resource unmodified. -func expandResourceShortcut(resource unversioned.GroupVersionResource) unversioned.GroupVersionResource { +func expandResourceShortcut(resource schema.GroupVersionResource) schema.GroupVersionResource { if expanded, ok := shortForms[resource.Resource]; ok { resource.Resource = expanded return resource diff --git a/pkg/cmd/util/cmd.go b/pkg/cmd/util/cmd.go index 27042246cf6e..c66b200cac0b 100644 --- a/pkg/cmd/util/cmd.go +++ b/pkg/cmd/util/cmd.go @@ -10,13 +10,12 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/runtime" ) // ErrExit is a marker interface for cli commands indicating that the response has been processed @@ -45,9 +44,9 @@ func GetDisplayFilename(filename string) string { // ResolveResource returns the resource type and name of the resourceString. // If the resource string has no specified type, defaultResource will be returned. -func ResolveResource(defaultResource unversioned.GroupResource, resourceString string, mapper meta.RESTMapper) (unversioned.GroupResource, string, error) { +func ResolveResource(defaultResource schema.GroupResource, resourceString string, mapper meta.RESTMapper) (schema.GroupResource, string, error) { if mapper == nil { - return unversioned.GroupResource{}, "", errors.New("mapper cannot be nil") + return schema.GroupResource{}, "", errors.New("mapper cannot be nil") } var name string @@ -59,24 +58,24 @@ func ResolveResource(defaultResource unversioned.GroupResource, resourceString s name = parts[1] // Allow specifying the group the same way kubectl does, as "resource.group.name" - groupResource := unversioned.ParseGroupResource(parts[0]) + groupResource := schema.ParseGroupResource(parts[0]) // normalize resource case groupResource.Resource = strings.ToLower(groupResource.Resource) gvr, err := mapper.ResourceFor(groupResource.WithVersion("")) if err != nil { - return unversioned.GroupResource{}, "", err + return schema.GroupResource{}, "", err } return gvr.GroupResource(), name, nil default: - return unversioned.GroupResource{}, "", fmt.Errorf("invalid resource format: %s", resourceString) + return schema.GroupResource{}, "", fmt.Errorf("invalid resource format: %s", resourceString) } return defaultResource, name, nil } // convertItemsForDisplay returns a new list that contains parallel elements that have been converted to the most preferred external version -func convertItemsForDisplay(objs []runtime.Object, preferredVersions ...unversioned.GroupVersion) ([]runtime.Object, error) { +func convertItemsForDisplay(objs []runtime.Object, preferredVersions ...schema.GroupVersion) ([]runtime.Object, error) { ret := []runtime.Object{} for i := range objs { @@ -89,14 +88,14 @@ func convertItemsForDisplay(objs []runtime.Object, preferredVersions ...unversio // Gather all groups where the object kind is known. groups := []*apimachinery.GroupMeta{} for _, kind := range kinds { - groupMeta, err := registered.Group(kind.Group) + groupMeta, err := kapi.Registry.Group(kind.Group) if err != nil { return nil, err } groups = append(groups, groupMeta) } - actualOutputVersion := unversioned.GroupVersion{} + actualOutputVersion := schema.GroupVersion{} // Find the first preferred version that contains the object kind group. // If there are more groups for the given resource, prefer those that are first in the // list of preferred versions. @@ -138,9 +137,9 @@ func convertItemsForDisplay(objs []runtime.Object, preferredVersions ...unversio // TODO: print-objects should have preferred output versions func convertItemsForDisplayFromDefaultCommand(cmd *cobra.Command, objs []runtime.Object) ([]runtime.Object, error) { requested := kcmdutil.GetFlagString(cmd, "output-version") - versions := []unversioned.GroupVersion{} + versions := []schema.GroupVersion{} for _, v := range strings.Split(requested, ",") { - version, err := unversioned.ParseGroupVersion(v) + version, err := schema.ParseGroupVersion(v) if err != nil { return nil, err } diff --git a/pkg/cmd/util/cmd_test.go b/pkg/cmd/util/cmd_test.go index fcae5b2a5bb3..987ba3ce86bd 100644 --- a/pkg/cmd/util/cmd_test.go +++ b/pkg/cmd/util/cmd_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + kapi "k8s.io/kubernetes/pkg/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" _ "github.com/openshift/origin/pkg/api/install" @@ -14,198 +14,198 @@ import ( ) func TestResolveResource(t *testing.T) { - mapper := clientcmd.ShortcutExpander{RESTMapper: kcmdutil.ShortcutExpander{RESTMapper: registered.RESTMapper()}} + mapper := clientcmd.ShortcutExpander{RESTMapper: kcmdutil.ShortcutExpander{RESTMapper: kapi.Registry.RESTMapper()}} tests := []struct { name string - defaultResource unversioned.GroupResource + defaultResource schema.GroupResource resourceString string - expectedResource unversioned.GroupResource + expectedResource schema.GroupResource expectedName string expectedErr bool }{ { name: "invalid case #1", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "a/b/c", - expectedResource: unversioned.GroupResource{}, + expectedResource: schema.GroupResource{}, expectedName: "", expectedErr: true, }, { name: "invalid case #2", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "foo/bar", - expectedResource: unversioned.GroupResource{}, + expectedResource: schema.GroupResource{}, expectedName: "", expectedErr: true, }, { name: "empty resource string case #1", - defaultResource: unversioned.GroupResource{Resource: ""}, + defaultResource: schema.GroupResource{Resource: ""}, resourceString: "", - expectedResource: unversioned.GroupResource{Resource: ""}, + expectedResource: schema.GroupResource{Resource: ""}, expectedName: "", expectedErr: false, }, { name: "empty resource string case #2", - defaultResource: unversioned.GroupResource{Resource: ""}, + defaultResource: schema.GroupResource{Resource: ""}, resourceString: "bar", - expectedResource: unversioned.GroupResource{Resource: ""}, + expectedResource: schema.GroupResource{Resource: ""}, expectedName: "bar", expectedErr: false, }, { name: "empty resource string case #3", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "bar", - expectedResource: unversioned.GroupResource{Resource: "foo"}, + expectedResource: schema.GroupResource{Resource: "foo"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) short name", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "rc/bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) long name, case insensitive #1", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "replicationcontroller/bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) long name, case insensitive #2", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "replicationcontrollers/bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) long name, case insensitive #3", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "ReplicationControllers/bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) long name, case insensitive #4", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "ReplicationControllers/bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "bar", expectedErr: false, }, { name: "(KUBE) long name, case insensitive #5", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "ReplicationControllers/Bar", - expectedResource: unversioned.GroupResource{Resource: "replicationcontrollers"}, + expectedResource: schema.GroupResource{Resource: "replicationcontrollers"}, expectedName: "Bar", expectedErr: false, }, { name: "(ORIGIN) short name", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "bc/bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "bar", expectedErr: false, }, { name: "(ORIGIN) long name, case insensitive #1", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "buildconfig/bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "bar", expectedErr: false, }, { name: "(ORIGIN) long name, case insensitive #2", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "buildconfigs/bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "bar", expectedErr: false, }, { name: "(ORIGIN) long name, case insensitive #3", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "BuildConfigs/bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "bar", expectedErr: false, }, { name: "(ORIGIN) long name, case insensitive #4", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "BuildConfigs/bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "bar", expectedErr: false, }, { name: "(ORIGIN) long name, case insensitive #5", - defaultResource: unversioned.GroupResource{Resource: "foo"}, + defaultResource: schema.GroupResource{Resource: "foo"}, resourceString: "BuildConfigs/Bar", - expectedResource: unversioned.GroupResource{Resource: "buildconfigs"}, + expectedResource: schema.GroupResource{Resource: "buildconfigs"}, expectedName: "Bar", expectedErr: false, }, { name: "singular, implicit api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "job/myjob", - expectedResource: unversioned.GroupResource{Group: "extensions", Resource: "jobs"}, + expectedResource: schema.GroupResource{Group: "extensions", Resource: "jobs"}, expectedName: "myjob", expectedErr: false, }, { name: "singular, explicit extensions api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "job.extensions/myjob", - expectedResource: unversioned.GroupResource{Group: "extensions", Resource: "jobs"}, + expectedResource: schema.GroupResource{Group: "extensions", Resource: "jobs"}, expectedName: "myjob", expectedErr: false, }, { name: "singular, explicit batch api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "job.batch/myjob", - expectedResource: unversioned.GroupResource{Group: "batch", Resource: "jobs"}, + expectedResource: schema.GroupResource{Group: "batch", Resource: "jobs"}, expectedName: "myjob", expectedErr: false, }, { name: "shortname, implicit api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "hpa/myhpa", - expectedResource: unversioned.GroupResource{Group: "extensions", Resource: "horizontalpodautoscalers"}, + expectedResource: schema.GroupResource{Group: "extensions", Resource: "horizontalpodautoscalers"}, expectedName: "myhpa", expectedErr: false, }, { name: "shortname, explicit extensions api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "hpa.extensions/myhpa", - expectedResource: unversioned.GroupResource{Group: "extensions", Resource: "horizontalpodautoscalers"}, + expectedResource: schema.GroupResource{Group: "extensions", Resource: "horizontalpodautoscalers"}, expectedName: "myhpa", expectedErr: false, }, { name: "shortname, explicit autoscaling api group", - defaultResource: unversioned.GroupResource{}, + defaultResource: schema.GroupResource{}, resourceString: "hpa.autoscaling/myhpa", - expectedResource: unversioned.GroupResource{Group: "autoscaling", Resource: "horizontalpodautoscalers"}, + expectedResource: schema.GroupResource{Group: "autoscaling", Resource: "horizontalpodautoscalers"}, expectedName: "myhpa", expectedErr: false, }, diff --git a/pkg/cmd/util/env.go b/pkg/cmd/util/env.go index fdd5a7e61e7b..2f3cf4198ed1 100644 --- a/pkg/cmd/util/env.go +++ b/pkg/cmd/util/env.go @@ -9,8 +9,8 @@ import ( "strconv" "strings" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" ) func EnvInt(key string, defaultValue int32, minValue int32) int32 { diff --git a/pkg/cmd/util/flags/flags.go b/pkg/cmd/util/flags/flags.go index 352c5a68ddfd..4709477ed714 100644 --- a/pkg/cmd/util/flags/flags.go +++ b/pkg/cmd/util/flags/flags.go @@ -6,8 +6,8 @@ import ( "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" ) // Apply stores the provided arguments onto a flag set, reporting any errors diff --git a/pkg/cmd/util/flags/flags_test.go b/pkg/cmd/util/flags/flags_test.go index 68c7f1fed2b5..ad459fa8fafc 100644 --- a/pkg/cmd/util/flags/flags_test.go +++ b/pkg/cmd/util/flags/flags_test.go @@ -3,7 +3,7 @@ package flags import ( "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) func TestExpand(t *testing.T) { diff --git a/pkg/cmd/util/gendocs/gendocs.go b/pkg/cmd/util/gendocs/gendocs.go index 62c34cd11b06..0e13fe10e60b 100644 --- a/pkg/cmd/util/gendocs/gendocs.go +++ b/pkg/cmd/util/gendocs/gendocs.go @@ -8,13 +8,15 @@ import ( "sort" "github.com/spf13/cobra" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" ) -type Examples []*runtime.Unstructured +type Examples []*unstructured.Unstructured func (x Examples) Len() int { return len(x) } func (x Examples) Swap(i, j int) { x[i], x[j] = x[j], x[i] } @@ -47,7 +49,7 @@ func GenDocs(cmd *cobra.Command, filename string) error { } err = printer.PrintObj(&kapi.List{ - ListMeta: unversioned.ListMeta{}, + ListMeta: metav1.ListMeta{}, Items: items, }, out) if err != nil { @@ -76,7 +78,7 @@ func extractExamples(cmd *cobra.Command) Examples { objs = append(objs, extractExamples(c)...) } if cmd.HasExample() { - o := &runtime.Unstructured{ + o := &unstructured.Unstructured{ Object: make(map[string]interface{}), } o.Object["name"] = cmd.Name() diff --git a/pkg/cmd/util/net.go b/pkg/cmd/util/net.go index fafd558d4ef5..689e3caf8123 100644 --- a/pkg/cmd/util/net.go +++ b/pkg/cmd/util/net.go @@ -9,8 +9,8 @@ import ( "strings" "time" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/sets" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/sets" "github.com/golang/glog" ) diff --git a/pkg/cmd/util/pluginconfig/config_test.go b/pkg/cmd/util/pluginconfig/config_test.go index ef83831ce5b7..fc44fbf3e6e6 100644 --- a/pkg/cmd/util/pluginconfig/config_test.go +++ b/pkg/cmd/util/pluginconfig/config_test.go @@ -4,7 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" oapi "github.com/openshift/origin/pkg/api" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -14,20 +15,20 @@ import ( ) type TestConfig struct { - unversioned.TypeMeta `json:",inline"` - Item1 string `json:"item1"` - Item2 []string `json:"item2"` + metav1.TypeMeta `json:",inline"` + Item1 string `json:"item1"` + Item2 []string `json:"item2"` } -func (obj *TestConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *TestConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } type TestConfigV1 struct { - unversioned.TypeMeta `json:",inline"` - Item1 string `json:"item1"` - Item2 []string `json:"item2"` + metav1.TypeMeta `json:",inline"` + Item1 string `json:"item1"` + Item2 []string `json:"item2"` } -func (obj *TestConfigV1) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *TestConfigV1) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } func TestGetPluginConfig(t *testing.T) { configapi.Scheme.AddKnownTypes(oapi.SchemeGroupVersion, &TestConfig{}) diff --git a/pkg/cmd/util/route.go b/pkg/cmd/util/route.go index 5ea3d01ddf01..e142696498a5 100644 --- a/pkg/cmd/util/route.go +++ b/pkg/cmd/util/route.go @@ -4,9 +4,10 @@ import ( "fmt" "strconv" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/intstr" "github.com/openshift/origin/pkg/route/api" ) @@ -19,13 +20,13 @@ func UnsecuredRoute(kc kclientset.Interface, namespace, routeName, serviceName, routeName = serviceName } - svc, err := kc.Core().Services(namespace).Get(serviceName) + svc, err := kc.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { if len(portString) == 0 { return nil, fmt.Errorf("you need to provide a route port via --port when exposing a non-existent service") } return &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: routeName, }, Spec: api.RouteSpec{ @@ -43,7 +44,7 @@ func UnsecuredRoute(kc kclientset.Interface, namespace, routeName, serviceName, } route := &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: routeName, Labels: svc.Labels, }, diff --git a/pkg/cmd/util/serviceability/panic.go b/pkg/cmd/util/serviceability/panic.go index 4471d0cb39f3..0b630dabbd48 100644 --- a/pkg/cmd/util/serviceability/panic.go +++ b/pkg/cmd/util/serviceability/panic.go @@ -5,7 +5,7 @@ import ( "time" "github.com/golang/glog" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) // BehaviorOnPanic is a helper for setting the crash mode of OpenShift when a panic is caught. diff --git a/pkg/cmd/util/tokencmd/multi.go b/pkg/cmd/util/tokencmd/multi.go index 813f429b75e6..613ecccec977 100644 --- a/pkg/cmd/util/tokencmd/multi.go +++ b/pkg/cmd/util/tokencmd/multi.go @@ -5,8 +5,8 @@ import ( "github.com/golang/glog" - apierrs "k8s.io/kubernetes/pkg/api/errors" - utilerrors "k8s.io/kubernetes/pkg/util/errors" + apierrs "k8s.io/apimachinery/pkg/api/errors" + utilerrors "k8s.io/apimachinery/pkg/util/errors" ) var _ = ChallengeHandler(&MultiHandler{}) diff --git a/pkg/cmd/util/tokencmd/negotiator_gssapi.go b/pkg/cmd/util/tokencmd/negotiator_gssapi.go index 215be8e435a1..21667be1a759 100644 --- a/pkg/cmd/util/tokencmd/negotiator_gssapi.go +++ b/pkg/cmd/util/tokencmd/negotiator_gssapi.go @@ -13,7 +13,7 @@ import ( "github.com/apcera/gssapi" "github.com/golang/glog" - utilerrors "k8s.io/kubernetes/pkg/util/errors" + utilerrors "k8s.io/apimachinery/pkg/util/errors" ) func GSSAPIEnabled() bool { diff --git a/pkg/cmd/util/tokencmd/request_token.go b/pkg/cmd/util/tokencmd/request_token.go index 065653fd5c3e..3d0038dff134 100644 --- a/pkg/cmd/util/tokencmd/request_token.go +++ b/pkg/cmd/util/tokencmd/request_token.go @@ -11,10 +11,10 @@ import ( "github.com/golang/glog" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/util/sets" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" ) // CSRFTokenHeader is a marker header that indicates we are not a browser that got tricked into requesting basic auth @@ -133,8 +133,8 @@ func (o *RequestTokenOptions) RequestToken() (string, error) { unauthorizedError := apierrs.NewUnauthorized("") // Attempt to read body content and include as an error detail if details, err := ioutil.ReadAll(resp.Body); err == nil && len(details) > 0 { - unauthorizedError.ErrStatus.Details = &unversioned.StatusDetails{ - Causes: []unversioned.StatusCause{ + unauthorizedError.ErrStatus.Details = &metav1.StatusDetails{ + Causes: []metav1.StatusCause{ {Message: string(details)}, }, } diff --git a/pkg/cmd/util/tokencmd/request_token_test.go b/pkg/cmd/util/tokencmd/request_token_test.go index dcf002669dc1..86d17624ba6d 100644 --- a/pkg/cmd/util/tokencmd/request_token_test.go +++ b/pkg/cmd/util/tokencmd/request_token_test.go @@ -8,7 +8,7 @@ import ( "net/http/httptest" "testing" - "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" ) type unloadableNegotiator struct { diff --git a/pkg/config/cmd/cmd.go b/pkg/config/cmd/cmd.go index c083b363f0db..cea11e78faef 100644 --- a/pkg/config/cmd/cmd.go +++ b/pkg/config/cmd/cmd.go @@ -6,13 +6,13 @@ import ( "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" ) type Runner interface { @@ -32,7 +32,7 @@ type RetryFunc func(info *resource.Info, err error) runtime.Object // Mapper is an interface testability that is equivalent to resource.Mapper type Mapper interface { meta.RESTMapper - InfoForObject(obj runtime.Object, preferredGVKs []unversioned.GroupVersionKind) (*resource.Info, error) + InfoForObject(obj runtime.Object, preferredGVKs []schema.GroupVersionKind) (*resource.Info, error) } // IgnoreErrorFunc provides a way to filter errors during the Bulk.Run. If this function returns @@ -67,7 +67,7 @@ func (b *Bulk) Run(list *kapi.List, namespace string) []error { errs := []error{} for i, item := range list.Items { - info, err := b.Mapper.InfoForObject(item, []unversioned.GroupVersionKind{{Group: ""}}) + info, err := b.Mapper.InfoForObject(item, []schema.GroupVersionKind{{Group: ""}}) if err != nil { errs = append(errs, err) if after(info, err) { diff --git a/pkg/config/cmd/cmd_test.go b/pkg/config/cmd/cmd_test.go index 215567da5499..20fc90904ec7 100644 --- a/pkg/config/cmd/cmd_test.go +++ b/pkg/config/cmd/cmd_test.go @@ -6,11 +6,12 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" ) type bulkTester struct { @@ -28,7 +29,7 @@ func (bt *bulkTester) ResourceSingularizer(resource string) (string, error) { return resource, nil } -func (bt *bulkTester) InfoForObject(obj runtime.Object, preferredGVKs []unversioned.GroupVersionKind) (*resource.Info, error) { +func (bt *bulkTester) InfoForObject(obj runtime.Object, preferredGVKs []schema.GroupVersionKind) (*resource.Info, error) { bt.infos = append(bt.infos, obj) // These checks are here to make sure the preferredGVKs are set to retain the legacy // behavior for bulk operations. @@ -119,7 +120,7 @@ func TestBulkAction(t *testing.T) { b := &BulkAction{Bulk: bulk, Output: "", Out: out, ErrOut: err} b2 := b.WithMessage("test1", "test2") - in := &kapi.Pod{ObjectMeta: kapi.ObjectMeta{Name: "obj1"}} + in := &kapi.Pod{ObjectMeta: metav1.ObjectMeta{Name: "obj1"}} if errs := b2.Run(&kapi.List{Items: []runtime.Object{in}}, "test_namespace"); len(errs) != 0 { t.Fatal(errs) } @@ -152,7 +153,7 @@ func TestBulkActionCompact(t *testing.T) { b.Compact() b2 := b.WithMessage("test1", "test2") - in := &kapi.Pod{ObjectMeta: kapi.ObjectMeta{Name: "obj1"}} + in := &kapi.Pod{ObjectMeta: metav1.ObjectMeta{Name: "obj1"}} if errs := b2.Run(&kapi.List{Items: []runtime.Object{in}}, "test_namespace"); len(errs) != 0 { t.Fatal(errs) } diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index 76ca6dbbe068..51051dccb453 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -1,10 +1,10 @@ package controller import ( - "k8s.io/kubernetes/pkg/api/unversioned" - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilwait "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" + kcache "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" ) // RunnableController is a controller which implements a Run loop. @@ -131,7 +131,7 @@ type Retry struct { Count int // StartTimestamp is retry start timestamp - StartTimestamp unversioned.Time + StartTimestamp metav1.Time } // ReQueue is a queue that allows an object to be requeued @@ -158,7 +158,7 @@ func (r *QueueRetryManager) Retry(resource interface{}, err error) { id, _ := r.keyFunc(resource) if _, exists := r.retries[id]; !exists { - r.retries[id] = Retry{0, unversioned.Now()} + r.retries[id] = Retry{0, metav1.Now()} } tries := r.retries[id] diff --git a/pkg/controller/controller_test.go b/pkg/controller/controller_test.go index 6318e9a87f94..8e127899d3c0 100644 --- a/pkg/controller/controller_test.go +++ b/pkg/controller/controller_test.go @@ -5,8 +5,8 @@ import ( "sync" "testing" - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/flowcontrol" + kcache "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" ) func TestRetryController_handleOneRetryableError(t *testing.T) { diff --git a/pkg/controller/scheduler.go b/pkg/controller/scheduler.go index 145bac44d6f1..45d23740a3e9 100644 --- a/pkg/controller/scheduler.go +++ b/pkg/controller/scheduler.go @@ -5,8 +5,8 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilwait "k8s.io/kubernetes/pkg/util/wait" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/util/flowcontrol" ) // Scheduler is a self-balancing, rate-limited, bucketed queue that can periodically invoke diff --git a/pkg/controller/scheduler_test.go b/pkg/controller/scheduler_test.go index 33fcf963394d..b78b45723b4d 100644 --- a/pkg/controller/scheduler_test.go +++ b/pkg/controller/scheduler_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - flowcontrol "k8s.io/kubernetes/pkg/util/flowcontrol" + flowcontrol "k8s.io/client-go/util/flowcontrol" ) func TestScheduler(t *testing.T) { diff --git a/pkg/controller/shared/authorization_informers.go b/pkg/controller/shared/authorization_informers.go index efba8f7206cc..cd57243aa2da 100644 --- a/pkg/controller/shared/authorization_informers.go +++ b/pkg/controller/shared/authorization_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -38,10 +39,10 @@ func (f *clusterPolicyInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(authorizationapi.Resource("clusterpolicies")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return f.originClient.ClusterPolicies().List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return f.originClient.ClusterPolicies().Watch(options) }, } @@ -92,10 +93,10 @@ func (f *clusterPolicyBindingInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(authorizationapi.Resource("clusterpolicybindings")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return f.originClient.ClusterPolicyBindings().List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return f.originClient.ClusterPolicyBindings().Watch(options) }, } @@ -146,11 +147,11 @@ func (f *policyInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(authorizationapi.Resource("policies")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.originClient.Policies(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.originClient.Policies(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.originClient.Policies(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.originClient.Policies(metav1.NamespaceAll).Watch(options) }, } } @@ -200,11 +201,11 @@ func (f *policyBindingInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(authorizationapi.Resource("policybindings")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.originClient.PolicyBindings(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.originClient.PolicyBindings(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.originClient.PolicyBindings(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.originClient.PolicyBindings(metav1.NamespaceAll).Watch(options) }, } } diff --git a/pkg/controller/shared/build_informers.go b/pkg/controller/shared/build_informers.go index 3218a320f7ae..810b34969fcc 100644 --- a/pkg/controller/shared/build_informers.go +++ b/pkg/controller/shared/build_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" buildapi "github.com/openshift/origin/pkg/build/api" oscache "github.com/openshift/origin/pkg/client/cache" @@ -35,10 +36,10 @@ func (f *buildInformer) Informer() cache.SharedIndexInformer { informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return f.originClient.Builds(kapi.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return f.originClient.Builds(kapi.NamespaceAll).Watch(options) }, }, diff --git a/pkg/controller/shared/buildconfig_informers.go b/pkg/controller/shared/buildconfig_informers.go index d4afb0ec419d..1721328bcfbf 100644 --- a/pkg/controller/shared/buildconfig_informers.go +++ b/pkg/controller/shared/buildconfig_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" buildapi "github.com/openshift/origin/pkg/build/api" oscache "github.com/openshift/origin/pkg/client/cache" @@ -35,11 +36,11 @@ func (f *buildConfigInformer) Informer() cache.SharedIndexInformer { informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.originClient.BuildConfigs(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.originClient.BuildConfigs(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.originClient.BuildConfigs(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.originClient.BuildConfigs(metav1.NamespaceAll).Watch(options) }, }, informerObj, diff --git a/pkg/controller/shared/deploy_informers.go b/pkg/controller/shared/deploy_informers.go index fc69def74e96..41f98a2cf134 100644 --- a/pkg/controller/shared/deploy_informers.go +++ b/pkg/controller/shared/deploy_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" oscache "github.com/openshift/origin/pkg/client/cache" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -35,11 +36,11 @@ func (f *deploymentConfigInformer) Informer() cache.SharedIndexInformer { informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.originClient.DeploymentConfigs(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.originClient.DeploymentConfigs(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.originClient.DeploymentConfigs(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.originClient.DeploymentConfigs(metav1.NamespaceAll).Watch(options) }, }, informerObj, diff --git a/pkg/controller/shared/imagestream_informers.go b/pkg/controller/shared/imagestream_informers.go index 20f37bd5a664..18141a60361d 100644 --- a/pkg/controller/shared/imagestream_informers.go +++ b/pkg/controller/shared/imagestream_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" oscache "github.com/openshift/origin/pkg/client/cache" imageapi "github.com/openshift/origin/pkg/image/api" @@ -35,11 +36,11 @@ func (f *imageStreamInformer) Informer() cache.SharedIndexInformer { informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.originClient.ImageStreams(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.originClient.ImageStreams(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.originClient.ImageStreams(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.originClient.ImageStreams(metav1.NamespaceAll).Watch(options) }, }, informerObj, diff --git a/pkg/controller/shared/legacy_kube_informers.go b/pkg/controller/shared/legacy_kube_informers.go index 202e2a8c908b..259b3e6053d6 100644 --- a/pkg/controller/shared/legacy_kube_informers.go +++ b/pkg/controller/shared/legacy_kube_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) type ReplicationControllerInformer interface { @@ -33,11 +34,11 @@ func (f *replicationControllerInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(kapi.Resource("replicationcontrollers")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.kubeClient.Core().ReplicationControllers(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return f.kubeClient.Core().ReplicationControllers(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.kubeClient.Core().ReplicationControllers(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return f.kubeClient.Core().ReplicationControllers(metav1.NamespaceAll).Watch(options) }, } } diff --git a/pkg/controller/shared/quota_informers.go b/pkg/controller/shared/quota_informers.go index 64fc246fc658..f46ecd549e00 100644 --- a/pkg/controller/shared/quota_informers.go +++ b/pkg/controller/shared/quota_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ocache "github.com/openshift/origin/pkg/client/cache" quotaapi "github.com/openshift/origin/pkg/quota/api" @@ -39,10 +40,10 @@ func (f *clusterResourceQuotaInformer) Informer() cache.SharedIndexInformer { lw := f.customListerWatchers.GetListerWatcher(kapi.Resource("clusterresourcequotas")) if lw == nil { lw = &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return f.originClient.ClusterResourceQuotas().List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return f.originClient.ClusterResourceQuotas().Watch(options) }, } diff --git a/pkg/controller/shared/securitycontextconstraints_informers.go b/pkg/controller/shared/securitycontextconstraints_informers.go index 22e6aa7debcd..517fa9c16ab0 100644 --- a/pkg/controller/shared/securitycontextconstraints_informers.go +++ b/pkg/controller/shared/securitycontextconstraints_informers.go @@ -3,10 +3,11 @@ package shared import ( "reflect" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" oscache "github.com/openshift/origin/pkg/client/cache" ) @@ -34,10 +35,10 @@ func (s *securityContextConstraintsInformer) Informer() cache.SharedIndexInforme informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return s.kubeClient.Core().SecurityContextConstraints().List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return s.kubeClient.Core().SecurityContextConstraints().Watch(options) }, }, diff --git a/pkg/controller/shared/shared_informer.go b/pkg/controller/shared/shared_informer.go index 966f721735c7..cadfbea14c67 100644 --- a/pkg/controller/shared/shared_informer.go +++ b/pkg/controller/shared/shared_informer.go @@ -5,10 +5,10 @@ import ( "sync" "time" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/tools/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller/informers" + informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/externalversions" oclient "github.com/openshift/origin/pkg/client" ) @@ -44,12 +44,12 @@ type InformerFactory interface { type ListerWatcherOverrides interface { // GetListerWatcher returns back a ListerWatcher for a given resource or nil if // no particular ListerWatcher was specified for the type - GetListerWatcher(resource unversioned.GroupResource) cache.ListerWatcher + GetListerWatcher(resource schema.GroupResource) cache.ListerWatcher } -type DefaultListerWatcherOverrides map[unversioned.GroupResource]cache.ListerWatcher +type DefaultListerWatcherOverrides map[schema.GroupResource]cache.ListerWatcher -func (o DefaultListerWatcherOverrides) GetListerWatcher(resource unversioned.GroupResource) cache.ListerWatcher { +func (o DefaultListerWatcherOverrides) GetListerWatcher(resource schema.GroupResource) cache.ListerWatcher { return o[resource] } diff --git a/pkg/controller/shared/template_informers.go b/pkg/controller/shared/template_informers.go index 91613bb1d6d9..6111e9055c39 100644 --- a/pkg/controller/shared/template_informers.go +++ b/pkg/controller/shared/template_informers.go @@ -3,12 +3,14 @@ package shared import ( "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + kapi "k8s.io/kubernetes/pkg/api" + oscache "github.com/openshift/origin/pkg/client/cache" templateapi "github.com/openshift/origin/pkg/template/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) type TemplateInformer interface { @@ -34,10 +36,10 @@ func (f *templateInformer) Informer() cache.SharedIndexInformer { informer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return f.originClient.Templates(kapi.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return f.originClient.Templates(kapi.NamespaceAll).Watch(options) }, }, diff --git a/pkg/deploy/api/fields.go b/pkg/deploy/api/fields.go index cf8d68e95ab3..48e7b7a0d188 100644 --- a/pkg/deploy/api/fields.go +++ b/pkg/deploy/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // DeploymentConfigToSelectableFields returns a label set that represents the object func DeploymentConfigToSelectableFields(deploymentConfig *DeploymentConfig) fields.Set { diff --git a/pkg/deploy/api/helpers.go b/pkg/deploy/api/helpers.go index 4b222b197d5a..364aba27fce4 100644 --- a/pkg/deploy/api/helpers.go +++ b/pkg/deploy/api/helpers.go @@ -3,8 +3,8 @@ package api import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" imageapi "github.com/openshift/origin/pkg/image/api" @@ -30,7 +30,7 @@ func DeploymentToPodLogOptions(opts *DeploymentLogOptions) *kapi.PodLogOptions { // ScaleFromConfig builds a scale resource out of a deployment config. func ScaleFromConfig(dc *DeploymentConfig) *extensions.Scale { return &extensions.Scale{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dc.Name, Namespace: dc.Namespace, UID: dc.UID, @@ -42,7 +42,7 @@ func ScaleFromConfig(dc *DeploymentConfig) *extensions.Scale { }, Status: extensions.ScaleStatus{ Replicas: dc.Status.Replicas, - Selector: &unversioned.LabelSelector{ + Selector: &metav1.LabelSelector{ MatchLabels: dc.Spec.Selector, }, }, diff --git a/pkg/deploy/api/install/apigroup.go b/pkg/deploy/api/install/apigroup.go index 48a55ae84f85..12a057d7fb68 100644 --- a/pkg/deploy/api/install/apigroup.go +++ b/pkg/deploy/api/install/apigroup.go @@ -1,7 +1,7 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/announced" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/v1" diff --git a/pkg/deploy/api/install/install.go b/pkg/deploy/api/install/install.go index b88fd1b358e2..8449c286ab7b 100644 --- a/pkg/deploy/api/install/install.go +++ b/pkg/deploy/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/deploy/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/deploy/api/register.go b/pkg/deploy/api/register.go index 0480b322ad5e..7854d3adebbc 100644 --- a/pkg/deploy/api/register.go +++ b/pkg/deploy/api/register.go @@ -1,10 +1,10 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,22 +25,22 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } // LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -84,10 +84,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/deploy/api/test/ok.go b/pkg/deploy/api/test/ok.go index 987a1aae1f90..e30350966736 100644 --- a/pkg/deploy/api/test/ok.go +++ b/pkg/deploy/api/test/ok.go @@ -3,10 +3,11 @@ package test import ( "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/apis/autoscaling" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" deployv1 "github.com/openshift/origin/pkg/deploy/api/v1" @@ -21,7 +22,7 @@ const ( func OkDeploymentConfig(version int64) *deployapi.DeploymentConfig { return &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "config", Namespace: kapi.NamespaceDefault, }, @@ -163,7 +164,7 @@ func OkPodTemplate() *kapi.PodTemplateSpec { DNSPolicy: kapi.DNSClusterFirst, TerminationGracePeriodSeconds: &one, }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: OkSelector(), }, } @@ -235,7 +236,7 @@ func TestDeploymentConfig(config *deployapi.DeploymentConfig) *deployapi.Deploym func OkHPAForDeploymentConfig(config *deployapi.DeploymentConfig, min, max int) *autoscaling.HorizontalPodAutoscaler { newMin := int32(min) return &autoscaling.HorizontalPodAutoscaler{ - ObjectMeta: kapi.ObjectMeta{Name: config.Name, Namespace: config.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: config.Name, Namespace: config.Namespace}, Spec: autoscaling.HorizontalPodAutoscalerSpec{ ScaleTargetRef: autoscaling.CrossVersionObjectReference{ Name: config.Name, @@ -257,7 +258,7 @@ func OkStreamForConfig(config *deployapi.DeploymentConfig) *imageapi.ImageStream name, tag, _ := imageapi.SplitImageStreamTag(ref.Name) return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: ref.Namespace, }, diff --git a/pkg/deploy/api/types.go b/pkg/deploy/api/types.go index da55030dc9eb..2ce1096198a5 100644 --- a/pkg/deploy/api/types.go +++ b/pkg/deploy/api/types.go @@ -1,9 +1,9 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/intstr" ) // These constants represent defaults used in the deployment process. @@ -126,8 +126,8 @@ const ( // state of the DeploymentConfig. Each change to the DeploymentConfig which should result in // a new deployment results in an increment of LatestVersion. type DeploymentConfig struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec represents a desired deployment state and how to deploy to it. Spec DeploymentConfigSpec @@ -476,9 +476,9 @@ type DeploymentCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus // The last time this condition was updated. - LastUpdateTime unversioned.Time + LastUpdateTime metav1.Time // The last time the condition transitioned from one status to another. - LastTransitionTime unversioned.Time + LastTransitionTime metav1.Time // The reason for the condition's last transition. Reason DeploymentConditionReason // A human readable message indicating details about the transition. @@ -487,8 +487,8 @@ type DeploymentCondition struct { // DeploymentConfigList is a collection of deployment configs. type DeploymentConfigList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of deployment configs Items []DeploymentConfig @@ -496,7 +496,7 @@ type DeploymentConfigList struct { // DeploymentConfigRollback provides the input to rollback generation. type DeploymentConfigRollback struct { - unversioned.TypeMeta + metav1.TypeMeta // Name of the deployment config that will be rolled back. Name string // UpdatedAnnotations is a set of new annotations that will be added in the deployment config. @@ -523,7 +523,7 @@ type DeploymentConfigRollbackSpec struct { // DeploymentRequest is a request to a deployment config for a new deployment. type DeploymentRequest struct { - unversioned.TypeMeta + metav1.TypeMeta // Name of the deployment config for requesting a new deployment. Name string // Latest will update the deployment config with the latest state from all triggers. @@ -535,12 +535,12 @@ type DeploymentRequest struct { // DeploymentLog represents the logs for a deployment type DeploymentLog struct { - unversioned.TypeMeta + metav1.TypeMeta } // DeploymentLogOptions is the REST options for a deployment log type DeploymentLogOptions struct { - unversioned.TypeMeta + metav1.TypeMeta // Container for which to return logs Container string @@ -558,7 +558,7 @@ type DeploymentLogOptions struct { // precedes the time a pod was started, only logs since the pod start will be returned. // If this value is in the future, no logs will be returned. // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *unversioned.Time + SinceTime *metav1.Time // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line // of log output. Timestamps bool diff --git a/pkg/deploy/api/v1/conversion.go b/pkg/deploy/api/v1/conversion.go index 42804873c1d6..53d2db81dbf4 100644 --- a/pkg/deploy/api/v1/conversion.go +++ b/pkg/deploy/api/v1/conversion.go @@ -4,9 +4,9 @@ import ( "reflect" "strings" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" oapi "github.com/openshift/origin/pkg/api" newer "github.com/openshift/origin/pkg/deploy/api" diff --git a/pkg/deploy/api/v1/conversion_test.go b/pkg/deploy/api/v1/conversion_test.go index d1ce1cdc1bf9..f2bba2025997 100644 --- a/pkg/deploy/api/v1/conversion_test.go +++ b/pkg/deploy/api/v1/conversion_test.go @@ -4,10 +4,10 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/intstr" newer "github.com/openshift/origin/pkg/deploy/api" testutil "github.com/openshift/origin/test/util/api" diff --git a/pkg/deploy/api/v1/defaults.go b/pkg/deploy/api/v1/defaults.go index 1fe2b404ef76..65dab9fcaabb 100644 --- a/pkg/deploy/api/v1/defaults.go +++ b/pkg/deploy/api/v1/defaults.go @@ -1,8 +1,8 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" deployapi "github.com/openshift/origin/pkg/deploy/api" ) diff --git a/pkg/deploy/api/v1/defaults_test.go b/pkg/deploy/api/v1/defaults_test.go index b8672c012b0e..45d5d3b11c8a 100644 --- a/pkg/deploy/api/v1/defaults_test.go +++ b/pkg/deploy/api/v1/defaults_test.go @@ -6,11 +6,11 @@ import ( kapi "k8s.io/kubernetes/pkg/api" // required to register defaulting functions for containers + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/intstr" _ "k8s.io/kubernetes/pkg/api/install" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/intstr" deployapi "github.com/openshift/origin/pkg/deploy/api" _ "github.com/openshift/origin/pkg/deploy/api/install" diff --git a/pkg/deploy/api/v1/register.go b/pkg/deploy/api/v1/register.go index d629927d7aa1..d9bd8744696d 100644 --- a/pkg/deploy/api/v1/register.go +++ b/pkg/deploy/api/v1/register.go @@ -1,10 +1,10 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -52,10 +52,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/deploy/api/v1/types.go b/pkg/deploy/api/v1/types.go index 24bff660461d..53e9395ae492 100644 --- a/pkg/deploy/api/v1/types.go +++ b/pkg/deploy/api/v1/types.go @@ -3,9 +3,9 @@ package v1 import ( "fmt" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/util/intstr" ) // +genclient=true @@ -20,9 +20,9 @@ import ( // is carried out and may be changed at any time. The `latestVersion` field is updated when a new deployment // is triggered by any means. type DeploymentConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec represents a desired deployment state and how to deploy to it. Spec DeploymentConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -349,9 +349,9 @@ type DeploymentCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` // The last time this condition was updated. - LastUpdateTime unversioned.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,6,opt,name=lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,6,opt,name=lastUpdateTime"` // The last time the condition transitioned from one status to another. - LastTransitionTime unversioned.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` // The reason for the condition's last transition. Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` // A human readable message indicating details about the transition. @@ -360,9 +360,9 @@ type DeploymentCondition struct { // DeploymentConfigList is a collection of deployment configs. type DeploymentConfigList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of deployment configs Items []DeploymentConfig `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -370,7 +370,7 @@ type DeploymentConfigList struct { // DeploymentConfigRollback provides the input to rollback generation. type DeploymentConfigRollback struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Name of the deployment config that will be rolled back. Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // UpdatedAnnotations is a set of new annotations that will be added in the deployment config. @@ -397,7 +397,7 @@ type DeploymentConfigRollbackSpec struct { // DeploymentRequest is a request to a deployment config for a new deployment. type DeploymentRequest struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Name of the deployment config for requesting a new deployment. Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Latest will update the deployment config with the latest state from all triggers. @@ -409,12 +409,12 @@ type DeploymentRequest struct { // DeploymentLog represents the logs for a deployment type DeploymentLog struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` } // DeploymentLogOptions is the REST options for a deployment log type DeploymentLogOptions struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // The container for which to stream logs. Defaults to only container if there is one container in the pod. Container string `json:"container,omitempty" protobuf:"bytes,1,opt,name=container"` @@ -432,7 +432,7 @@ type DeploymentLogOptions struct { // precedes the time a pod was started, only logs since the pod start will be returned. // If this value is in the future, no logs will be returned. // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *unversioned.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` + SinceTime *metav1.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line // of log output. Defaults to false. Timestamps bool `json:"timestamps,omitempty" protobuf:"varint,6,opt,name=timestamps"` diff --git a/pkg/deploy/api/v1/zz_generated.conversion.go b/pkg/deploy/api/v1/zz_generated.conversion.go index a8ece1062e63..78db39eb8954 100644 --- a/pkg/deploy/api/v1/zz_generated.conversion.go +++ b/pkg/deploy/api/v1/zz_generated.conversion.go @@ -5,13 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/deploy/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { @@ -514,7 +514,7 @@ func autoConvert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *Deploym out.Follow = in.Follow out.Previous = in.Previous out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*unversioned.Time)(unsafe.Pointer(in.SinceTime)) + out.SinceTime = (*metav1.Time)(unsafe.Pointer(in.SinceTime)) out.Timestamps = in.Timestamps out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) @@ -532,7 +532,7 @@ func autoConvert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *api.Dep out.Follow = in.Follow out.Previous = in.Previous out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*unversioned.Time)(unsafe.Pointer(in.SinceTime)) + out.SinceTime = (*metav1.Time)(unsafe.Pointer(in.SinceTime)) out.Timestamps = in.Timestamps out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) diff --git a/pkg/deploy/api/v1/zz_generated.deepcopy.go b/pkg/deploy/api/v1/zz_generated.deepcopy.go index 1d6fe9a5236e..cfe365aa9480 100644 --- a/pkg/deploy/api/v1/zz_generated.deepcopy.go +++ b/pkg/deploy/api/v1/zz_generated.deepcopy.go @@ -5,12 +5,12 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - intstr "k8s.io/kubernetes/pkg/util/intstr" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -317,7 +317,7 @@ func DeepCopy_v1_DeploymentLogOptions(in interface{}, out interface{}, c *conver } if in.SinceTime != nil { in, out := &in.SinceTime, &out.SinceTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.SinceTime = nil diff --git a/pkg/deploy/api/v1/zz_generated.defaults.go b/pkg/deploy/api/v1/zz_generated.defaults.go index 6f15cb94abba..2a32bc295b2c 100644 --- a/pkg/deploy/api/v1/zz_generated.defaults.go +++ b/pkg/deploy/api/v1/zz_generated.defaults.go @@ -5,8 +5,8 @@ package v1 import ( + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - runtime "k8s.io/kubernetes/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/deploy/api/validation/validation.go b/pkg/deploy/api/validation/validation.go index f40b95a224b1..92ce61e316b1 100644 --- a/pkg/deploy/api/validation/validation.go +++ b/pkg/deploy/api/validation/validation.go @@ -7,13 +7,13 @@ import ( "strconv" "strings" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + "k8s.io/apimachinery/pkg/util/intstr" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation" "k8s.io/kubernetes/pkg/api/validation" kapivalidation "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/intstr" - kvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" deployapi "github.com/openshift/origin/pkg/deploy/api" imageapi "github.com/openshift/origin/pkg/image/api" diff --git a/pkg/deploy/api/validation/validation_test.go b/pkg/deploy/api/validation/validation_test.go index 3024211dbead..ec670a530f42 100644 --- a/pkg/deploy/api/validation/validation_test.go +++ b/pkg/deploy/api/validation/validation_test.go @@ -3,9 +3,10 @@ package validation import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/test" @@ -23,7 +24,7 @@ func manualTrigger() []api.DeploymentTriggerPolicy { func rollingConfig(interval, updatePeriod, timeout int) api.DeploymentConfig { return api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Triggers: manualTrigger(), Strategy: api.DeploymentStrategy{ @@ -44,7 +45,7 @@ func rollingConfig(interval, updatePeriod, timeout int) api.DeploymentConfig { func rollingConfigMax(maxSurge, maxUnavailable intstr.IntOrString) api.DeploymentConfig { return api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Triggers: manualTrigger(), Strategy: api.DeploymentStrategy{ @@ -66,7 +67,7 @@ func rollingConfigMax(maxSurge, maxUnavailable intstr.IntOrString) api.Deploymen func TestValidateDeploymentConfigOK(t *testing.T) { errs := ValidateDeploymentConfig(&api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -83,7 +84,7 @@ func TestValidateDeploymentConfigOK(t *testing.T) { func TestValidateDeploymentConfigICTMissingImage(t *testing.T) { dc := &api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{test.OkImageChangeTrigger()}, @@ -113,7 +114,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }{ "empty container field": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{test.OkConfigChangeTrigger()}, @@ -127,7 +128,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing name": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "bar"}, Spec: test.OkDeploymentConfigSpec(), }, field.ErrorTypeRequired, @@ -135,7 +136,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing namespace": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: ""}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: ""}, Spec: test.OkDeploymentConfigSpec(), }, field.ErrorTypeRequired, @@ -143,7 +144,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "invalid name": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "-foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "-foo", Namespace: "bar"}, Spec: test.OkDeploymentConfigSpec(), }, field.ErrorTypeInvalid, @@ -151,7 +152,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "invalid namespace": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "-bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "-bar"}, Spec: test.OkDeploymentConfigSpec(), }, field.ErrorTypeInvalid, @@ -160,7 +161,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { "missing trigger.type": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{ @@ -180,7 +181,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing Trigger imageChangeParams.from": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{ @@ -201,7 +202,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "invalid Trigger imageChangeParams.from.kind": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{ @@ -226,7 +227,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing Trigger imageChangeParams.containerNames": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{ @@ -250,7 +251,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing strategy.type": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -267,7 +268,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing strategy.customParams": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -284,7 +285,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "invalid spec.strategy.customParams.environment": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -306,7 +307,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.pre.failurePolicy": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -330,7 +331,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.pre.execNewPod": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -351,7 +352,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.pre.execNewPod.command": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -375,7 +376,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.pre.execNewPod.containerName": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -399,7 +400,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "invalid spec.strategy.recreateParams.pre.execNewPod.volumes": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -425,7 +426,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.mid.execNewPod": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -446,7 +447,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.recreateParams.post.execNewPod": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -467,7 +468,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.after.tagImages": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -494,7 +495,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.after.tagImages.to.kind": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -521,7 +522,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.after.tagImages.to.name": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -548,7 +549,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "can't have both tag and execNewPod": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -586,7 +587,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { }, "missing spec.strategy.rollingParams.pre.failurePolicy": { api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Strategy: api.DeploymentStrategy{ @@ -681,7 +682,7 @@ func TestValidateDeploymentConfigMissingFields(t *testing.T) { func TestValidateDeploymentConfigUpdate(t *testing.T) { oldConfig := &api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar", ResourceVersion: "1"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -694,7 +695,7 @@ func TestValidateDeploymentConfigUpdate(t *testing.T) { }, } newConfig := &api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar", ResourceVersion: "1"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: manualTrigger(), @@ -875,7 +876,7 @@ func TestValidateDeploymentConfigRollbackDeprecatedInvalidFields(t *testing.T) { func TestValidateDeploymentConfigDefaultImageStreamKind(t *testing.T) { config := &api.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: api.DeploymentConfigSpec{ Replicas: 1, Triggers: []api.DeploymentTriggerPolicy{ diff --git a/pkg/deploy/api/zz_generated.deepcopy.go b/pkg/deploy/api/zz_generated.deepcopy.go index caf51221fefa..d764ebe01ea9 100644 --- a/pkg/deploy/api/zz_generated.deepcopy.go +++ b/pkg/deploy/api/zz_generated.deepcopy.go @@ -5,12 +5,12 @@ package api import ( + reflect "reflect" + image_api "github.com/openshift/origin/pkg/image/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - reflect "reflect" ) func init() { @@ -318,7 +318,7 @@ func DeepCopy_api_DeploymentLogOptions(in interface{}, out interface{}, c *conve } if in.SinceTime != nil { in, out := &in.SinceTime, &out.SinceTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.SinceTime = nil diff --git a/pkg/deploy/client/clientset_generated/internalclientset/clientset.go b/pkg/deploy/client/clientset_generated/internalclientset/clientset.go index b4855f0b08aa..2315c1a058e9 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/deploy/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/deploy/client/clientset_generated/internalclientset/fake/clientset_generated.go index f492fa7818c5..aadccebe1852 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index ad2caef74bdc..f2dc90f14a74 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { DeploymentConfigsGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/deploymentconfig.go b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/deploymentconfig.go index af393da91b36..1a568319892b 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/deploymentconfig.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/deploymentconfig.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/deploy/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // DeploymentConfigsGetter has a method to return a DeploymentConfigInterface. diff --git a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index be103ed8f424..ea809d98c2f0 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_deploymentconfig.go b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_deploymentconfig.go index e708a3a21bb0..86ee922e1022 100644 --- a/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_deploymentconfig.go +++ b/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_deploymentconfig.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/deploy/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeDeploymentConfigs implements DeploymentConfigInterface @@ -15,7 +15,7 @@ type FakeDeploymentConfigs struct { ns string } -var deploymentconfigsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "deploymentconfigs"} +var deploymentconfigsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "deploymentconfigs"} func (c *FakeDeploymentConfigs) Create(deploymentConfig *api.DeploymentConfig) (result *api.DeploymentConfig, err error) { obj, err := c.Fake. diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/clientset.go b/pkg/deploy/client/clientset_generated/release_v1_5/clientset.go index f6d026267dff..62ba145d2293 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/deploy/client/clientset_generated/release_v1_5/fake/clientset_generated.go index eb5da6890ddd..3456e3dda194 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/deploy/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 57a1e0582daa..98f00197ce01 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { DeploymentConfigsGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/deploymentconfig.go b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/deploymentconfig.go index a5537ca089a3..c4347bf846e0 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/deploymentconfig.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/deploymentconfig.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/deploy/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // DeploymentConfigsGetter has a method to return a DeploymentConfigInterface. diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 17b9c4eeacc9..05c991e157e5 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_deploymentconfig.go b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_deploymentconfig.go index 03e96932a0bc..27068d7af1be 100644 --- a/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_deploymentconfig.go +++ b/pkg/deploy/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_deploymentconfig.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/deploy/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeDeploymentConfigs implements DeploymentConfigInterface @@ -16,7 +16,7 @@ type FakeDeploymentConfigs struct { ns string } -var deploymentconfigsResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "deploymentconfigs"} +var deploymentconfigsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "deploymentconfigs"} func (c *FakeDeploymentConfigs) Create(deploymentConfig *v1.DeploymentConfig) (result *v1.DeploymentConfig, err error) { obj, err := c.Fake. diff --git a/pkg/deploy/cmd/delete.go b/pkg/deploy/cmd/delete.go index 9e57087fc1ac..1c7cf3a8835c 100644 --- a/pkg/deploy/cmd/delete.go +++ b/pkg/deploy/cmd/delete.go @@ -4,12 +4,13 @@ import ( "time" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" kutil "k8s.io/kubernetes/pkg/util" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -41,7 +42,7 @@ func (reaper *DeploymentConfigReaper) pause(namespace, name string) (*deployapi. // Stop scales a replication controller via its deployment configuration down to // zero replicas, waits for all of them to get deleted and then deletes both the // replication controller and its deployment configuration. -func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { +func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { // Pause the deployment configuration to prevent the new deployments from // being triggered. config, err := reaper.pause(namespace, name) @@ -57,7 +58,7 @@ func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time. // Determine if the deployment config controller noticed the pause. if !configNotFound { if err := wait.Poll(1*time.Second, 1*time.Minute, func() (bool, error) { - dc, err := reaper.oc.DeploymentConfigs(namespace).Get(name) + dc, err := reaper.oc.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -82,7 +83,7 @@ func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time. // Clean up deployments related to the config. Even if the deployment // configuration has been deleted, we want to sweep the existing replication // controllers and clean them up. - options := kapi.ListOptions{LabelSelector: util.ConfigSelector(name)} + options := metav1.ListOptions{LabelSelector: util.ConfigSelector(name).String()} rcList, err := reaper.kc.Core().ReplicationControllers(namespace).List(options) if err != nil { return err @@ -112,7 +113,7 @@ func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time. } // Delete all deployer and hook pods - options = kapi.ListOptions{LabelSelector: util.DeployerPodSelector(rc.Name)} + options = metav1.ListOptions{LabelSelector: util.DeployerPodSelector(rc.Name).String()} podList, err := reaper.kc.Core().Pods(rc.Namespace).List(options) if err != nil { return err diff --git a/pkg/deploy/cmd/delete_test.go b/pkg/deploy/cmd/delete_test.go index 277a2f9c23df..83d1c920f456 100644 --- a/pkg/deploy/cmd/delete_test.go +++ b/pkg/deploy/cmd/delete_test.go @@ -5,12 +5,13 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/diff" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -34,8 +35,8 @@ func mkdeploymentlist(versions ...int64) *kapi.ReplicationControllerList { func TestStop(t *testing.T) { var ( - deploymentConfigsResource = unversioned.GroupVersionResource{Resource: "deploymentconfigs"} - replicationControllersResource = unversioned.GroupVersionResource{Resource: "replicationcontrollers"} + deploymentConfigsResource = schema.GroupVersionResource{Resource: "deploymentconfigs"} + replicationControllersResource = schema.GroupVersionResource{Resource: "replicationcontrollers"} ) pause := func(d *deployapi.DeploymentConfig) *deployapi.DeploymentConfig { @@ -58,8 +59,8 @@ func TestStop(t *testing.T) { name string oc *testclient.Fake kc *fake.Clientset - expected []core.Action - kexpected []core.Action + expected []clientgotesting.Action + kexpected []clientgotesting.Action err bool }{ { @@ -68,20 +69,20 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["simple-stop"]), kc: fake.NewSimpleClientset(mkdeploymentlist(1)), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["simple-stop"])), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["simple-stop"])), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"})}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewDeleteAction(replicationControllersResource, "default", "config-1"), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"), }, err: false, }, @@ -91,20 +92,20 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["legacy-simple-stop"]), kc: fake.NewSimpleClientset(mkdeploymentlist(1)), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", nil), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", nil), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"})}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewDeleteAction(replicationControllersResource, "default", "config-1"), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"), }, err: false, }, @@ -114,44 +115,44 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["multi-stop"]), kc: fake.NewSimpleClientset(mkdeploymentlist(1, 2, 3, 4, 5)), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["multi-stop"])), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["multi-stop"])), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"})}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewDeleteAction(replicationControllersResource, "default", "config-1"), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewDeleteAction(replicationControllersResource, "default", "config-2"), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewDeleteAction(replicationControllersResource, "default", "config-3"), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewDeleteAction(replicationControllersResource, "default", "config-4"), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewDeleteAction(replicationControllersResource, "default", "config-5"), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-5"), }, err: false, }, @@ -161,44 +162,44 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["legacy-multi-stop"]), kc: fake.NewSimpleClientset(mkdeploymentlist(1, 2, 3, 4, 5)), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", nil), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", nil), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"})}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewDeleteAction(replicationControllersResource, "default", "config-1"), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-2"), - core.NewDeleteAction(replicationControllersResource, "default", "config-2"), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-3"), - core.NewDeleteAction(replicationControllersResource, "default", "config-3"), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-4"), - core.NewDeleteAction(replicationControllersResource, "default", "config-4"), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-5"), - core.NewDeleteAction(replicationControllersResource, "default", "config-5"), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-2"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-3"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-4"), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-5"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-5"), }, err: false, }, @@ -208,17 +209,17 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(), kc: fake.NewSimpleClientset(mkdeploymentlist(1)), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"})}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewUpdateAction(replicationControllersResource, "default", nil), - core.NewGetAction(replicationControllersResource, "default", "config-1"), - core.NewDeleteAction(replicationControllersResource, "default", "config-1"), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{"openshift.io/deployment-config.name": "config"}).String()}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewUpdateAction(replicationControllersResource, "default", nil), + clientgotesting.NewGetAction(replicationControllersResource, "default", "config-1"), + clientgotesting.NewDeleteAction(replicationControllersResource, "default", "config-1"), }, err: false, }, @@ -228,11 +229,11 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(), kc: fake.NewSimpleClientset(&kapi.ReplicationControllerList{}), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), }, err: true, }, @@ -242,14 +243,14 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["no-deployments"]), kc: fake.NewSimpleClientset(&kapi.ReplicationControllerList{}), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["no-deployments"])), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", pause(fakeDC["no-deployments"])), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), }, err: false, }, @@ -259,14 +260,14 @@ func TestStop(t *testing.T) { name: "config", oc: testclient.NewSimpleFake(fakeDC["legacy-no-deployments"]), kc: fake.NewSimpleClientset(&kapi.ReplicationControllerList{}), - expected: []core.Action{ - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewUpdateAction(deploymentConfigsResource, "default", nil), - core.NewGetAction(deploymentConfigsResource, "default", "config"), - core.NewDeleteAction(deploymentConfigsResource, "default", "config"), + expected: []clientgotesting.Action{ + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewUpdateAction(deploymentConfigsResource, "default", nil), + clientgotesting.NewGetAction(deploymentConfigsResource, "default", "config"), + clientgotesting.NewDeleteAction(deploymentConfigsResource, "default", "config"), }, - kexpected: []core.Action{ - core.NewListAction(replicationControllersResource, "default", kapi.ListOptions{}), + kexpected: []clientgotesting.Action{ + clientgotesting.NewListAction(replicationControllersResource, "default", metav1.ListOptions{}), }, err: false, }, @@ -289,7 +290,7 @@ func TestStop(t *testing.T) { for j, actualAction := range test.oc.Actions() { e, a := test.expected[j], actualAction switch a.(type) { - case core.UpdateAction: + case clientgotesting.UpdateAction: if e.GetVerb() != a.GetVerb() || e.GetNamespace() != a.GetNamespace() || e.GetResource() != a.GetResource() || @@ -316,7 +317,7 @@ func TestStop(t *testing.T) { } switch a.(type) { - case core.GetAction, core.DeleteAction: + case clientgotesting.GetAction, clientgotesting.DeleteAction: if !reflect.DeepEqual(e, a) { t.Errorf("%s: unexpected action[%d]: %s, expected %s", test.testName, j, a, e) } diff --git a/pkg/deploy/cmd/generate.go b/pkg/deploy/cmd/generate.go index 32728204837b..d639bb658a9e 100644 --- a/pkg/deploy/cmd/generate.go +++ b/pkg/deploy/cmd/generate.go @@ -4,9 +4,9 @@ import ( "fmt" "reflect" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" ) diff --git a/pkg/deploy/cmd/history.go b/pkg/deploy/cmd/history.go index 370a58cf23f8..e33187d42c03 100644 --- a/pkg/deploy/cmd/history.go +++ b/pkg/deploy/cmd/history.go @@ -6,10 +6,12 @@ import ( "sort" "text/tabwriter" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl" + kinternalprinters "k8s.io/kubernetes/pkg/printers/internalversion" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -31,7 +33,7 @@ var _ kubectl.HistoryViewer = &DeploymentConfigHistoryViewer{} // ViewHistory returns a description of all the history it can find for a deployment config. func (h *DeploymentConfigHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { - opts := kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(name)} + opts := metav1.ListOptions{LabelSelector: deployutil.ConfigSelector(name).String()} deploymentList, err := h.rn.ReplicationControllers(namespace).List(opts) if err != nil { return "", err @@ -65,7 +67,7 @@ func (h *DeploymentConfigHistoryViewer) ViewHistory(namespace, name string, revi } buf := bytes.NewBuffer([]byte{}) - kubectl.DescribePodTemplate(desired, buf) + kinternalprinters.DescribePodTemplate(desired, buf) return buf.String(), nil } diff --git a/pkg/deploy/cmd/rollback.go b/pkg/deploy/cmd/rollback.go index 4cc8cebaa154..ee21d4df5185 100644 --- a/pkg/deploy/cmd/rollback.go +++ b/pkg/deploy/cmd/rollback.go @@ -4,8 +4,9 @@ import ( "bytes" "fmt" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" + kinternalprinters "k8s.io/kubernetes/pkg/printers/internalversion" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -50,7 +51,7 @@ func (r *DeploymentConfigRollbacker) Rollback(obj runtime.Object, updatedAnnotat if dryRun { out := bytes.NewBuffer([]byte("\n")) - kubectl.DescribePodTemplate(rolledback.Spec.Template, out) + kinternalprinters.DescribePodTemplate(rolledback.Spec.Template, out) return out.String(), nil } diff --git a/pkg/deploy/cmd/scale.go b/pkg/deploy/cmd/scale.go index ac3c5e0c4d7b..cfe343697cd4 100644 --- a/pkg/deploy/cmd/scale.go +++ b/pkg/deploy/cmd/scale.go @@ -3,11 +3,12 @@ package cmd import ( "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/deploy/util" @@ -44,11 +45,11 @@ func (scaler *DeploymentConfigScaler) Scale(namespace, name string, newSize uint } // TODO: convert to a watch and use resource version from the ScaleCondition - kubernetes/kubernetes#31051 if waitForReplicas != nil { - dc, err := scaler.dcClient.DeploymentConfigs(namespace).Get(name) + dc, err := scaler.dcClient.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err } - rc, err := scaler.rcClient.ReplicationControllers(namespace).Get(util.LatestDeploymentNameForConfig(dc)) + rc, err := scaler.rcClient.ReplicationControllers(namespace).Get(util.LatestDeploymentNameForConfig(dc), metav1.GetOptions{}) if err != nil { return err } @@ -77,7 +78,7 @@ func (scaler *DeploymentConfigScaler) ScaleSimple(namespace, name string, precon // equals the Replicas count. // // This is a slightly modified version of -// unversioned.ControllerHasDesiredReplicas. This is necessary because when +// metav1.ControllerHasDesiredReplicas. This is necessary because when // scaling an RC via a DC, the RC spec replica count is not immediately // updated to match the owning DC. func controllerHasSpecifiedReplicas(c kclientset.Interface, controller *kapi.ReplicationController, specifiedReplicas int32) wait.ConditionFunc { @@ -86,7 +87,7 @@ func controllerHasSpecifiedReplicas(c kclientset.Interface, controller *kapi.Rep desiredGeneration := controller.Generation return func() (bool, error) { - ctrl, err := c.Core().ReplicationControllers(controller.Namespace).Get(controller.Name) + ctrl, err := c.Core().ReplicationControllers(controller.Namespace).Get(controller.Name, metav1.GetOptions{}) if err != nil { return false, err } diff --git a/pkg/deploy/cmd/scale_test.go b/pkg/deploy/cmd/scale_test.go index c912cc9d8f13..a31ab19cb063 100644 --- a/pkg/deploy/cmd/scale_test.go +++ b/pkg/deploy/cmd/scale_test.go @@ -4,12 +4,12 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" + extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -54,20 +54,20 @@ func TestScale(t *testing.T) { wait = &kubectl.RetryParams{Interval: time.Millisecond, Timeout: time.Second} } - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, config, nil }) - oc.AddReactor("update", "deploymentconfigs/scale", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("update", "deploymentconfigs/scale", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { // Simulate the asynchronous update of the RC replicas based on the // scale replica count. - scale := action.(core.UpdateAction).GetObject().(*extensions.Scale) + scale := action.(clientgotesting.UpdateAction).GetObject().(*extensions.Scale) scale.Status.Replicas = scale.Spec.Replicas config.Spec.Replicas = scale.Spec.Replicas deployment.Spec.Replicas = scale.Spec.Replicas deployment.Status.Replicas = deployment.Spec.Replicas return true, scale, nil }) - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deployment, nil }) diff --git a/pkg/deploy/cmd/status.go b/pkg/deploy/cmd/status.go index e59c9d6b0a56..c5163bcfc725 100644 --- a/pkg/deploy/cmd/status.go +++ b/pkg/deploy/cmd/status.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubectl" "github.com/openshift/origin/pkg/client" @@ -25,7 +26,7 @@ var _ kubectl.StatusViewer = &DeploymentConfigStatusViewer{} // Status returns a message describing deployment status, and a bool value indicating if the status is considered done func (s *DeploymentConfigStatusViewer) Status(namespace, name string, desiredRevision int64) (string, bool, error) { - config, err := s.dn.DeploymentConfigs(namespace).Get(name) + config, err := s.dn.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", false, err } diff --git a/pkg/deploy/cmd/test/support.go b/pkg/deploy/cmd/test/support.go index 64494f4bc42b..e336758f2f2f 100644 --- a/pkg/deploy/cmd/test/support.go +++ b/pkg/deploy/cmd/test/support.go @@ -3,8 +3,8 @@ package test import ( "fmt" - "k8s.io/client-go/pkg/api/errors" - "k8s.io/client-go/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/kubectl" ) @@ -36,7 +36,7 @@ func (t *FakeLaggedScaler) Scale(namespace, name string, newSize uint, precondit t.RetryCount += 1 // This is faking a real error from the // "k8s.io/kubernetes/plugin/pkg/admission/namespace/lifecycle" package. - return errors.NewForbidden(unversioned.GroupResource{Resource: "ReplicationController"}, name, fmt.Errorf("%s: not yet ready to handle request", name)) + return errors.NewForbidden(schema.GroupResource{Resource: "ReplicationController"}, name, fmt.Errorf("%s: not yet ready to handle request", name)) } t.Events = append(t.Events, ScaleEvent{name, newSize}) return nil diff --git a/pkg/deploy/controller/deployment/controller.go b/pkg/deploy/controller/deployment/controller.go index 4cd93eb74a0d..5507c71290c0 100755 --- a/pkg/deploy/controller/deployment/controller.go +++ b/pkg/deploy/controller/deployment/controller.go @@ -5,15 +5,16 @@ import ( "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/workqueue" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" @@ -101,7 +102,7 @@ func (c *DeploymentController) handle(deployment *kapi.ReplicationController, wi nextStatus := currentStatus deployerPodName := deployutil.DeployerPodNameForDeployment(deployment.Name) - deployer, deployerErr := c.podStore.Pods(deployment.Namespace).Get(deployerPodName) + deployer, deployerErr := c.podStore.Pods(deployment.Namespace).Get(deployerPodName, metav1.GetOptions{}) if deployerErr == nil { nextStatus = c.nextStatus(deployer, deployment, updatedAnnotations) } @@ -315,7 +316,7 @@ func (c *DeploymentController) makeDeployerPod(deployment *kapi.ReplicationContr gracePeriod := int64(10) pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: deployutil.DeployerPodNameForDeployment(deployment.Name), Annotations: map[string]string{ deployapi.DeploymentAnnotation: deployment.Name, @@ -326,7 +327,7 @@ func (c *DeploymentController) makeDeployerPod(deployment *kapi.ReplicationContr // Set the owner reference to current deployment, so in case the deployment fails // and the deployer pod is preserved when a revisionHistory limit is reached and the // deployment is removed, we also remove the deployer pod with it. - OwnerReferences: []kapi.OwnerReference{{ + OwnerReferences: []metav1.OwnerReference{{ // FIXME: This will have to point to apps.openshift.io/v1 after we switch to // clientsets. APIVersion: "v1", @@ -421,7 +422,7 @@ func (c *DeploymentController) cleanupDeployerPods(deployment *kapi.ReplicationC cleanedAll := true for _, deployerPod := range deployerList { - if err := c.pn.Pods(deployerPod.Namespace).Delete(deployerPod.Name, &kapi.DeleteOptions{}); err != nil && !kerrors.IsNotFound(err) { + if err := c.pn.Pods(deployerPod.Namespace).Delete(deployerPod.Name, &metav1.DeleteOptions{}); err != nil && !kerrors.IsNotFound(err) { // if the pod deletion failed, then log the error and continue // we will try to delete any remaining deployer pods and return an error later utilruntime.HandleError(fmt.Errorf("couldn't delete completed deployer pod %q for %q: %v", deployerPod.Name, deployutil.LabelForDeployment(deployment), err)) diff --git a/pkg/deploy/controller/deployment/controller_test.go b/pkg/deploy/controller/deployment/controller_test.go index 20bc262f2df5..655b0d8f6564 100644 --- a/pkg/deploy/controller/deployment/controller_test.go +++ b/pkg/deploy/controller/deployment/controller_test.go @@ -7,14 +7,15 @@ import ( "testing" "time" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" _ "github.com/openshift/origin/pkg/deploy/api/install" @@ -59,7 +60,7 @@ func deployerPod(deployment *kapi.ReplicationController, alternateName string, r deployment.Namespace = "test" pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: deployerPodName, Namespace: deployment.Namespace, Labels: map[string]string{ @@ -102,13 +103,13 @@ func TestHandle_createPodOk(t *testing.T) { ) client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - pod := action.(core.CreateAction).GetObject().(*kapi.Pod) + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + pod := action.(clientgotesting.CreateAction).GetObject().(*kapi.Pod) createdPod = pod return true, pod, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -195,12 +196,12 @@ func TestHandle_createPodFail(t *testing.T) { var updatedDeployment *kapi.ReplicationController client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.CreateAction).GetObject().(*kapi.Pod).Name + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.CreateAction).GetObject().(*kapi.Pod).Name return true, nil, fmt.Errorf("failed to create pod %q", name) }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -266,12 +267,12 @@ func TestHandle_deployerPodAlreadyExists(t *testing.T) { deployerPodName := deployutil.DeployerPodNameForDeployment(deployment.Name) client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.CreateAction).GetObject().(*kapi.Pod).Name + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.CreateAction).GetObject().(*kapi.Pod).Name return true, nil, kerrors.NewAlreadyExists(kapi.Resource("Pod"), name) }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -305,12 +306,12 @@ func TestHandle_unrelatedPodAlreadyExists(t *testing.T) { deployment.Annotations[deployapi.DeploymentStatusAnnotation] = string(deployapi.DeploymentStatusNew) client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.CreateAction).GetObject().(*kapi.Pod).Name + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.CreateAction).GetObject().(*kapi.Pod).Name return true, nil, kerrors.NewAlreadyExists(kapi.Resource("Pod"), name) }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -346,12 +347,12 @@ func TestHandle_unrelatedPodAlreadyExistsTestScaled(t *testing.T) { deployment.Spec.Replicas = 1 client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.CreateAction).GetObject().(*kapi.Pod).Name + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.CreateAction).GetObject().(*kapi.Pod).Name return true, nil, kerrors.NewAlreadyExists(kapi.Resource("Pod"), name) }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -433,12 +434,12 @@ func TestHandle_failedTest(t *testing.T) { var updatedDeployment *kapi.ReplicationController client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -470,16 +471,16 @@ func TestHandle_cleanupPodOk(t *testing.T) { deletedPodNames := []string{} client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.DeleteAction).GetName() + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.DeleteAction).GetName() deletedPodNames = append(deletedPodNames, name) return true, nil, nil }) - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected deployment update") return true, nil, nil }) @@ -513,17 +514,17 @@ func TestHandle_cleanupPodOkTest(t *testing.T) { var updatedDeployment *kapi.ReplicationController client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.DeleteAction).GetName() + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.DeleteAction).GetName() deletedPodNames = append(deletedPodNames, name) return true, nil, nil }) - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -558,15 +559,15 @@ func TestHandle_cleanupPodOkTest(t *testing.T) { // if the deployer pods are not listed based on a label query func TestHandle_cleanupPodNoop(t *testing.T) { client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to delete pod") return true, nil, nil }) - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected deployment update") return true, nil, nil }) @@ -590,14 +591,14 @@ func TestHandle_cleanupPodNoop(t *testing.T) { // deployer pod for a completed deployment results in an actionable error. func TestHandle_cleanupPodFail(t *testing.T) { client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kerrors.NewInternalError(fmt.Errorf("deployer pod internal error")) }) - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected deployment update") return true, nil, nil }) @@ -624,12 +625,12 @@ func TestHandle_cancelNew(t *testing.T) { var updatedDeployment *kapi.ReplicationController client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, rc, nil }) @@ -660,16 +661,16 @@ func TestHandle_cleanupNewWithDeployers(t *testing.T) { deployment.Annotations[deployapi.DeploymentCancelledAnnotation] = deployapi.DeploymentCancelledAnnotationValue client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deletedDeployer = true return true, nil, nil }) - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { t.Fatalf("unexpected call to create pod") return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc return true, nil, nil }) @@ -739,11 +740,11 @@ func TestHandle_cleanupPostNew(t *testing.T) { deletedPods := 0 client := &fake.Clientset{} - client.AddReactor("delete", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("delete", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deletedPods++ return true, nil, nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { // None of these tests should transition the phase. t.Errorf("%s: unexpected call to update a deployment", test.name) return true, nil, nil @@ -800,8 +801,8 @@ func TestHandle_deployerPodDisappeared(t *testing.T) { updateCalled := false client := &fake.Clientset{} - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc updateCalled = true return true, nil, nil @@ -939,8 +940,8 @@ func TestHandle_transitionFromDeployer(t *testing.T) { updateCalled := false client := &fake.Clientset{} - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) updatedDeployment = rc updateCalled = true return true, nil, nil @@ -1004,7 +1005,7 @@ func TestDeployerCustomLabelsAndAnnotations(t *testing.T) { deployment, _ := deployutil.MakeDeployment(config, codec) client := &fake.Clientset{} - client.AddReactor("create", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deployerPod(deployment, "", true), nil }) diff --git a/pkg/deploy/controller/deployment/factory.go b/pkg/deploy/controller/deployment/factory.go index f2d2e1a365d4..d859912a7df8 100644 --- a/pkg/deploy/controller/deployment/factory.go +++ b/pkg/deploy/controller/deployment/factory.go @@ -5,16 +5,16 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" kcontroller "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" deployutil "github.com/openshift/origin/pkg/deploy/util" ) diff --git a/pkg/deploy/controller/deploymentconfig/controller.go b/pkg/deploy/controller/deploymentconfig/controller.go index 7b8b122e6d74..a09d1359ae01 100644 --- a/pkg/deploy/controller/deploymentconfig/controller.go +++ b/pkg/deploy/controller/deploymentconfig/controller.go @@ -6,17 +6,18 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/workqueue" osclient "github.com/openshift/origin/pkg/client" oscache "github.com/openshift/origin/pkg/client/cache" @@ -123,7 +124,7 @@ func (c *DeploymentConfigController) Handle(config *deployapi.DeploymentConfig) // Retry faster on conflicts var updatedDeployment *kapi.ReplicationController if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { - rc, err := c.rcStore.ReplicationControllers(deployment.Namespace).Get(deployment.Name) + rc, err := c.rcStore.ReplicationControllers(deployment.Namespace).Get(deployment.Name, metav1.GetOptions{}) if kapierrors.IsNotFound(err) { return nil } @@ -240,7 +241,7 @@ func (c *DeploymentConfigController) reconcileDeployments(existingDeployments [] if newReplicaCount != oldReplicaCount { if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { // refresh the replication controller version - rc, err := c.rcStore.ReplicationControllers(deployment.Namespace).Get(deployment.Name) + rc, err := c.rcStore.ReplicationControllers(deployment.Namespace).Get(deployment.Name, metav1.GetOptions{}) if err != nil { return err } diff --git a/pkg/deploy/controller/deploymentconfig/controller_test.go b/pkg/deploy/controller/deploymentconfig/controller_test.go index e49875c23f40..8c93be9a8fb6 100644 --- a/pkg/deploy/controller/deploymentconfig/controller_test.go +++ b/pkg/deploy/controller/deploymentconfig/controller_test.go @@ -6,13 +6,15 @@ import ( "testing" "time" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -340,19 +342,19 @@ func TestHandleScenarios(t *testing.T) { } oc := &testclient.Fake{} - oc.AddReactor("update", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { - dc := action.(core.UpdateAction).GetObject().(*deployapi.DeploymentConfig) + oc.AddReactor("update", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + dc := action.(clientgotesting.UpdateAction).GetObject().(*deployapi.DeploymentConfig) updatedConfig = dc return true, dc, nil }) kc := &fake.Clientset{} - kc.AddReactor("create", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.CreateAction).GetObject().(*kapi.ReplicationController) + kc.AddReactor("create", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.CreateAction).GetObject().(*kapi.ReplicationController) deployments[rc.Name] = rc return true, rc, nil }) - kc.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - rc := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + kc.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + rc := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) deployments[rc.Name] = rc return true, rc, nil }) @@ -360,11 +362,11 @@ func TestHandleScenarios(t *testing.T) { dcInformer := cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return oc.DeploymentConfigs(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return oc.DeploymentConfigs(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return oc.DeploymentConfigs(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return oc.DeploymentConfigs(metav1.NamespaceAll).Watch(options) }, }, &deployapi.DeploymentConfig{}, @@ -373,11 +375,11 @@ func TestHandleScenarios(t *testing.T) { ) rcInformer := cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return kc.Core().ReplicationControllers(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return kc.Core().ReplicationControllers(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return kc.Core().ReplicationControllers(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return kc.Core().ReplicationControllers(metav1.NamespaceAll).Watch(options) }, }, &kapi.ReplicationController{}, @@ -386,11 +388,11 @@ func TestHandleScenarios(t *testing.T) { ) podInformer := cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return kc.Core().Pods(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return kc.Core().Pods(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return kc.Core().Pods(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return kc.Core().Pods(metav1.NamespaceAll).Watch(options) }, }, &kapi.Pod{}, diff --git a/pkg/deploy/controller/deploymentconfig/factory.go b/pkg/deploy/controller/deploymentconfig/factory.go index dd9e5c60287d..5d97482169aa 100644 --- a/pkg/deploy/controller/deploymentconfig/factory.go +++ b/pkg/deploy/controller/deploymentconfig/factory.go @@ -5,16 +5,16 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" kcontroller "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" osclient "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" diff --git a/pkg/deploy/controller/generictrigger/controller.go b/pkg/deploy/controller/generictrigger/controller.go index c239c878c96f..6094935ba768 100644 --- a/pkg/deploy/controller/generictrigger/controller.go +++ b/pkg/deploy/controller/generictrigger/controller.go @@ -1,10 +1,10 @@ package generictrigger import ( - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/workqueue" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" "github.com/golang/glog" osclient "github.com/openshift/origin/pkg/client" diff --git a/pkg/deploy/controller/generictrigger/controller_test.go b/pkg/deploy/controller/generictrigger/controller_test.go index 637858797b13..f47e62d6bca6 100644 --- a/pkg/deploy/controller/generictrigger/controller_test.go +++ b/pkg/deploy/controller/generictrigger/controller_test.go @@ -4,12 +4,14 @@ import ( "testing" "time" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -23,11 +25,11 @@ var ( codec = kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion) dcInformer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return (&testclient.Fake{}).DeploymentConfigs(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return (&testclient.Fake{}).DeploymentConfigs(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return (&testclient.Fake{}).DeploymentConfigs(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return (&testclient.Fake{}).DeploymentConfigs(metav1.NamespaceAll).Watch(options) }, }, &deployapi.DeploymentConfig{}, @@ -36,11 +38,11 @@ var ( ) rcInformer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return (fake.NewSimpleClientset()).Core().ReplicationControllers(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return (fake.NewSimpleClientset()).Core().ReplicationControllers(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return (fake.NewSimpleClientset()).Core().ReplicationControllers(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return (fake.NewSimpleClientset()).Core().ReplicationControllers(metav1.NamespaceAll).Watch(options) }, }, &kapi.ReplicationController{}, @@ -49,11 +51,11 @@ var ( ) streamInformer = cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return (&testclient.Fake{}).ImageStreams(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return (&testclient.Fake{}).ImageStreams(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return (&testclient.Fake{}).ImageStreams(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return (&testclient.Fake{}).ImageStreams(metav1.NamespaceAll).Watch(options) }, }, &imageapi.ImageStream{}, @@ -70,7 +72,7 @@ func TestHandle_noTriggers(t *testing.T) { controller := NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer, fake, codec) config := testapi.OkDeploymentConfig(1) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{} if err := controller.Handle(config); err != nil { t.Fatalf("unexpected error: %v", err) @@ -87,7 +89,7 @@ func TestHandle_pausedConfig(t *testing.T) { controller := NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer, fake, codec) config := testapi.OkDeploymentConfig(1) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Paused = true if err := controller.Handle(config); err != nil { t.Fatalf("unexpected error: %v", err) @@ -103,7 +105,7 @@ func TestHandle_configChangeTrigger(t *testing.T) { updated := false fake := &testclient.Fake{} - fake.AddReactor("update", "deploymentconfigs/instantiate", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("update", "deploymentconfigs/instantiate", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { updated = true return true, nil, nil }) @@ -111,7 +113,7 @@ func TestHandle_configChangeTrigger(t *testing.T) { controller := NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer, fake, codec) config := testapi.OkDeploymentConfig(0) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger()} if err := controller.Handle(config); err != nil { t.Fatalf("unexpected error: %v", err) @@ -127,7 +129,7 @@ func TestHandle_imageChangeTrigger(t *testing.T) { updated := false fake := &testclient.Fake{} - fake.AddReactor("update", "deploymentconfigs/instantiate", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("update", "deploymentconfigs/instantiate", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { updated = true return true, nil, nil }) @@ -135,7 +137,7 @@ func TestHandle_imageChangeTrigger(t *testing.T) { controller := NewDeploymentTriggerController(dcInformer, rcInformer, streamInformer, fake, codec) config := testapi.OkDeploymentConfig(0) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkImageChangeTrigger()} if err := controller.Handle(config); err != nil { t.Fatalf("unexpected error: %v", err) diff --git a/pkg/deploy/controller/generictrigger/factory.go b/pkg/deploy/controller/generictrigger/factory.go index 287e32fd7f05..f3bb3c9225f6 100644 --- a/pkg/deploy/controller/generictrigger/factory.go +++ b/pkg/deploy/controller/generictrigger/factory.go @@ -7,12 +7,12 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" kcontroller "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" osclient "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -132,7 +132,7 @@ func (c *DeploymentTriggerController) updateDeploymentConfig(old, cur interface{ // we will try to instantiate a deployment config at the expense of duplicating some of the // work that the instantiate endpoint is already doing but I think this is fine. shouldInstantiate := true - latestRc, err := c.rcLister.ReplicationControllers(newDc.Namespace).Get(deployutil.LatestDeploymentNameForConfig(newDc)) + latestRc, err := c.rcLister.ReplicationControllers(newDc.Namespace).Get(deployutil.LatestDeploymentNameForConfig(newDc), metav1.GetOptions{}) if err != nil { // If we get an error here it may be due to the rc cache lagging behind. In such a case // just defer to the api server (instantiate REST) where we will retry this. diff --git a/pkg/deploy/controller/test/fake_deployment_config_store.go b/pkg/deploy/controller/test/fake_deployment_config_store.go index c4d693a5dc9e..3251ab58a258 100644 --- a/pkg/deploy/controller/test/fake_deployment_config_store.go +++ b/pkg/deploy/controller/test/fake_deployment_config_store.go @@ -1,7 +1,7 @@ package test import ( - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/deploy/api" ) diff --git a/pkg/deploy/controller/test/fake_deployment_store.go b/pkg/deploy/controller/test/fake_deployment_store.go index 297583e5647b..5762efb749a8 100644 --- a/pkg/deploy/controller/test/fake_deployment_store.go +++ b/pkg/deploy/controller/test/fake_deployment_store.go @@ -1,8 +1,8 @@ package test import ( + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" ) type FakeDeploymentStore struct { diff --git a/pkg/deploy/graph/edge_test.go b/pkg/deploy/graph/edge_test.go index d55c02aef7fd..eb4c683168cc 100644 --- a/pkg/deploy/graph/edge_test.go +++ b/pkg/deploy/graph/edge_test.go @@ -6,8 +6,9 @@ import ( "github.com/gonum/graph" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" osgraph "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -62,7 +63,7 @@ func namespaceFor(node graph.Node) (string, error) { obj := node.(objectifier).Object() switch t := obj.(type) { case runtime.Object: - meta, err := kapi.ObjectMetaFor(t) + meta, err := metav1.ObjectMetaFor(t) if err != nil { return "", err } diff --git a/pkg/deploy/graph/edges.go b/pkg/deploy/graph/edges.go index d6678e34809b..863472708948 100644 --- a/pkg/deploy/graph/edges.go +++ b/pkg/deploy/graph/edges.go @@ -3,6 +3,7 @@ package graph import ( "github.com/gonum/graph" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" osgraph "github.com/openshift/origin/pkg/api/graph" @@ -98,7 +99,7 @@ func AddVolumeClaimEdges(g osgraph.Graph, dcNode *deploygraph.DeploymentConfigNo } syntheticClaim := &kapi.PersistentVolumeClaim{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: source.PersistentVolumeClaim.ClaimName, Namespace: dcNode.DeploymentConfig.Namespace, }, diff --git a/pkg/deploy/prune/data.go b/pkg/deploy/prune/data.go index 1e810115b0e1..155d45cd690a 100644 --- a/pkg/deploy/prune/data.go +++ b/pkg/deploy/prune/data.go @@ -4,9 +4,9 @@ import ( "fmt" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" @@ -55,8 +55,8 @@ type FilterPredicate func(item *kapi.ReplicationController) bool // NewFilterBeforePredicate is a function that returns true if the build was created before the current time minus specified duration func NewFilterBeforePredicate(d time.Duration) FilterPredicate { - now := unversioned.Now() - before := unversioned.NewTime(now.Time.Add(-1 * d)) + now := metav1.Now() + before := metav1.NewTime(now.Time.Add(-1 * d)) return func(item *kapi.ReplicationController) bool { return item.CreationTimestamp.Before(before) } @@ -113,7 +113,7 @@ func (d *dataSet) GetDeploymentConfig(controller *kapi.ReplicationController) (* } var deploymentConfig *deployapi.DeploymentConfig - key := &deployapi.DeploymentConfig{ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: controller.Namespace}} + key := &deployapi.DeploymentConfig{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: controller.Namespace}} item, exists, err := d.deploymentConfigStore.Get(key) if exists { deploymentConfig = item.(*deployapi.DeploymentConfig) @@ -143,7 +143,7 @@ func (d *dataSet) ListDeployments() ([]*kapi.ReplicationController, error) { func (d *dataSet) ListDeploymentsByDeploymentConfig(deploymentConfig *deployapi.DeploymentConfig) ([]*kapi.ReplicationController, error) { results := []*kapi.ReplicationController{} key := &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: deploymentConfig.Namespace, Annotations: map[string]string{deployapi.DeploymentConfigAnnotation: deploymentConfig.Name}, }, diff --git a/pkg/deploy/prune/data_test.go b/pkg/deploy/prune/data_test.go index a7475737ea86..13fd9ff5ad43 100644 --- a/pkg/deploy/prune/data_test.go +++ b/pkg/deploy/prune/data_test.go @@ -5,15 +5,15 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" ) func mockDeploymentConfig(namespace, name string) *deployapi.DeploymentConfig { - return &deployapi.DeploymentConfig{ObjectMeta: kapi.ObjectMeta{Namespace: namespace, Name: name}} + return &deployapi.DeploymentConfig{ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name}} } func withSize(item *kapi.ReplicationController, replicas int) *kapi.ReplicationController { @@ -22,7 +22,7 @@ func withSize(item *kapi.ReplicationController, replicas int) *kapi.ReplicationC return item } -func withCreated(item *kapi.ReplicationController, creationTimestamp unversioned.Time) *kapi.ReplicationController { +func withCreated(item *kapi.ReplicationController, creationTimestamp metav1.Time) *kapi.ReplicationController { item.CreationTimestamp = creationTimestamp return item } @@ -33,7 +33,7 @@ func withStatus(item *kapi.ReplicationController, status deployapi.DeploymentSta } func mockDeployment(namespace, name string, deploymentConfig *deployapi.DeploymentConfig) *kapi.ReplicationController { - item := &kapi.ReplicationController{ObjectMeta: kapi.ObjectMeta{Namespace: namespace, Name: name, Annotations: map[string]string{}}} + item := &kapi.ReplicationController{ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name, Annotations: map[string]string{}}} if deploymentConfig != nil { item.Annotations[deployapi.DeploymentConfigAnnotation] = deploymentConfig.Name } @@ -65,8 +65,8 @@ func TestDeploymentByDeploymentConfigIndexFunc(t *testing.T) { func TestFilterBeforePredicate(t *testing.T) { youngerThan := time.Hour - now := unversioned.Now() - old := unversioned.NewTime(now.Time.Add(-1 * youngerThan)) + now := metav1.Now() + old := metav1.NewTime(now.Time.Add(-1 * youngerThan)) items := []*kapi.ReplicationController{} items = append(items, withCreated(mockDeployment("a", "old", nil), old)) items = append(items, withCreated(mockDeployment("a", "new", nil), now)) diff --git a/pkg/deploy/prune/prune.go b/pkg/deploy/prune/prune.go index 241f55fc540b..2b77902b0281 100644 --- a/pkg/deploy/prune/prune.go +++ b/pkg/deploy/prune/prune.go @@ -5,6 +5,7 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -113,7 +114,7 @@ func (p *deploymentDeleter) DeleteDeployment(deployment *kapi.ReplicationControl // If the deployment is failed we need to remove its deployer pods, too. if deployutil.IsFailedDeployment(deployment) { dpSelector := deployutil.DeployerPodSelector(deployment.Name) - deployers, err := p.pods.Pods(deployment.Namespace).List(kapi.ListOptions{LabelSelector: dpSelector}) + deployers, err := p.pods.Pods(deployment.Namespace).List(metav1.ListOptions{LabelSelector: dpSelector.String()}) if err != nil { glog.Warning("Cannot list deployer pods for %q: %v\n", deployment.Name, err) } else { diff --git a/pkg/deploy/prune/prune_test.go b/pkg/deploy/prune/prune_test.go index 49731a1cf07a..cfd7a541ce7e 100644 --- a/pkg/deploy/prune/prune_test.go +++ b/pkg/deploy/prune/prune_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -55,8 +55,8 @@ func TestPruneTask(t *testing.T) { for _, deploymentStatusOption := range deploymentStatusOptions { keepYoungerThan := time.Hour - now := unversioned.Now() - old := unversioned.NewTime(now.Time.Add(-1 * keepYoungerThan)) + now := metav1.Now() + old := metav1.NewTime(now.Time.Add(-1 * keepYoungerThan)) deploymentConfigs := []*deployapi.DeploymentConfig{} deployments := []*kapi.ReplicationController{} diff --git a/pkg/deploy/prune/resolvers.go b/pkg/deploy/prune/resolvers.go index 34467f2c8b8d..4dbc7fbb2158 100644 --- a/pkg/deploy/prune/resolvers.go +++ b/pkg/deploy/prune/resolvers.go @@ -3,8 +3,8 @@ package prune import ( "sort" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" diff --git a/pkg/deploy/prune/resolvers_test.go b/pkg/deploy/prune/resolvers_test.go index fc3d6195c633..6b597720153c 100644 --- a/pkg/deploy/prune/resolvers_test.go +++ b/pkg/deploy/prune/resolvers_test.go @@ -6,9 +6,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" @@ -123,9 +123,9 @@ func TestPerDeploymentConfigResolver(t *testing.T) { } } - now := unversioned.Now() + now := metav1.Now() for i := range deployments { - creationTimestamp := unversioned.NewTime(now.Time.Add(-1 * time.Duration(i) * time.Hour)) + creationTimestamp := metav1.NewTime(now.Time.Add(-1 * time.Duration(i) * time.Hour)) deployments[i].CreationTimestamp = creationTimestamp } diff --git a/pkg/deploy/registry/deployconfig/etcd/etcd.go b/pkg/deploy/registry/deployconfig/etcd/etcd.go index 25f5eb5a04f4..cfefefcd55ae 100644 --- a/pkg/deploy/registry/deployconfig/etcd/etcd.go +++ b/pkg/deploy/registry/deployconfig/etcd/etcd.go @@ -3,14 +3,15 @@ package etcd import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "k8s.io/kubernetes/pkg/apis/extensions" extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/registry/deployconfig" @@ -69,8 +70,8 @@ func (r *ScaleREST) New() runtime.Object { } // Get retrieves (computes) the Scale subresource for the given DeploymentConfig name. -func (r *ScaleREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - deploymentConfig, err := r.registry.GetDeploymentConfig(ctx, name) +func (r *ScaleREST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + deploymentConfig, err := r.registry.GetDeploymentConfig(ctx, name, options) if err != nil { return nil, err } @@ -79,8 +80,8 @@ func (r *ScaleREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { } // Update scales the DeploymentConfig for the given Scale subresource, returning the updated Scale. -func (r *ScaleREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - deploymentConfig, err := r.registry.GetDeploymentConfig(ctx, name) +func (r *ScaleREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { + deploymentConfig, err := r.registry.GetDeploymentConfig(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, errors.NewNotFound(extensions.Resource("scale"), name) } @@ -121,11 +122,11 @@ func (r *StatusREST) New() runtime.Object { } // Get retrieves the object from the storage. It is required to support Patch. -func (r *StatusREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - return r.store.Get(ctx, name) +func (r *StatusREST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + return r.store.Get(ctx, name, options) } // Update alters the status subset of an deploymentConfig. -func (r *StatusREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *StatusREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } diff --git a/pkg/deploy/registry/deployconfig/etcd/etcd_test.go b/pkg/deploy/registry/deployconfig/etcd/etcd_test.go index 062e793c2350..16e4568fc7c5 100644 --- a/pkg/deploy/registry/deployconfig/etcd/etcd_test.go +++ b/pkg/deploy/registry/deployconfig/etcd/etcd_test.go @@ -3,12 +3,13 @@ package etcd import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/deploy/api" _ "github.com/openshift/origin/pkg/deploy/api/install" @@ -41,7 +42,7 @@ func TestCreate(t *testing.T) { defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) valid := validDeploymentConfig() - valid.ObjectMeta = kapi.ObjectMeta{} + valid.ObjectMeta = metav1.ObjectMeta{} test.TestCreate( valid, // invalid diff --git a/pkg/deploy/registry/deployconfig/registry.go b/pkg/deploy/registry/deployconfig/registry.go index 3f90f2a4539b..661c27fd58c7 100644 --- a/pkg/deploy/registry/deployconfig/registry.go +++ b/pkg/deploy/registry/deployconfig/registry.go @@ -1,21 +1,24 @@ package deployconfig import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" ) // Registry is an interface for things that know how to store DeploymentConfigs. type Registry interface { - ListDeploymentConfigs(ctx kapi.Context, options *kapi.ListOptions) (*deployapi.DeploymentConfigList, error) - WatchDeploymentConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) - GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) - CreateDeploymentConfig(ctx kapi.Context, deploymentConfig *deployapi.DeploymentConfig) error - UpdateDeploymentConfig(ctx kapi.Context, deploymentConfig *deployapi.DeploymentConfig) error - DeleteDeploymentConfig(ctx kapi.Context, name string) error + ListDeploymentConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (*deployapi.DeploymentConfigList, error) + WatchDeploymentConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) + GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) + CreateDeploymentConfig(ctx apirequest.Context, deploymentConfig *deployapi.DeploymentConfig) error + UpdateDeploymentConfig(ctx apirequest.Context, deploymentConfig *deployapi.DeploymentConfig) error + DeleteDeploymentConfig(ctx apirequest.Context, name string) error } // storage puts strong typing around storage calls @@ -29,7 +32,7 @@ func NewRegistry(s rest.StandardStorage) Registry { return &storage{s} } -func (s *storage) ListDeploymentConfigs(ctx kapi.Context, options *kapi.ListOptions) (*deployapi.DeploymentConfigList, error) { +func (s *storage) ListDeploymentConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (*deployapi.DeploymentConfigList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -37,29 +40,29 @@ func (s *storage) ListDeploymentConfigs(ctx kapi.Context, options *kapi.ListOpti return obj.(*deployapi.DeploymentConfigList), nil } -func (s *storage) WatchDeploymentConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchDeploymentConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } -func (s *storage) GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*deployapi.DeploymentConfig), nil } -func (s *storage) CreateDeploymentConfig(ctx kapi.Context, deploymentConfig *deployapi.DeploymentConfig) error { +func (s *storage) CreateDeploymentConfig(ctx apirequest.Context, deploymentConfig *deployapi.DeploymentConfig) error { _, err := s.Create(ctx, deploymentConfig) return err } -func (s *storage) UpdateDeploymentConfig(ctx kapi.Context, deploymentConfig *deployapi.DeploymentConfig) error { +func (s *storage) UpdateDeploymentConfig(ctx apirequest.Context, deploymentConfig *deployapi.DeploymentConfig) error { _, _, err := s.Update(ctx, deploymentConfig.Name, rest.DefaultUpdatedObjectInfo(deploymentConfig, kapi.Scheme)) return err } -func (s *storage) DeleteDeploymentConfig(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteDeploymentConfig(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } diff --git a/pkg/deploy/registry/deployconfig/strategy.go b/pkg/deploy/registry/deployconfig/strategy.go index 431436c2cd2f..63c795c1d167 100644 --- a/pkg/deploy/registry/deployconfig/strategy.go +++ b/pkg/deploy/registry/deployconfig/strategy.go @@ -4,12 +4,15 @@ import ( "fmt" "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/validation" @@ -18,11 +21,11 @@ import ( // strategy implements behavior for DeploymentConfig objects type strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating DeploymentConfig objects. -var Strategy = strategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = strategy{kapi.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for DeploymentConfig objects. func (strategy) NamespaceScoped() bool { @@ -38,13 +41,13 @@ func (strategy) AllowUnconditionalUpdate() bool { return false } -func (s strategy) Export(ctx kapi.Context, obj runtime.Object, exact bool) error { +func (s strategy) Export(ctx apirequest.Context, obj runtime.Object, exact bool) error { s.PrepareForCreate(ctx, obj) return nil } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { dc := obj.(*api.DeploymentConfig) dc.Generation = 1 dc.Status = api.DeploymentConfigStatus{} @@ -57,7 +60,7 @@ func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newDc := obj.(*api.DeploymentConfig) oldDc := old.(*api.DeploymentConfig) @@ -88,17 +91,17 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new policy. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateDeploymentConfig(obj.(*api.DeploymentConfig)) } // ValidateUpdate is the default update validation for an end user. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateDeploymentConfigUpdate(obj.(*api.DeploymentConfig), old.(*api.DeploymentConfig)) } // CheckGracefulDelete allows a deployment config to be gracefully deleted. -func (strategy) CheckGracefulDelete(obj runtime.Object, options *kapi.DeleteOptions) bool { +func (strategy) CheckGracefulDelete(obj runtime.Object, options *metav1.DeleteOptions) bool { return false } @@ -110,7 +113,7 @@ type statusStrategy struct { var StatusStrategy = statusStrategy{Strategy} // PrepareForUpdate clears fields that are not allowed to be set by end users on update of status. -func (statusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (statusStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newDc := obj.(*api.DeploymentConfig) oldDc := old.(*api.DeploymentConfig) newDc.Spec = oldDc.Spec @@ -118,7 +121,7 @@ func (statusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object } // ValidateUpdate is the default update validation for an end user updating status. -func (statusStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (statusStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateDeploymentConfigStatusUpdate(obj.(*api.DeploymentConfig), old.(*api.DeploymentConfig)) } diff --git a/pkg/deploy/registry/deployconfig/strategy_test.go b/pkg/deploy/registry/deployconfig/strategy_test.go index 6e6f3cafcb11..7ed4d86625b7 100644 --- a/pkg/deploy/registry/deployconfig/strategy_test.go +++ b/pkg/deploy/registry/deployconfig/strategy_test.go @@ -4,15 +4,16 @@ import ( "reflect" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" ) func TestDeploymentConfigStrategy(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() if !Strategy.NamespaceScoped() { t.Errorf("DeploymentConfig is namespace scoped") } @@ -20,7 +21,7 @@ func TestDeploymentConfigStrategy(t *testing.T) { t.Errorf("DeploymentConfig should not allow create on update") } deploymentConfig := &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, Spec: deploytest.OkDeploymentConfigSpec(), } Strategy.PrepareForCreate(ctx, deploymentConfig) @@ -29,7 +30,7 @@ func TestDeploymentConfigStrategy(t *testing.T) { t.Errorf("Unexpected error validating %v", errs) } updatedDeploymentConfig := &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "bar", Namespace: "default", Generation: 1}, + ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "default", Generation: 1}, Spec: deploytest.OkDeploymentConfigSpec(), } errs = Strategy.ValidateUpdate(ctx, updatedDeploymentConfig, deploymentConfig) @@ -52,7 +53,7 @@ func TestDeploymentConfigStrategy(t *testing.T) { // TestPrepareForUpdate exercises various client updates. func TestPrepareForUpdate(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() tests := []struct { name string @@ -85,7 +86,7 @@ func TestPrepareForUpdate(t *testing.T) { // prevDeployment is the old object tested for both old and new client updates. func prevDeployment() *deployapi.DeploymentConfig { return &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "default", Generation: 4, Annotations: make(map[string]string)}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default", Generation: 4, Annotations: make(map[string]string)}, Spec: deploytest.OkDeploymentConfigSpec(), Status: deploytest.OkDeploymentConfigStatus(1), } diff --git a/pkg/deploy/registry/deploylog/rest.go b/pkg/deploy/registry/deploylog/rest.go index f3e8dcb1893a..584653fdc6e7 100644 --- a/pkg/deploy/registry/deploylog/rest.go +++ b/pkg/deploy/registry/deploylog/rest.go @@ -6,18 +6,21 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + genericrest "k8s.io/apiserver/pkg/registry/generic/rest" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/controller" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/registry/core/pod" - genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -40,12 +43,12 @@ type podGetter struct { } // Get is responsible for retrieving the deployer pod -func (g *podGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { - namespace, ok := kapi.NamespaceFrom(ctx) +func (g *podGetter) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, errors.NewBadRequest("namespace parameter required.") } - return g.pn.Pods(namespace).Get(name) + return g.pn.Pods(namespace).Get(name, *options) } // REST is an implementation of RESTStorage for the api server. @@ -87,9 +90,9 @@ func (r *REST) New() runtime.Object { } // Get returns a streamer resource with the contents of the deployment log -func (r *REST) Get(ctx kapi.Context, name string, opts runtime.Object) (runtime.Object, error) { +func (r *REST) Get(ctx apirequest.Context, name string, opts runtime.Object) (runtime.Object, error) { // Ensure we have a namespace in the context - namespace, ok := kapi.NamespaceFrom(ctx) + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, errors.NewBadRequest("namespace parameter required.") } @@ -105,7 +108,7 @@ func (r *REST) Get(ctx kapi.Context, name string, opts runtime.Object) (runtime. // Fetch deploymentConfig and check latest version; if 0, there are no deployments // for this config - config, err := r.dn.DeploymentConfigs(namespace).Get(name) + config, err := r.dn.DeploymentConfigs(namespace).Get(name, metav1.GetOptions{}) if err != nil { return nil, errors.NewNotFound(deployapi.Resource("deploymentconfig"), name) } @@ -198,7 +201,7 @@ func (r *REST) waitForExistingDeployment(namespace, name string) (*kapi.Replicat ) condition := func() (bool, error) { - target, err = r.rn.ReplicationControllers(namespace).Get(name) + target, err = r.rn.ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) switch { case errors.IsNotFound(err): return false, nil @@ -219,7 +222,7 @@ func (r *REST) waitForExistingDeployment(namespace, name string) (*kapi.Replicat // view its logs. func (r *REST) returnApplicationPodName(target *kapi.ReplicationController) (string, error) { selector := labels.Set(target.Spec.Selector).AsSelector() - sortBy := func(pods []*kapi.Pod) sort.Interface { return controller.ByLogging(pods) } + sortBy := func(pods []*kapiv1.Pod) sort.Interface { return controller.ByLogging(pods) } pod, _, err := kcmdutil.GetFirstPod(r.pn, target.Namespace, selector, r.timeout, sortBy) if err != nil { diff --git a/pkg/deploy/registry/deploylog/rest_test.go b/pkg/deploy/registry/deploylog/rest_test.go index 7f09ec760451..bf40c5264601 100644 --- a/pkg/deploy/registry/deploylog/rest_test.go +++ b/pkg/deploy/registry/deploylog/rest_test.go @@ -6,16 +6,17 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + genericrest "k8s.io/apiserver/pkg/registry/generic/rest" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" - genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/deploy/api" @@ -30,7 +31,7 @@ var testSelector = map[string]string{"test": "rest"} func makeDeployment(version int64) kapi.ReplicationController { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(version), kapi.Codecs.LegacyCodec(api.SchemeGroupVersion)) - deployment.Namespace = kapi.NamespaceDefault + deployment.Namespace = metav1.NamespaceDefault deployment.Spec.Selector = testSelector return *deployment } @@ -47,10 +48,10 @@ var ( fakePodList = &kapi.PodList{ Items: []kapi.Pod{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "config-5-application-pod-1", - Namespace: kapi.NamespaceDefault, - CreationTimestamp: unversioned.Date(2016, time.February, 1, 1, 0, 1, 0, time.UTC), + Namespace: metav1.NamespaceDefault, + CreationTimestamp: metav1.Date(2016, time.February, 1, 1, 0, 1, 0, time.UTC), Labels: testSelector, }, Spec: kapi.PodSpec{ @@ -63,10 +64,10 @@ var ( }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "config-5-application-pod-2", - Namespace: kapi.NamespaceDefault, - CreationTimestamp: unversioned.Date(2016, time.February, 1, 1, 0, 3, 0, time.UTC), + Namespace: metav1.NamespaceDefault, + CreationTimestamp: metav1.Date(2016, time.February, 1, 1, 0, 3, 0, time.UTC), Labels: testSelector, }, Spec: kapi.PodSpec{ @@ -84,7 +85,7 @@ var ( type fakeConnectionInfoGetter struct{} -func (*fakeConnectionInfoGetter) GetConnectionInfo(ctx kapi.Context, nodeName types.NodeName) (*kubeletclient.ConnectionInfo, error) { +func (*fakeConnectionInfoGetter) GetConnectionInfo(nodeName types.NodeName) (*kubeletclient.ConnectionInfo, error) { return &kubeletclient.ConnectionInfo{ Scheme: "https", Hostname: "some-host", @@ -97,7 +98,7 @@ func mockREST(version, desired int64, status api.DeploymentStatus) *REST { // Fake deploymentConfig config := deploytest.OkDeploymentConfig(version) fakeDn := testclient.NewSimpleFake(config) - fakeDn.PrependReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeDn.PrependReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, config, nil }) @@ -113,13 +114,13 @@ func mockREST(version, desired int64, status api.DeploymentStatus) *REST { // Fake deployments fakeDeployments := makeDeploymentList(version) fakeRn := fake.NewSimpleClientset(fakeDeployments) - fakeRn.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeRn.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &fakeDeployments.Items[desired-1], nil }) // Fake watcher for deployments fakeWatch := watch.NewFake() - fakeRn.PrependWatchReactor("replicationcontrollers", core.DefaultWatchReactor(fakeWatch, nil)) + fakeRn.PrependWatchReactor("replicationcontrollers", clientgotesting.DefaultWatchReactor(fakeWatch, nil)) obj := &fakeDeployments.Items[desired-1] obj.Annotations[api.DeploymentStatusAnnotation] = string(status) go fakeWatch.Add(obj) @@ -128,18 +129,18 @@ func mockREST(version, desired int64, status api.DeploymentStatus) *REST { if status == api.DeploymentStatusComplete { // If the deployment is complete, we will try to get the logs from the oldest // application pod... - fakePn.PrependReactor("list", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakePn.PrependReactor("list", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, fakePodList, nil }) - fakePn.PrependReactor("get", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakePn.PrependReactor("get", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &fakePodList.Items[0], nil }) } else { // ...otherwise try to get the logs from the deployer pod. fakeDeployer := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: deployutil.DeployerPodNameForDeployment(obj.Name), - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: kapi.PodSpec{ Containers: []kapi.Container{ @@ -153,7 +154,7 @@ func mockREST(version, desired int64, status api.DeploymentStatus) *REST { Phase: kapi.PodRunning, }, } - fakePn.PrependReactor("get", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakePn.PrependReactor("get", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, fakeDeployer, nil }) } @@ -168,7 +169,7 @@ func mockREST(version, desired int64, status api.DeploymentStatus) *REST { } func TestRESTGet(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() tests := []struct { testName string diff --git a/pkg/deploy/registry/generator/config_generator.go b/pkg/deploy/registry/generator/config_generator.go index 8e6c446497a1..938b90194137 100644 --- a/pkg/deploy/registry/generator/config_generator.go +++ b/pkg/deploy/registry/generator/config_generator.go @@ -3,10 +3,13 @@ package generator import ( "fmt" + "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" deployapi "github.com/openshift/origin/pkg/deploy/api" deployutil "github.com/openshift/origin/pkg/deploy/util" @@ -22,8 +25,8 @@ type DeploymentConfigGenerator struct { // Generate returns a potential future DeploymentConfig based on the DeploymentConfig specified // by namespace and name. Returns a RESTful error. -func (g *DeploymentConfigGenerator) Generate(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - config, err := g.Client.GetDeploymentConfig(ctx, name) +func (g *DeploymentConfigGenerator) Generate(ctx apirequest.Context, name string) (*deployapi.DeploymentConfig, error) { + config, err := g.Client.GetDeploymentConfig(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -123,35 +126,35 @@ func (g *DeploymentConfigGenerator) findImageStream(config *deployapi.Deployment if !ok { return nil, fmt.Errorf("invalid ImageStreamTag: %s", params.From.Name) } - return g.Client.GetImageStream(kapi.WithNamespace(kapi.NewContext(), namespace), name) + return g.Client.GetImageStream(apirequest.WithNamespace(apirequest.NewContext(), namespace), name, &metav1.GetOptions{}) } return nil, fmt.Errorf("couldn't find image stream for config %s trigger params", deployutil.LabelForDeploymentConfig(config)) } type GeneratorClient interface { - GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) - GetImageStream(ctx kapi.Context, name string) (*imageapi.ImageStream, error) + GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) + GetImageStream(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) // LEGACY: used, to scan all repositories for a DockerImageReference. Will be removed // when we drop support for reference by DockerImageReference. - ListImageStreams(ctx kapi.Context) (*imageapi.ImageStreamList, error) + ListImageStreams(ctx apirequest.Context) (*imageapi.ImageStreamList, error) } type Client struct { - DCFn func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) - ISFn func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) - LISFn func(ctx kapi.Context) (*imageapi.ImageStreamList, error) - LISFn2 func(ctx kapi.Context, options *kapi.ListOptions) (*imageapi.ImageStreamList, error) + DCFn func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) + ISFn func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) + LISFn func(ctx apirequest.Context) (*imageapi.ImageStreamList, error) + LISFn2 func(ctx apirequest.Context, options *metainternal.ListOptions) (*imageapi.ImageStreamList, error) } -func (c Client) GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - return c.DCFn(ctx, name) +func (c Client) GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { + return c.DCFn(ctx, name, options) } -func (c Client) GetImageStream(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { - return c.ISFn(ctx, name) +func (c Client) GetImageStream(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { + return c.ISFn(ctx, name, options) } -func (c Client) ListImageStreams(ctx kapi.Context) (*imageapi.ImageStreamList, error) { +func (c Client) ListImageStreams(ctx apirequest.Context) (*imageapi.ImageStreamList, error) { if c.LISFn2 != nil { - return c.LISFn2(ctx, &kapi.ListOptions{}) + return c.LISFn2(ctx, &metainternal.ListOptions{}) } return c.LISFn(ctx) } diff --git a/pkg/deploy/registry/generator/config_generator_test.go b/pkg/deploy/registry/generator/config_generator_test.go index 5b597788a8ad..0cf2d8906832 100644 --- a/pkg/deploy/registry/generator/config_generator_test.go +++ b/pkg/deploy/registry/generator/config_generator_test.go @@ -5,8 +5,9 @@ import ( "strings" "testing" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -20,13 +21,13 @@ func init() { func TestGenerate_fromMissingDeploymentConfig(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, id string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, id string, opts *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return nil, kerrors.NewNotFound(deployapi.LegacyResource("DeploymentConfig"), id) }, }, } - config, err := generator.Generate(kapi.NewDefaultContext(), "1234") + config, err := generator.Generate(apirequest.NewDefaultContext(), "1234") if config != nil { t.Fatalf("Unexpected DeploymentConfig generated: %#v", config) @@ -40,10 +41,10 @@ func TestGenerate_fromMissingDeploymentConfig(t *testing.T) { func TestGenerate_fromConfigWithoutTagChange(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, id string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(1), nil }, - ISFn: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + ISFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { stream := makeStream( "test-image-stream", imageapi.DefaultImageTag, @@ -56,7 +57,7 @@ func TestGenerate_fromConfigWithoutTagChange(t *testing.T) { }, } - config, err := generator.Generate(kapi.NewDefaultContext(), "deploy1") + config, err := generator.Generate(apirequest.NewDefaultContext(), "deploy1") if err != nil { t.Fatalf("Unexpected error: %v", err) @@ -74,10 +75,10 @@ func TestGenerate_fromConfigWithoutTagChange(t *testing.T) { func TestGenerate_fromZeroConfigWithoutTagChange(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, id string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(0), nil }, - ISFn: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + ISFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { stream := makeStream( "test-image-stream", imageapi.DefaultImageTag, @@ -90,7 +91,7 @@ func TestGenerate_fromZeroConfigWithoutTagChange(t *testing.T) { }, } - config, err := generator.Generate(kapi.NewDefaultContext(), "deploy1") + config, err := generator.Generate(apirequest.NewDefaultContext(), "deploy1") if err != nil { t.Fatalf("Unexpected error: %v", err) @@ -112,10 +113,10 @@ func TestGenerate_fromConfigWithUpdatedImageRef(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, id string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(1), nil }, - ISFn: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + ISFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*imageapi.ImageStream, error) { stream := makeStream( streamName, imageapi.DefaultImageTag, @@ -128,7 +129,7 @@ func TestGenerate_fromConfigWithUpdatedImageRef(t *testing.T) { }, } - config, err := generator.Generate(kapi.NewDefaultContext(), "deploy1") + config, err := generator.Generate(apirequest.NewDefaultContext(), "deploy1") if err != nil { t.Fatalf("Unexpected error: %v", err) @@ -162,15 +163,15 @@ func TestGenerate_fromConfigWithUpdatedImageRef(t *testing.T) { func TestGenerate_reportsInvalidErrorWhenMissingRepo(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(1), nil }, - ISFn: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + ISFn: func(ctx apirequest.Context, name string, opts *metav1.GetOptions) (*imageapi.ImageStream, error) { return nil, kerrors.NewNotFound(imageapi.LegacyResource("ImageStream"), name) }, }, } - _, err := generator.Generate(kapi.NewDefaultContext(), "deploy1") + _, err := generator.Generate(apirequest.NewDefaultContext(), "deploy1") if err == nil || !kerrors.IsInvalid(err) { t.Fatalf("Unexpected error type: %v", err) } @@ -182,15 +183,15 @@ func TestGenerate_reportsInvalidErrorWhenMissingRepo(t *testing.T) { func TestGenerate_reportsNotFoundErrorWhenMissingDeploymentConfig(t *testing.T) { generator := &DeploymentConfigGenerator{ Client: Client{ - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, name string, opts *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return nil, kerrors.NewNotFound(deployapi.LegacyResource("DeploymentConfig"), name) }, - ISFn: func(ctx kapi.Context, name string) (*imageapi.ImageStream, error) { + ISFn: func(ctx apirequest.Context, name string, opts *metav1.GetOptions) (*imageapi.ImageStream, error) { return nil, kerrors.NewNotFound(imageapi.LegacyResource("ImageStream"), name) }, }, } - _, err := generator.Generate(kapi.NewDefaultContext(), "deploy1") + _, err := generator.Generate(apirequest.NewDefaultContext(), "deploy1") if err == nil || !kerrors.IsNotFound(err) { t.Fatalf("Unexpected error type: %v", err) } @@ -201,7 +202,7 @@ func TestGenerate_reportsNotFoundErrorWhenMissingDeploymentConfig(t *testing.T) func makeStream(name, tag, dir, image string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ tag: { diff --git a/pkg/deploy/registry/generator/rest.go b/pkg/deploy/registry/generator/rest.go index d9945e50d7e4..d44bba622291 100644 --- a/pkg/deploy/registry/generator/rest.go +++ b/pkg/deploy/registry/generator/rest.go @@ -1,8 +1,8 @@ package generator import ( - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -22,6 +22,6 @@ func (s *REST) New() runtime.Object { return &deployapi.DeploymentConfig{} } -func (s *REST) Get(ctx api.Context, id string) (runtime.Object, error) { +func (s *REST) Get(ctx apirequest.Context, id string) (runtime.Object, error) { return s.generator.Generate(ctx, id) } diff --git a/pkg/deploy/registry/instantiate/rest.go b/pkg/deploy/registry/instantiate/rest.go index b612d25f5e39..523819a4d044 100644 --- a/pkg/deploy/registry/instantiate/rest.go +++ b/pkg/deploy/registry/instantiate/rest.go @@ -5,17 +5,18 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -45,13 +46,13 @@ func (s *REST) New() runtime.Object { } // Create instantiates a deployment config -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { req, ok := obj.(*deployapi.DeploymentRequest) if !ok { return nil, errors.NewInternalError(fmt.Errorf("wrong object passed for requesting a new rollout: %#v", obj)) } - configObj, err := r.store.Get(ctx, req.Name) + configObj, err := r.store.Get(ctx, req.Name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -76,7 +77,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } // If we cannot trigger then there is nothing to do here. if !canTrigger { - return &unversioned.Status{ + return &metav1.Status{ Message: fmt.Sprintf("deployment config %q cannot be instantiated", config.Name), Code: int32(204), }, nil @@ -95,7 +96,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } config.Status.LatestVersion++ - userInfo, _ := kapi.UserFrom(ctx) + userInfo, _ := apirequest.UserFrom(ctx) attrs := admission.NewAttributesRecord(config, old, deployapi.Kind("DeploymentConfig").WithVersion(""), config.Namespace, config.Name, deployapi.Resource("DeploymentConfig").WithVersion(""), "", admission.Update, userInfo) if err := r.admit.Admit(attrs); err != nil { return nil, err @@ -127,7 +128,7 @@ func processTriggers(config *deployapi.DeploymentConfig, isn client.ImageStreams // Tag references are already validated name, tag, _ := imageapi.SplitImageStreamTag(params.From.Name) - stream, err := isn.ImageStreams(params.From.Namespace).Get(name) + stream, err := isn.ImageStreams(params.From.Namespace).Get(name, metav1.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { errs = append(errs, err) @@ -257,7 +258,7 @@ func decodeFromLatestDeployment(config *deployapi.DeploymentConfig, rn kcoreclie } latestDeploymentName := deployutil.LatestDeploymentNameForConfig(config) - deployment, err := rn.ReplicationControllers(config.Namespace).Get(latestDeploymentName) + deployment, err := rn.ReplicationControllers(config.Namespace).Get(latestDeploymentName, metav1.GetOptions{}) if err != nil { // If there's no deployment for the latest config, we have no basis of // comparison. It's the responsibility of the deployment config controller diff --git a/pkg/deploy/registry/instantiate/rest_test.go b/pkg/deploy/registry/instantiate/rest_test.go index d547d31ff423..133e860d8cf6 100644 --- a/pkg/deploy/registry/instantiate/rest_test.go +++ b/pkg/deploy/registry/instantiate/rest_test.go @@ -3,11 +3,12 @@ package instantiate import ( "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -49,7 +50,7 @@ func TestProcess_changeForNonAutomaticTag(t *testing.T) { for _, test := range tests { config := deploytest.OkDeploymentConfig(1) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Triggers[0].ImageChangeParams.Automatic = false // The image has been resolved at least once before. config.Spec.Triggers[0].ImageChangeParams.LastTriggeredImage = deploytest.DockerImageReference @@ -58,7 +59,7 @@ func TestProcess_changeForNonAutomaticTag(t *testing.T) { config.Spec.Triggers[0].ImageChangeParams.LastTriggeredImage = "someotherresolveddockerimagereference" fake := &testclient.Fake{} - fake.AddReactor("get", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("get", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if !test.expected { t.Errorf("unexpected imagestream call") } @@ -95,7 +96,7 @@ func TestProcess_changeForUnregisteredTag(t *testing.T) { config.Spec.Triggers[0].ImageChangeParams.From.Name = imageapi.JoinImageStreamTag(stream.Name, "unrelatedtag") fake := &testclient.Fake{} - fake.AddReactor("get", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("get", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, stream, nil }) @@ -135,7 +136,7 @@ func TestProcess_matchScenarios(t *testing.T) { param: &deployapi.DeploymentTriggerImageChangeParams{ Automatic: true, ContainerNames: []string{"container1"}, - From: kapi.ObjectReference{Namespace: kapi.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, + From: kapi.ObjectReference{Namespace: metav1.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, LastTriggeredImage: "", }, @@ -159,7 +160,7 @@ func TestProcess_matchScenarios(t *testing.T) { param: &deployapi.DeploymentTriggerImageChangeParams{ Automatic: false, ContainerNames: []string{"container1"}, - From: kapi.ObjectReference{Namespace: kapi.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, + From: kapi.ObjectReference{Namespace: metav1.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, LastTriggeredImage: "", }, @@ -171,7 +172,7 @@ func TestProcess_matchScenarios(t *testing.T) { param: &deployapi.DeploymentTriggerImageChangeParams{ Automatic: false, ContainerNames: []string{"container1"}, - From: kapi.ObjectReference{Namespace: kapi.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, + From: kapi.ObjectReference{Namespace: metav1.NamespaceDefault, Name: imageapi.JoinImageStreamTag(deploytest.ImageStreamName, imageapi.DefaultImageTag)}, LastTriggeredImage: deploytest.DockerImageReference, }, @@ -195,7 +196,7 @@ func TestProcess_matchScenarios(t *testing.T) { param: &deployapi.DeploymentTriggerImageChangeParams{ Automatic: true, ContainerNames: []string{"container1"}, - From: kapi.ObjectReference{Namespace: kapi.NamespaceDefault, Name: imageapi.JoinImageStreamTag("other-stream", imageapi.DefaultImageTag)}, + From: kapi.ObjectReference{Namespace: metav1.NamespaceDefault, Name: imageapi.JoinImageStreamTag("other-stream", imageapi.DefaultImageTag)}, LastTriggeredImage: "", }, notFound: true, @@ -209,9 +210,9 @@ func TestProcess_matchScenarios(t *testing.T) { t.Logf("running test %q", test.name) fake := &testclient.Fake{} - fake.AddReactor("get", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("get", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if test.notFound { - name := action.(core.GetAction).GetName() + name := action.(clientgotesting.GetAction).GetName() return true, nil, errors.NewNotFound(imageapi.Resource("ImageStream"), name) } stream := fakeStream(deploytest.ImageStreamName, imageapi.DefaultImageTag, deploytest.DockerImageReference, deploytest.ImageID) @@ -219,7 +220,7 @@ func TestProcess_matchScenarios(t *testing.T) { }) config := deploytest.OkDeploymentConfig(1) - config.Namespace = kapi.NamespaceDefault + config.Namespace = metav1.NamespaceDefault config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{ { Type: deployapi.DeploymentTriggerOnImageChange, @@ -244,7 +245,7 @@ func TestProcess_matchScenarios(t *testing.T) { func fakeStream(name, tag, dir, image string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: metav1.NamespaceDefault}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ tag: { @@ -276,7 +277,7 @@ func TestCanTrigger(t *testing.T) { name: "no trigger [w/ podtemplate change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Triggers: []deployapi.DeploymentTriggerPolicy{}, Template: deploytest.OkPodTemplateChanged(), @@ -284,7 +285,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Triggers: []deployapi.DeploymentTriggerPolicy{}, Template: deploytest.OkPodTemplate(), @@ -300,14 +301,14 @@ func TestCanTrigger(t *testing.T) { name: "forced updated", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), }, Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), }, @@ -322,7 +323,7 @@ func TestCanTrigger(t *testing.T) { name: "config change trigger only [w/ podtemplate change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -332,7 +333,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -350,7 +351,7 @@ func TestCanTrigger(t *testing.T) { name: "config change trigger only [no change][initial]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -360,7 +361,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(0), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -378,7 +379,7 @@ func TestCanTrigger(t *testing.T) { name: "config change trigger only [no change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -388,7 +389,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -406,7 +407,7 @@ func TestCanTrigger(t *testing.T) { name: "image change trigger only [automatic=false][w/ podtemplate change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), // Irrelevant change Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -416,7 +417,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -435,7 +436,7 @@ func TestCanTrigger(t *testing.T) { name: "image change trigger only [automatic=false][w/ image change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), // Image has been updated in the template but automatic=false Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -445,7 +446,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -463,7 +464,7 @@ func TestCanTrigger(t *testing.T) { name: "image change trigger only [automatic=true][w/ image change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -473,7 +474,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -491,7 +492,7 @@ func TestCanTrigger(t *testing.T) { name: "image change trigger only [automatic=true][no change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -501,7 +502,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(1), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -519,7 +520,7 @@ func TestCanTrigger(t *testing.T) { name: "config change and image change trigger [automatic=false][initial][w/ image change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -530,7 +531,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(0), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -549,7 +550,7 @@ func TestCanTrigger(t *testing.T) { name: "config change and image change trigger [automatic=false][initial][no change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -560,7 +561,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(0), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -580,7 +581,7 @@ func TestCanTrigger(t *testing.T) { name: "config change and image change trigger [automatic=true][initial][w/ podtemplate change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), // Pod template has changed but the image in the template is yet to be updated Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -591,7 +592,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(0), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -611,7 +612,7 @@ func TestCanTrigger(t *testing.T) { name: "config change and image change trigger [automatic=true][initial][w/ image change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -622,7 +623,7 @@ func TestCanTrigger(t *testing.T) { Status: deploytest.OkDeploymentConfigStatus(0), }, decoded: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplate(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -641,7 +642,7 @@ func TestCanTrigger(t *testing.T) { name: "config change and image change trigger [automatic=true][no change]", config: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{Name: "config"}, + ObjectMeta: metav1.ObjectMeta{Name: "config"}, Spec: deployapi.DeploymentConfigSpec{ Template: deploytest.OkPodTemplateChanged(), Triggers: []deployapi.DeploymentTriggerPolicy{ @@ -662,7 +663,7 @@ func TestCanTrigger(t *testing.T) { t.Logf("running scenario %q", test.name) client := &fake.Clientset{} - client.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { config := test.decoded if config == nil { config = test.config diff --git a/pkg/deploy/registry/instantiate/strategy.go b/pkg/deploy/registry/instantiate/strategy.go index 4e5621d00dc4..7b6984d184af 100644 --- a/pkg/deploy/registry/instantiate/strategy.go +++ b/pkg/deploy/registry/instantiate/strategy.go @@ -3,9 +3,11 @@ package instantiate import ( "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/validation" @@ -34,11 +36,11 @@ func (strategy) GenerateName(base string) string { } // PrepareForCreate is a no-op for the instantiate endpoint. -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // PrepareForUpdate clears fields that are not allowed to be set by the instantiate endpoint. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newDc := obj.(*api.DeploymentConfig) oldDc := old.(*api.DeploymentConfig) @@ -58,16 +60,16 @@ func (strategy) Canonicalize(obj runtime.Object) { } // CheckGracefulDelete allows a deployment config to be gracefully deleted. -func (strategy) CheckGracefulDelete(obj runtime.Object, options *kapi.DeleteOptions) bool { +func (strategy) CheckGracefulDelete(obj runtime.Object, options *metav1.DeleteOptions) bool { return false } // Validate is a no-op for the instantiate endpoint. -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateDeploymentConfig(obj.(*api.DeploymentConfig)) } // ValidateUpdate is the default update validation for the instantiate endpoint. -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateDeploymentConfigUpdate(obj.(*api.DeploymentConfig), old.(*api.DeploymentConfig)) } diff --git a/pkg/deploy/registry/rest.go b/pkg/deploy/registry/rest.go index cb4ca20ebdca..05413e0d727f 100644 --- a/pkg/deploy/registry/rest.go +++ b/pkg/deploy/registry/rest.go @@ -5,11 +5,11 @@ import ( "fmt" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/watch" "github.com/golang/glog" "github.com/openshift/origin/pkg/deploy/api" @@ -27,7 +27,7 @@ var ( // other error state occurred. The last observed deployment state is returned. func WaitForRunningDeployment(rn kcoreclient.ReplicationControllersGetter, observed *kapi.ReplicationController, timeout time.Duration) (*kapi.ReplicationController, bool, error) { fieldSelector := fields.Set{"metadata.name": observed.Name}.AsSelector() - options := kapi.ListOptions{FieldSelector: fieldSelector, ResourceVersion: observed.ResourceVersion} + options := metav1.ListOptions{FieldSelector: fieldSelector.String(), ResourceVersion: observed.ResourceVersion} w, err := rn.ReplicationControllers(observed.Namespace).Watch(options) if err != nil { return observed, false, err @@ -39,8 +39,8 @@ func WaitForRunningDeployment(rn kcoreclient.ReplicationControllersGetter, obser // When we send too old resource version in observed replication controller to // watcher, restart the watch with latest available controller. switch t := e.Object.(type) { - case *unversioned.Status: - if t.Reason == unversioned.StatusReasonGone { + case *metav1.Status: + if t.Reason == metav1.StatusReasonGone { glog.V(5).Infof("encountered error while watching for replication controller: %v (retrying)", t) return false, ErrTooOldResourceVersion } @@ -62,7 +62,7 @@ func WaitForRunningDeployment(rn kcoreclient.ReplicationControllersGetter, obser } }); err != nil { if err == ErrTooOldResourceVersion { - latestRC, err := rn.ReplicationControllers(observed.Namespace).Get(observed.Name) + latestRC, err := rn.ReplicationControllers(observed.Namespace).Get(observed.Name, metav1.GetOptions{}) if err != nil { return observed, false, err } diff --git a/pkg/deploy/registry/rest_test.go b/pkg/deploy/registry/rest_test.go index 8d9c9dff4d8e..3d776de59799 100644 --- a/pkg/deploy/registry/rest_test.go +++ b/pkg/deploy/registry/rest_test.go @@ -4,12 +4,12 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -21,7 +21,7 @@ func TestWaitForRunningDeploymentSuccess(t *testing.T) { kubeclient := fake.NewSimpleClientset([]runtime.Object{fakeController}...) fakeWatch := watch.NewFake() - kubeclient.PrependWatchReactor("replicationcontrollers", core.DefaultWatchReactor(fakeWatch, nil)) + kubeclient.PrependWatchReactor("replicationcontrollers", clientgotesting.DefaultWatchReactor(fakeWatch, nil)) stopChan := make(chan struct{}) go func() { @@ -52,14 +52,14 @@ func TestWaitForRunningDeploymentRestartWatch(t *testing.T) { fakeWatch := watch.NewFake() watchCalledChan := make(chan struct{}) - kubeclient.PrependWatchReactor("replicationcontrollers", func(action core.Action) (bool, watch.Interface, error) { + kubeclient.PrependWatchReactor("replicationcontrollers", func(action clientgotesting.Action) (bool, watch.Interface, error) { fakeWatch.Reset() watchCalledChan <- struct{}{} - return core.DefaultWatchReactor(fakeWatch, nil)(action) + return clientgotesting.DefaultWatchReactor(fakeWatch, nil)(action) }) getReceivedChan := make(chan struct{}) - kubeclient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (bool, runtime.Object, error) { + kubeclient.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { close(getReceivedChan) return true, fakeController, nil }) @@ -86,7 +86,7 @@ func TestWaitForRunningDeploymentRestartWatch(t *testing.T) { } // Send the StatusReasonGone error to watcher which should trigger the watch restart. - goneError := &unversioned.Status{Reason: unversioned.StatusReasonGone} + goneError := &metav1.Status{Reason: metav1.StatusReasonGone} fakeWatch.Error(goneError) // Make sure we observed the "get" action on replication controller, so the watch gets diff --git a/pkg/deploy/registry/rollback/rest.go b/pkg/deploy/registry/rollback/rest.go index 105a9b88e07a..ae839031ae67 100644 --- a/pkg/deploy/registry/rollback/rest.go +++ b/pkg/deploy/registry/rollback/rest.go @@ -3,12 +3,13 @@ package rollback import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -40,8 +41,8 @@ func (r *REST) New() runtime.Object { } // Create generates a new DeploymentConfig representing a rollback. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { - namespace, ok := kapi.NamespaceFrom(ctx) +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kerrors.NewBadRequest("namespace parameter required.") } @@ -54,7 +55,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return nil, kerrors.NewInvalid(deployapi.Kind("DeploymentConfigRollback"), rollback.Name, errs) } - from, err := r.dn.DeploymentConfigs(namespace).Get(rollback.Name) + from, err := r.dn.DeploymentConfigs(namespace).Get(rollback.Name, metav1.GetOptions{}) if err != nil { return nil, newInvalidError(rollback, fmt.Sprintf("cannot get deployment config %q: %v", rollback.Name, err)) } @@ -75,7 +76,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // Find the target deployment and decode its config. name := deployutil.DeploymentNameForConfigVersion(from.Name, revision) - targetDeployment, err := r.rn.ReplicationControllers(namespace).Get(name) + targetDeployment, err := r.rn.ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) if err != nil { return nil, newInvalidError(rollback, err.Error()) } diff --git a/pkg/deploy/registry/rollback/rest_deprecated.go b/pkg/deploy/registry/rollback/rest_deprecated.go index 0bcadf389f3e..63d389f8a0c1 100644 --- a/pkg/deploy/registry/rollback/rest_deprecated.go +++ b/pkg/deploy/registry/rollback/rest_deprecated.go @@ -3,10 +3,12 @@ package rollback import ( "fmt" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/validation" @@ -22,25 +24,25 @@ type DeprecatedREST struct { // GeneratorClient defines a local interface to a rollback generator for testability. type GeneratorClient interface { GenerateRollback(from, to *deployapi.DeploymentConfig, spec *deployapi.DeploymentConfigRollbackSpec) (*deployapi.DeploymentConfig, error) - GetDeployment(ctx kapi.Context, name string) (*kapi.ReplicationController, error) - GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) + GetDeployment(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) + GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) } // Client provides an implementation of Generator client type Client struct { GRFn func(from, to *deployapi.DeploymentConfig, spec *deployapi.DeploymentConfigRollbackSpec) (*deployapi.DeploymentConfig, error) - RCFn func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) - DCFn func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) + RCFn func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) + DCFn func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) } // GetDeployment returns the deploymentConfig with the provided context and name -func (c Client) GetDeploymentConfig(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - return c.DCFn(ctx, name) +func (c Client) GetDeploymentConfig(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { + return c.DCFn(ctx, name, options) } // GetDeployment returns the deployment with the provided context and name -func (c Client) GetDeployment(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { - return c.RCFn(ctx, name) +func (c Client) GetDeployment(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { + return c.RCFn(ctx, name, options) } // GenerateRollback generates a new deploymentConfig by merging a pair of deploymentConfigs @@ -62,7 +64,7 @@ func (s *DeprecatedREST) New() runtime.Object { } // Create generates a new DeploymentConfig representing a rollback. -func (s *DeprecatedREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *DeprecatedREST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { rollback, ok := obj.(*deployapi.DeploymentConfigRollback) if !ok { return nil, kerrors.NewBadRequest(fmt.Sprintf("not a rollback spec: %#v", obj)) @@ -75,7 +77,7 @@ func (s *DeprecatedREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.O // Roll back "from" the current deployment "to" a target deployment // Find the target ("to") deployment and decode the DeploymentConfig - targetDeployment, err := s.generator.GetDeployment(ctx, rollback.Spec.From.Name) + targetDeployment, err := s.generator.GetDeployment(ctx, rollback.Spec.From.Name, &metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return nil, newInvalidDeploymentError(rollback, "Deployment not found") @@ -90,7 +92,7 @@ func (s *DeprecatedREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.O } // Find the current ("from") version of the target deploymentConfig - from, err := s.generator.GetDeploymentConfig(ctx, to.Name) + from, err := s.generator.GetDeploymentConfig(ctx, to.Name, &metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return nil, newInvalidDeploymentError(rollback, diff --git a/pkg/deploy/registry/rollback/rest_deprecated_test.go b/pkg/deploy/registry/rollback/rest_deprecated_test.go index 4a05943b178f..c6caf34e3d12 100644 --- a/pkg/deploy/registry/rollback/rest_deprecated_test.go +++ b/pkg/deploy/registry/rollback/rest_deprecated_test.go @@ -6,8 +6,10 @@ import ( "strings" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" deployapi "github.com/openshift/origin/pkg/deploy/api" _ "github.com/openshift/origin/pkg/deploy/api/install" @@ -18,7 +20,7 @@ import ( func TestCreateErrorDepr(t *testing.T) { rest := DeprecatedREST{} - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfig{}) + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfig{}) if err == nil { t.Errorf("Expected an error") @@ -31,7 +33,7 @@ func TestCreateErrorDepr(t *testing.T) { func TestCreateInvalidDepr(t *testing.T) { rest := DeprecatedREST{} - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{}) + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{}) if err == nil { t.Errorf("Expected an error") @@ -48,22 +50,22 @@ func TestCreateOkDepr(t *testing.T) { GRFn: func(from, to *deployapi.DeploymentConfig, spec *deployapi.DeploymentConfigRollbackSpec) (*deployapi.DeploymentConfig, error) { return &deployapi.DeploymentConfig{}, nil }, - RCFn: func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { + RCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion)) return deployment, nil }, - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(1), nil }, }, codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Spec: deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, }) @@ -87,22 +89,22 @@ func TestCreateGeneratorErrorDepr(t *testing.T) { GRFn: func(from, to *deployapi.DeploymentConfig, spec *deployapi.DeploymentConfigRollbackSpec) (*deployapi.DeploymentConfig, error) { return nil, kerrors.NewInternalError(fmt.Errorf("something terrible happened")) }, - RCFn: func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { + RCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion)) return deployment, nil }, - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return deploytest.OkDeploymentConfig(1), nil }, }, codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - _, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + _, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Spec: deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, }) @@ -119,11 +121,11 @@ func TestCreateMissingDeploymentDepr(t *testing.T) { t.Fatal("unexpected call to generator") return nil, errors.New("something terrible happened") }, - RCFn: func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { + RCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { return nil, kerrors.NewNotFound(kapi.Resource("replicationController"), name) }, - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - namespace, _ := kapi.NamespaceFrom(ctx) + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { + namespace, _ := apirequest.NamespaceFrom(ctx) t.Fatalf("unexpected call to GetDeploymentConfig(%s/%s)", namespace, name) return nil, kerrors.NewNotFound(deployapi.Resource("deploymentConfig"), name) }, @@ -131,11 +133,11 @@ func TestCreateMissingDeploymentDepr(t *testing.T) { codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Spec: deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, }) @@ -156,14 +158,14 @@ func TestCreateInvalidDeploymentDepr(t *testing.T) { t.Fatal("unexpected call to generator") return nil, errors.New("something terrible happened") }, - RCFn: func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { + RCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { // invalidate the encoded config deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion)) deployment.Annotations[deployapi.DeploymentEncodedConfigAnnotation] = "" return deployment, nil }, - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { - namespace, _ := kapi.NamespaceFrom(ctx) + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { + namespace, _ := apirequest.NamespaceFrom(ctx) t.Fatalf("unexpected call to GetDeploymentConfig(%s/%s)", namespace, name) return nil, kerrors.NewNotFound(deployapi.Resource("deploymentConfig"), name) }, @@ -171,11 +173,11 @@ func TestCreateInvalidDeploymentDepr(t *testing.T) { codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Spec: deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, }) @@ -196,22 +198,22 @@ func TestCreateMissingDeploymentConfigDepr(t *testing.T) { t.Fatal("unexpected call to generator") return nil, errors.New("something terrible happened") }, - RCFn: func(ctx kapi.Context, name string) (*kapi.ReplicationController, error) { + RCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*kapi.ReplicationController, error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion)) return deployment, nil }, - DCFn: func(ctx kapi.Context, name string) (*deployapi.DeploymentConfig, error) { + DCFn: func(ctx apirequest.Context, name string, options *metav1.GetOptions) (*deployapi.DeploymentConfig, error) { return nil, kerrors.NewNotFound(deployapi.Resource("deploymentConfig"), name) }, }, codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Spec: deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, }) diff --git a/pkg/deploy/registry/rollback/rest_test.go b/pkg/deploy/registry/rollback/rest_test.go index 32ffaf7e5b97..00e41c14992e 100644 --- a/pkg/deploy/registry/rollback/rest_test.go +++ b/pkg/deploy/registry/rollback/rest_test.go @@ -5,11 +5,12 @@ import ( "strings" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client/testclient" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -31,7 +32,7 @@ var _ RollbackGenerator = &terribleGenerator{} func TestCreateError(t *testing.T) { rest := REST{} - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfig{}) + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfig{}) if err == nil { t.Errorf("Expected an error") @@ -44,7 +45,7 @@ func TestCreateError(t *testing.T) { func TestCreateInvalid(t *testing.T) { rest := REST{} - obj, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{}) + obj, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{}) if err == nil { t.Errorf("Expected an error") @@ -57,16 +58,16 @@ func TestCreateInvalid(t *testing.T) { func TestCreateOk(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploytest.OkDeploymentConfig(2), nil }) kc := &fake.Clientset{} - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), codec) return true, deployment, nil }) - obj, err := NewREST(oc, kc, codec).Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := NewREST(oc, kc, codec).Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 1, @@ -88,11 +89,11 @@ func TestCreateOk(t *testing.T) { func TestCreateRollbackToLatest(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploytest.OkDeploymentConfig(2), nil }) - _, err := NewREST(oc, &fake.Clientset{}, codec).Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + _, err := NewREST(oc, &fake.Clientset{}, codec).Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 2, @@ -109,11 +110,11 @@ func TestCreateRollbackToLatest(t *testing.T) { func TestCreateGeneratorError(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploytest.OkDeploymentConfig(2), nil }) kc := &fake.Clientset{} - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), codec) return true, deployment, nil }) @@ -125,7 +126,7 @@ func TestCreateGeneratorError(t *testing.T) { codec: kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion), } - _, err := rest.Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + _, err := rest.Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 1, @@ -139,16 +140,16 @@ func TestCreateGeneratorError(t *testing.T) { func TestCreateMissingDeployment(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploytest.OkDeploymentConfig(2), nil }) kc := &fake.Clientset{} - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), codec) return true, nil, kerrors.NewNotFound(kapi.Resource("replicationController"), deployment.Name) }) - obj, err := NewREST(oc, kc, codec).Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := NewREST(oc, kc, codec).Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 1, @@ -166,18 +167,18 @@ func TestCreateMissingDeployment(t *testing.T) { func TestCreateInvalidDeployment(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, deploytest.OkDeploymentConfig(2), nil }) kc := &fake.Clientset{} - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { // invalidate the encoded config deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), codec) deployment.Annotations[deployapi.DeploymentEncodedConfigAnnotation] = "" return true, deployment, nil }) - obj, err := NewREST(oc, kc, codec).Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := NewREST(oc, kc, codec).Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 1, @@ -195,17 +196,17 @@ func TestCreateInvalidDeployment(t *testing.T) { func TestCreateMissingDeploymentConfig(t *testing.T) { oc := &testclient.Fake{} - oc.AddReactor("get", "deploymentconfigs", func(action core.Action) (handled bool, ret runtime.Object, err error) { + oc.AddReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { dc := deploytest.OkDeploymentConfig(2) return true, nil, kerrors.NewNotFound(deployapi.Resource("deploymentConfig"), dc.Name) }) kc := &fake.Clientset{} - kc.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kc.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { deployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), codec) return true, deployment, nil }) - obj, err := NewREST(oc, kc, codec).Create(kapi.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ + obj, err := NewREST(oc, kc, codec).Create(apirequest.NewDefaultContext(), &deployapi.DeploymentConfigRollback{ Name: "config", Spec: deployapi.DeploymentConfigRollbackSpec{ Revision: 1, diff --git a/pkg/deploy/registry/rollback/rollback_generator_test.go b/pkg/deploy/registry/rollback/rollback_generator_test.go index 4d263c862157..462f704ad39f 100644 --- a/pkg/deploy/registry/rollback/rollback_generator_test.go +++ b/pkg/deploy/registry/rollback/rollback_generator_test.go @@ -3,6 +3,7 @@ package rollback import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -31,7 +32,7 @@ func TestGeneration(t *testing.T) { spec := &deployapi.DeploymentConfigRollbackSpec{ From: kapi.ObjectReference{ Name: "deployment", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, IncludeTriggers: i&(1<<0) > 0, IncludeTemplate: i&(1<<1) > 0, diff --git a/pkg/deploy/registry/test/deployconfig.go b/pkg/deploy/registry/test/deployconfig.go index 88c93c3b1bc8..39b03b28666c 100644 --- a/pkg/deploy/registry/test/deployconfig.go +++ b/pkg/deploy/registry/test/deployconfig.go @@ -4,10 +4,11 @@ import ( "sync" "github.com/openshift/origin/pkg/deploy/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" ) type DeploymentConfigRegistry struct { @@ -21,21 +22,21 @@ func NewDeploymentConfigRegistry() *DeploymentConfigRegistry { return &DeploymentConfigRegistry{} } -func (r *DeploymentConfigRegistry) ListDeploymentConfigs(ctx kapi.Context, label labels.Selector, field fields.Selector) (*api.DeploymentConfigList, error) { +func (r *DeploymentConfigRegistry) ListDeploymentConfigs(ctx apirequest.Context, label labels.Selector, field fields.Selector) (*api.DeploymentConfigList, error) { r.Lock() defer r.Unlock() return r.DeploymentConfigs, r.Err } -func (r *DeploymentConfigRegistry) GetDeploymentConfig(ctx kapi.Context, id string) (*api.DeploymentConfig, error) { +func (r *DeploymentConfigRegistry) GetDeploymentConfig(ctx apirequest.Context, id string) (*api.DeploymentConfig, error) { r.Lock() defer r.Unlock() return r.DeploymentConfig, r.Err } -func (r *DeploymentConfigRegistry) CreateDeploymentConfig(ctx kapi.Context, image *api.DeploymentConfig) error { +func (r *DeploymentConfigRegistry) CreateDeploymentConfig(ctx apirequest.Context, image *api.DeploymentConfig) error { r.Lock() defer r.Unlock() @@ -43,7 +44,7 @@ func (r *DeploymentConfigRegistry) CreateDeploymentConfig(ctx kapi.Context, imag return r.Err } -func (r *DeploymentConfigRegistry) UpdateDeploymentConfig(ctx kapi.Context, image *api.DeploymentConfig) error { +func (r *DeploymentConfigRegistry) UpdateDeploymentConfig(ctx apirequest.Context, image *api.DeploymentConfig) error { r.Lock() defer r.Unlock() @@ -51,13 +52,13 @@ func (r *DeploymentConfigRegistry) UpdateDeploymentConfig(ctx kapi.Context, imag return r.Err } -func (r *DeploymentConfigRegistry) DeleteDeploymentConfig(ctx kapi.Context, id string) error { +func (r *DeploymentConfigRegistry) DeleteDeploymentConfig(ctx apirequest.Context, id string) error { r.Lock() defer r.Unlock() return r.Err } -func (r *DeploymentConfigRegistry) WatchDeploymentConfigs(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (r *DeploymentConfigRegistry) WatchDeploymentConfigs(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return nil, r.Err } diff --git a/pkg/deploy/strategy/recreate/recreate.go b/pkg/deploy/strategy/recreate/recreate.go index a1649df05018..6eef640af6ff 100644 --- a/pkg/deploy/strategy/recreate/recreate.go +++ b/pkg/deploy/strategy/recreate/recreate.go @@ -8,16 +8,17 @@ import ( "strings" "time" - "k8s.io/client-go/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/record" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -259,13 +260,13 @@ func (s *RecreateDeploymentStrategy) scaleAndWait(deployment *kapi.ReplicationCo return nil, err } - return s.rcClient.ReplicationControllers(deployment.Namespace).Get(deployment.Name) + return s.rcClient.ReplicationControllers(deployment.Namespace).Get(deployment.Name, metav1.GetOptions{}) } // waitForTerminatedPods waits until all pods for the provided replication controller are terminated. func (s *RecreateDeploymentStrategy) waitForTerminatedPods(from *kapi.ReplicationController, timeout time.Duration) { selector := labels.Set(from.Spec.Selector).AsSelector() - options := kapi.ListOptions{LabelSelector: selector} + options := metav1.ListOptions{LabelSelector: selector.String()} podList, err := s.podClient.Pods(from.Namespace).List(options) if err != nil { fmt.Fprintf(s.out, "--> Cannot list pods: %v\nNew pods may be scaled up before old pods terminate\n", err) diff --git a/pkg/deploy/strategy/recreate/recreate_test.go b/pkg/deploy/strategy/recreate/recreate_test.go index b700eddfe12d..197d36e27152 100644 --- a/pkg/deploy/strategy/recreate/recreate_test.go +++ b/pkg/deploy/strategy/recreate/recreate_test.go @@ -7,7 +7,6 @@ import ( "time" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -64,7 +63,7 @@ func TestRecreate_initialDeployment(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = recreateParams(30, "", "", "") - deployment, _ = deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ = deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} strategy.podClient = &fakePodClient{deployerName: deployutil.DeployerPodNameForDeployment(deployment.Name)} @@ -85,7 +84,7 @@ func TestRecreate_initialDeployment(t *testing.T) { func TestRecreate_deploymentPreHookSuccess(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = recreateParams(30, deployapi.LifecycleHookFailurePolicyAbort, "", "") - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) scaler := &cmdtest.FakeScaler{} hookExecuted := false @@ -119,7 +118,7 @@ func TestRecreate_deploymentPreHookSuccess(t *testing.T) { func TestRecreate_deploymentPreHookFail(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = recreateParams(30, deployapi.LifecycleHookFailurePolicyAbort, "", "") - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) scaler := &cmdtest.FakeScaler{} strategy := &RecreateDeploymentStrategy{ @@ -182,7 +181,7 @@ func TestRecreate_deploymentMidHookSuccess(t *testing.T) { func TestRecreate_deploymentPostHookSuccess(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = recreateParams(30, "", "", deployapi.LifecycleHookFailurePolicyAbort) - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) scaler := &cmdtest.FakeScaler{} hookExecuted := false @@ -216,7 +215,7 @@ func TestRecreate_deploymentPostHookSuccess(t *testing.T) { func TestRecreate_deploymentPostHookFail(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = recreateParams(30, "", "", deployapi.LifecycleHookFailurePolicyAbort) - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) scaler := &cmdtest.FakeScaler{} hookExecuted := false @@ -268,8 +267,8 @@ func TestRecreate_acceptorSuccess(t *testing.T) { }, } - oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) - deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} strategy.podClient = &fakePodClient{deployerName: deployutil.DeployerPodNameForDeployment(deployment.Name)} @@ -314,8 +313,8 @@ func TestRecreate_acceptorSuccessWithColdCaches(t *testing.T) { }, } - oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) - deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} strategy.podClient = &fakePodClient{deployerName: deployutil.DeployerPodNameForDeployment(deployment.Name)} @@ -361,8 +360,8 @@ func TestRecreate_acceptorFail(t *testing.T) { }, } - oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) - deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + oldDeployment, _ := deployutil.MakeDeployment(deploytest.OkDeploymentConfig(1), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ = deployutil.MakeDeployment(deploytest.OkDeploymentConfig(2), kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.rcClient = &fakeControllerClient{deployment: deployment} strategy.podClient = &fakePodClient{deployerName: deployutil.DeployerPodNameForDeployment(deployment.Name)} err := strategy.DeployWithAcceptor(oldDeployment, deployment, 2, acceptor) diff --git a/pkg/deploy/strategy/rolling/rolling.go b/pkg/deploy/strategy/rolling/rolling.go index f759be70b144..9cc4ba12ba75 100644 --- a/pkg/deploy/strategy/rolling/rolling.go +++ b/pkg/deploy/strategy/rolling/rolling.go @@ -8,14 +8,15 @@ import ( "os" "time" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/record" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -183,7 +184,7 @@ func (s *RollingDeploymentStrategy) Deploy(from *kapi.ReplicationController, to // Related upstream issue: // https://github.com/kubernetes/kubernetes/pull/7183 err = wait.Poll(s.apiRetryPeriod, s.apiRetryTimeout, func() (done bool, err error) { - existing, err := s.rcClient.ReplicationControllers(to.Namespace).Get(to.Name) + existing, err := s.rcClient.ReplicationControllers(to.Namespace).Get(to.Name, metav1.GetOptions{}) if err != nil { msg := fmt.Sprintf("couldn't look up deployment %s: %s", to.Name, err) if kerrors.IsNotFound(err) { @@ -210,7 +211,7 @@ func (s *RollingDeploymentStrategy) Deploy(from *kapi.ReplicationController, to if err != nil { return err } - to, err = s.rcClient.ReplicationControllers(to.Namespace).Get(to.Name) + to, err = s.rcClient.ReplicationControllers(to.Namespace).Get(to.Name, metav1.GetOptions{}) if err != nil { return err } diff --git a/pkg/deploy/strategy/rolling/rolling_test.go b/pkg/deploy/strategy/rolling/rolling_test.go index e1261a8cf623..ad8432802eba 100644 --- a/pkg/deploy/strategy/rolling/rolling_test.go +++ b/pkg/deploy/strategy/rolling/rolling_test.go @@ -6,12 +6,11 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -45,7 +44,7 @@ func TestRolling_deployInitial(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = deploytest.OkRollingStrategy() - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) strategy.out, strategy.errOut = &bytes.Buffer{}, &bytes.Buffer{} err := strategy.Deploy(nil, deployment, 2) if err != nil { @@ -59,10 +58,10 @@ func TestRolling_deployInitial(t *testing.T) { func TestRolling_deployRolling(t *testing.T) { latestConfig := deploytest.OkDeploymentConfig(1) latestConfig.Spec.Strategy = deploytest.OkRollingStrategy() - latest, _ := deployutil.MakeDeployment(latestConfig, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + latest, _ := deployutil.MakeDeployment(latestConfig, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) config := deploytest.OkDeploymentConfig(2) config.Spec.Strategy = deploytest.OkRollingStrategy() - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) deployments := map[string]*kapi.ReplicationController{ latest.Name: latest, @@ -71,12 +70,12 @@ func TestRolling_deployRolling(t *testing.T) { deploymentUpdated := false client := &fake.Clientset{} - client.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.GetAction).GetName() + client.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.GetAction).GetName() return true, deployments[name], nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updated := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updated := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) deploymentUpdated = true return true, updated, nil }) @@ -156,19 +155,19 @@ func (h *hookExecutorImpl) Execute(hook *deployapi.LifecycleHook, rc *kapi.Repli func TestRolling_deployRollingHooks(t *testing.T) { config := deploytest.OkDeploymentConfig(1) config.Spec.Strategy = deploytest.OkRollingStrategy() - latest, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + latest, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) var hookError error deployments := map[string]*kapi.ReplicationController{latest.Name: latest} client := &fake.Clientset{} - client.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.GetAction).GetName() + client.AddReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.GetAction).GetName() return true, deployments[name], nil }) - client.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - updated := action.(core.UpdateAction).GetObject().(*kapi.ReplicationController) + client.AddReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + updated := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) return true, updated, nil }) @@ -209,7 +208,7 @@ func TestRolling_deployRollingHooks(t *testing.T) { for _, tc := range cases { config := deploytest.OkDeploymentConfig(2) config.Spec.Strategy.RollingParams = tc.params - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) deployments[deployment.Name] = deployment hookError = nil if tc.hookShouldFail { @@ -270,7 +269,7 @@ func TestRolling_deployInitialHooks(t *testing.T) { for i, tc := range cases { config := deploytest.OkDeploymentConfig(2) config.Spec.Strategy.RollingParams = tc.params - deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0])) + deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0])) hookError = nil if tc.hookShouldFail { hookError = fmt.Errorf("hook failure") diff --git a/pkg/deploy/strategy/support/lifecycle.go b/pkg/deploy/strategy/support/lifecycle.go index 7381cc58d070..f59b2df7213a 100644 --- a/pkg/deploy/strategy/support/lifecycle.go +++ b/pkg/deploy/strategy/support/lifecycle.go @@ -9,18 +9,18 @@ import ( "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - kdeployutil "k8s.io/kubernetes/pkg/controller/deployment/util" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -149,7 +149,7 @@ func (e *hookExecutor) tagImages(hook *deployapi.LifecycleHook, rc *kapi.Replica namespace = rc.Namespace } if _, err := e.tags.ImageStreamTags(namespace).Update(&imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: action.To.Name, Namespace: namespace, }, @@ -184,7 +184,7 @@ func (e *hookExecutor) executeExecNewPod(hook *deployapi.LifecycleHook, rc *kapi return err } - deployerPod, err := e.pods.Pods(rc.Namespace).Get(deployutil.DeployerPodNameForDeployment(rc.Name)) + deployerPod, err := e.pods.Pods(rc.Namespace).Get(deployutil.DeployerPodNameForDeployment(rc.Name), metav1.GetOptions{}) if err != nil { return err } @@ -390,7 +390,7 @@ func makeHookPod(hook *deployapi.LifecycleHook, rc *kapi.ReplicationController, } pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: namer.GetPodName(rc.Name, suffix), Annotations: map[string]string{ deployapi.DeploymentAnnotation: rc.Name, @@ -449,12 +449,12 @@ func canRetryReading(pod *kapi.Pod, restarts int32) (bool, int32) { func newPodWatch(client kcoreclient.PodInterface, namespace, name, resourceVersion string, stopChannel chan struct{}) func() *kapi.Pod { fieldSelector := fields.OneTermEqualSelector("metadata.name", name) podLW := &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - options.FieldSelector = fieldSelector + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + options.FieldSelector = fieldSelector.String() return client.List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - options.FieldSelector = fieldSelector + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + options.FieldSelector = fieldSelector.String() return client.Watch(options) }, } @@ -487,12 +487,12 @@ func NewAcceptAvailablePods( selector := labels.Set(rc.Spec.Selector).AsSelector() store := cache.NewStore(cache.MetaNamespaceKeyFunc) lw := &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - options.LabelSelector = selector + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + options.LabelSelector = selector.String() return kclient.Pods(rc.Namespace).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - options.LabelSelector = selector + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + options.LabelSelector = selector.String() return kclient.Pods(rc.Namespace).Watch(options) }, } @@ -559,7 +559,7 @@ func (c *acceptAvailablePods) Accept(rc *kapi.ReplicationController) error { if c.acceptedPods.Has(pod.Name) { continue } - if kdeployutil.IsPodAvailable(pod, c.minReadySeconds, time.Now()) { + if kapi.IsPodAvailable(pod, c.minReadySeconds, metav1.NewTime(time.Now())) { // If the pod is ready, track it as accepted. c.acceptedPods.Insert(pod.Name) } else { diff --git a/pkg/deploy/strategy/support/lifecycle_test.go b/pkg/deploy/strategy/support/lifecycle_test.go index c46700e12789..d2ee435bc46b 100644 --- a/pkg/deploy/strategy/support/lifecycle_test.go +++ b/pkg/deploy/strategy/support/lifecycle_test.go @@ -11,16 +11,16 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -31,19 +31,19 @@ import ( _ "github.com/openshift/origin/pkg/api/install" ) -func nowFunc() *unversioned.Time { - return &unversioned.Time{Time: time.Now().Add(-5 * time.Second)} +func nowFunc() *metav1.Time { + return &metav1.Time{Time: time.Now().Add(-5 * time.Second)} } func newTestClient(config *deployapi.DeploymentConfig) *fake.Clientset { client := &fake.Clientset{} // when creating a lifecycle pod, we query the deployer pod for the start time to // calculate the active deadline seconds for the lifecycle pod. - client.AddReactor("get", "pods", func(a core.Action) (handled bool, ret runtime.Object, err error) { - action := a.(core.GetAction) + client.AddReactor("get", "pods", func(a clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + action := a.(clientgotesting.GetAction) if strings.HasPrefix(action.GetName(), config.Name) && strings.HasSuffix(action.GetName(), "-deploy") { return true, &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "deployer", }, Status: kapi.PodStatus{ @@ -66,7 +66,7 @@ func TestHookExecutor_executeExecNewCreatePodFailure(t *testing.T) { dc := deploytest.OkDeploymentConfig(1) deployment, _ := deployutil.MakeDeployment(dc, kapi.Codecs.LegacyCodec(deployv1.SchemeGroupVersion)) client := newTestClient(dc) - client.AddReactor("create", "pods", func(a core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(a clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, errors.New("could not create the pod") }) executor := &hookExecutor{ @@ -95,15 +95,15 @@ func TestHookExecutor_executeExecNewPodSucceeded(t *testing.T) { podCreated := make(chan struct{}) var createdPod *kapi.Pod - client.AddReactor("create", "pods", func(a core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(a clientgotesting.Action) (handled bool, ret runtime.Object, err error) { defer close(podCreated) - action := a.(core.CreateAction) + action := a.(clientgotesting.CreateAction) object := action.GetObject() createdPod = object.(*kapi.Pod) return true, createdPod, nil }) podsWatch := watch.NewFake() - client.AddWatchReactor("pods", core.DefaultWatchReactor(podsWatch, nil)) + client.AddWatchReactor("pods", clientgotesting.DefaultWatchReactor(podsWatch, nil)) podLogs := &bytes.Buffer{} // Simulate creation of the lifecycle pod @@ -163,15 +163,15 @@ func TestHookExecutor_executeExecNewPodFailed(t *testing.T) { podCreated := make(chan struct{}) var createdPod *kapi.Pod - client.AddReactor("create", "pods", func(a core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("create", "pods", func(a clientgotesting.Action) (handled bool, ret runtime.Object, err error) { defer close(podCreated) - action := a.(core.CreateAction) + action := a.(clientgotesting.CreateAction) object := action.GetObject() createdPod = object.(*kapi.Pod) return true, createdPod, nil }) podsWatch := watch.NewFake() - client.AddWatchReactor("pods", core.DefaultWatchReactor(podsWatch, nil)) + client.AddWatchReactor("pods", clientgotesting.DefaultWatchReactor(podsWatch, nil)) go func() { <-podCreated @@ -200,7 +200,7 @@ func TestHookExecutor_executeExecNewPodFailed(t *testing.T) { func TestHookExecutor_makeHookPodInvalidContainerRef(t *testing.T) { deployerPod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "deployer", }, Status: kapi.PodStatus{ @@ -229,7 +229,7 @@ func TestHookExecutor_makeHookPod(t *testing.T) { maxDeploymentDurationSeconds := deployapi.MaxDeploymentDurationSeconds gracePeriod := int64(10) deployerPod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "deployer", }, Status: kapi.PodStatus{ @@ -265,7 +265,7 @@ func TestHookExecutor_makeHookPod(t *testing.T) { }, }, expected: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: namer.GetPodName(deploymentName, "hook"), Labels: map[string]string{ deployapi.DeploymentPodTypeLabel: "hook", @@ -340,7 +340,7 @@ func TestHookExecutor_makeHookPod(t *testing.T) { }, }, expected: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: namer.GetPodName(deploymentName, "hook"), Labels: map[string]string{ deployapi.DeploymentPodTypeLabel: "hook", @@ -398,7 +398,7 @@ func TestHookExecutor_makeHookPod(t *testing.T) { }, }, expected: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: namer.GetPodName(deploymentName, "hook"), Labels: map[string]string{ deployapi.DeploymentPodTypeLabel: "hook", @@ -463,7 +463,7 @@ func TestHookExecutor_makeHookPod(t *testing.T) { }, }, expected: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: namer.GetPodName(deploymentName, "hook"), Labels: map[string]string{ deployapi.DeploymentPodTypeLabel: "hook", @@ -537,7 +537,7 @@ func TestHookExecutor_makeHookPodRestart(t *testing.T) { }, } deployerPod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "deployer", }, Status: kapi.PodStatus{ @@ -617,7 +617,7 @@ func TestAcceptAvailablePods_scenarios(t *testing.T) { status = kapi.ConditionFalse } pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, }, Status: kapi.PodStatus{ @@ -670,7 +670,7 @@ func TestAcceptAvailablePods_scenarios(t *testing.T) { func deployment(name, namespace string, strategyLabels, strategyAnnotations map[string]string) (*deployapi.DeploymentConfig, *kapi.ReplicationController) { config := &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, @@ -740,7 +740,7 @@ func deployment(name, namespace string, strategyLabels, strategyAnnotations map[ }, }, }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{"a": "b"}, }, }, diff --git a/pkg/deploy/strategy/util/util.go b/pkg/deploy/strategy/util/util.go index 509d3f868352..281bc2f590cd 100644 --- a/pkg/deploy/strategy/util/util.go +++ b/pkg/deploy/strategy/util/util.go @@ -7,10 +7,10 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" deployutil "github.com/openshift/origin/pkg/deploy/util" ) @@ -18,20 +18,20 @@ import ( // RecordConfigEvent records an event for the deployment config referenced by the // deployment. func RecordConfigEvent(client kcoreclient.EventsGetter, deployment *kapi.ReplicationController, decoder runtime.Decoder, eventType, reason, msg string) { - t := unversioned.Time{Time: time.Now()} + t := metav1.Time{Time: time.Now()} var obj runtime.Object = deployment if config, err := deployutil.DecodeDeploymentConfig(deployment, decoder); err == nil { obj = config } else { glog.Errorf("Unable to decode deployment config from %s/%s: %v", deployment.Namespace, deployment.Name, err) } - ref, err := kapi.GetReference(obj) + ref, err := kapi.GetReference(kapi.Scheme, obj) if err != nil { glog.Errorf("Unable to get reference for %#v: %v", obj, err) return } event := &kapi.Event{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), Namespace: ref.Namespace, }, @@ -57,7 +57,7 @@ func RecordConfigWarnings(client kcoreclient.EventsGetter, rc *kapi.ReplicationC if rc == nil { return } - events, err := client.Events(rc.Namespace).Search(rc) + events, err := client.Events(rc.Namespace).Search(kapi.Scheme, rc) if err != nil { fmt.Fprintf(out, "--> Error listing events for replication controller %s: %v\n", rc.Name, err) return diff --git a/pkg/deploy/util/util.go b/pkg/deploy/util/util.go index 166ecade1995..03e4512213be 100644 --- a/pkg/deploy/util/util.go +++ b/pkg/deploy/util/util.go @@ -8,14 +8,15 @@ import ( "strings" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kdeplutil "k8s.io/kubernetes/pkg/controller/deployment/util" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/util/namer" @@ -26,8 +27,8 @@ func NewDeploymentCondition(condType deployapi.DeploymentConditionType, status a return &deployapi.DeploymentCondition{ Type: condType, Status: status, - LastUpdateTime: unversioned.Now(), - LastTransitionTime: unversioned.Now(), + LastUpdateTime: metav1.Now(), + LastTransitionTime: metav1.Now(), Reason: reason, Message: message, } @@ -279,7 +280,7 @@ func MakeDeployment(config *deployapi.DeploymentConfig, codec runtime.Codec) (*a podAnnotations[deployapi.DeploymentVersionAnnotation] = strconv.FormatInt(config.Status.LatestVersion, 10) deployment := &api.ReplicationController{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: deploymentName, Namespace: config.Namespace, Annotations: map[string]string{ @@ -298,7 +299,7 @@ func MakeDeployment(config *deployapi.DeploymentConfig, codec runtime.Codec) (*a Replicas: 0, Selector: selector, Template: &api.PodTemplateSpec{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: podLabels, Annotations: podAnnotations, }, @@ -341,7 +342,7 @@ func GetAvailablePods(pods []*api.Pod, minReadySeconds int32) int32 { available := int32(0) for i := range pods { pod := pods[i] - if kdeplutil.IsPodAvailable(pod, minReadySeconds, time.Now()) { + if api.IsPodAvailable(pod, minReadySeconds, metav1.NewTime(time.Now())) { available++ } } @@ -500,7 +501,7 @@ func MaxSurge(config deployapi.DeploymentConfig) int32 { // annotationFor returns the annotation with key for obj. func annotationFor(obj runtime.Object, key string) string { - meta, err := api.ObjectMetaFor(obj) + meta, err := metav1.ObjectMetaFor(obj) if err != nil { return "" } @@ -559,13 +560,13 @@ func WaitForRunningDeployerPod(podClient kcoreclient.PodsGetter, rc *api.Replica canGetLogs := func(p *api.Pod) bool { return api.PodSucceeded == p.Status.Phase || api.PodFailed == p.Status.Phase || api.PodRunning == p.Status.Phase } - pod, err := podClient.Pods(rc.Namespace).Get(podName) + pod, err := podClient.Pods(rc.Namespace).Get(podName, metav1.GetOptions{}) if err == nil && canGetLogs(pod) { return nil } watcher, err := podClient.Pods(rc.Namespace).Watch( - api.ListOptions{ - FieldSelector: fields.Set{"metadata.name": podName}.AsSelector(), + metav1.ListOptions{ + FieldSelector: fields.Set{"metadata.name": podName}.AsSelector().String(), }, ) if err != nil { @@ -597,6 +598,14 @@ func (d ByLatestVersionAsc) Less(i, j int) bool { return DeploymentVersionFor(d[i]) < DeploymentVersionFor(d[j]) } +type ByLatestVersionAscV1 []*kapiv1.ReplicationController + +func (d ByLatestVersionAscV1) Len() int { return len(d) } +func (d ByLatestVersionAscV1) Swap(i, j int) { d[i], d[j] = d[j], d[i] } +func (d ByLatestVersionAscV1) Less(i, j int) bool { + return DeploymentVersionFor(d[i]) < DeploymentVersionFor(d[j]) +} + // ByLatestVersionDesc sorts deployments by LatestVersion descending. type ByLatestVersionDesc []*api.ReplicationController diff --git a/pkg/deploy/util/util_test.go b/pkg/deploy/util/util_test.go index 3130402fa0e1..f16eeeee8836 100644 --- a/pkg/deploy/util/util_test.go +++ b/pkg/deploy/util/util_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -54,7 +54,7 @@ func podTemplateD() *kapi.PodTemplateSpec { func TestPodName(t *testing.T) { deployment := &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testName", }, } @@ -162,17 +162,17 @@ func TestDeploymentsByLatestVersion_sorting(t *testing.T) { // TestSort verifies that builds are sorted by most recently created func TestSort(t *testing.T) { - present := unversioned.Now() - past := unversioned.NewTime(present.Time.Add(-1 * time.Minute)) + present := metav1.Now() + past := metav1.NewTime(present.Time.Add(-1 * time.Minute)) controllers := []*kapi.ReplicationController{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "past", CreationTimestamp: past, }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "present", CreationTimestamp: present, }, @@ -354,9 +354,9 @@ func TestCanTransitionPhase(t *testing.T) { } var ( - now = unversioned.Now() - later = unversioned.Time{Time: now.Add(time.Minute)} - earlier = unversioned.Time{Time: now.Add(-time.Minute)} + now = metav1.Now() + later = metav1.Time{Time: now.Add(time.Minute)} + earlier = metav1.Time{Time: now.Add(-time.Minute)} condProgressing = func() deployapi.DeploymentCondition { return deployapi.DeploymentCondition{ diff --git a/pkg/diagnostics/client/config_contexts.go b/pkg/diagnostics/client/config_contexts.go index 5ec3eee8ecb2..9aeb8d285f8c 100644 --- a/pkg/diagnostics/client/config_contexts.go +++ b/pkg/diagnostics/client/config_contexts.go @@ -6,9 +6,9 @@ import ( "regexp" "strings" - kapi "k8s.io/kubernetes/pkg/api" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kclientcmd "k8s.io/client-go/tools/clientcmd" + kclientcmdapi "k8s.io/client-go/tools/clientcmd/api" osclientcmd "github.com/openshift/origin/pkg/cmd/util/clientcmd" "github.com/openshift/origin/pkg/diagnostics/types" @@ -218,7 +218,7 @@ func (d ConfigContext) Check() types.DiagnosticResult { // we found a fully-defined context project := context.Namespace if project == "" { - project = kapi.NamespaceDefault // k8s fills this in anyway if missing from the context + project = metav1.NamespaceDefault // k8s fills this in anyway if missing from the context } msgText := contextDesc if isDefaultContext { @@ -231,7 +231,7 @@ func (d ConfigContext) Check() types.DiagnosticResult { osClient, _, err := osclientcmd.NewFactory(kclientcmd.NewDefaultClientConfig(*d.RawConfig, &kclientcmd.ConfigOverrides{Context: *context})).Clients() // client create now *fails* if cannot connect to server; so, address connectivity errors below if err == nil { - if projects, projerr := osClient.Projects().List(kapi.ListOptions{}); projerr != nil { + if projects, projerr := osClient.Projects().List(metav1.ListOptions{}); projerr != nil { err = projerr } else { // success! list := []string{} diff --git a/pkg/diagnostics/client/config_loading.go b/pkg/diagnostics/client/config_loading.go index c8d0f52baec7..6d5036aeacd1 100644 --- a/pkg/diagnostics/client/config_loading.go +++ b/pkg/diagnostics/client/config_loading.go @@ -6,7 +6,7 @@ import ( "os" flag "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + "k8s.io/client-go/tools/clientcmd" "github.com/openshift/origin/pkg/cmd/cli/config" "github.com/openshift/origin/pkg/diagnostics/types" diff --git a/pkg/diagnostics/client/run_diagnostics_pod.go b/pkg/diagnostics/client/run_diagnostics_pod.go index 3f87a2a2c9b3..4067a0f0cc57 100644 --- a/pkg/diagnostics/client/run_diagnostics_pod.go +++ b/pkg/diagnostics/client/run_diagnostics_pod.go @@ -7,6 +7,7 @@ import ( "strconv" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -61,7 +62,7 @@ func (d *DiagnosticPod) runDiagnosticPod(service *kapi.Service, r types.Diagnost } imageName := d.ImageTemplate.ExpandOrDie("deployer") pod, err := d.KubeClient.Core().Pods(d.Namespace).Create(&kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{GenerateName: "pod-diagnostic-test-"}, + ObjectMeta: metav1.ObjectMeta{GenerateName: "pod-diagnostic-test-"}, Spec: kapi.PodSpec{ RestartPolicy: kapi.RestartPolicyNever, Containers: []kapi.Container{ @@ -79,12 +80,12 @@ func (d *DiagnosticPod) runDiagnosticPod(service *kapi.Service, r types.Diagnost } defer func() { // delete what we created, or notify that we couldn't zero := int64(0) - delOpts := kapi.DeleteOptions{TypeMeta: pod.TypeMeta, GracePeriodSeconds: &zero} + delOpts := metav1.DeleteOptions{TypeMeta: pod.TypeMeta, GracePeriodSeconds: &zero} if err := d.KubeClient.Core().Pods(d.Namespace).Delete(pod.ObjectMeta.Name, &delOpts); err != nil { r.Error("DCl2002", err, fmt.Sprintf("Deleting diagnostic pod '%s' failed. Error: %s", pod.ObjectMeta.Name, fmt.Sprintf("(%T) %[1]s", err))) } }() - pod, err = d.KubeClient.Core().Pods(d.Namespace).Get(pod.ObjectMeta.Name) // status is filled in post-create + pod, err = d.KubeClient.Core().Pods(d.Namespace).Get(pod.ObjectMeta.Name, metav1.GetOptions{}) // status is filled in post-create if err != nil { r.Error("DCli2003", err, fmt.Sprintf("Retrieving the diagnostic pod definition failed. Error: (%T) %[1]v", err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/clusterrolebindings.go b/pkg/diagnostics/cluster/aggregated_logging/clusterrolebindings.go index ebea3aaa692d..a614ee241993 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/clusterrolebindings.go +++ b/pkg/diagnostics/cluster/aggregated_logging/clusterrolebindings.go @@ -3,8 +3,8 @@ package aggregated_logging import ( "fmt" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/apis/rbac" - "k8s.io/kubernetes/pkg/util/sets" ) const clusterReaderRoleBindingName = "cluster-readers" diff --git a/pkg/diagnostics/cluster/aggregated_logging/daemonsets.go b/pkg/diagnostics/cluster/aggregated_logging/daemonsets.go index ba39ff21664c..d920165177b8 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/daemonsets.go +++ b/pkg/diagnostics/cluster/aggregated_logging/daemonsets.go @@ -3,9 +3,10 @@ package aggregated_logging import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" kapi "k8s.io/kubernetes/pkg/api" kapisext "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/labels" ) const daemonSetNoLabeledNodes = ` @@ -50,16 +51,16 @@ var loggingInfraFluentdSelector = labels.Set{loggingInfraKey: "fluentd"} func checkDaemonSets(r diagnosticReporter, adapter daemonsetAdapter, project string) { r.Debug("AGL0400", fmt.Sprintf("Checking DaemonSets in project '%s'...", project)) - dsList, err := adapter.daemonsets(project, kapi.ListOptions{LabelSelector: loggingInfraFluentdSelector.AsSelector()}) + dsList, err := adapter.daemonsets(project, metav1.ListOptions{LabelSelector: loggingInfraFluentdSelector.AsSelector().String()}) if err != nil { r.Error("AGL0405", err, fmt.Sprintf("There was an error while trying to retrieve the logging DaemonSets in project '%s' which is most likely transient: %s", project, err)) return } if len(dsList.Items) == 0 { - r.Error("AGL0407", err, fmt.Sprintf(daemonSetNotFound, project, loggingInfraFluentdSelector.AsSelector())) + r.Error("AGL0407", err, fmt.Sprintf(daemonSetNotFound, project, loggingInfraFluentdSelector.AsSelector().String())) return } - nodeList, err := adapter.nodes(kapi.ListOptions{}) + nodeList, err := adapter.nodes(metav1.ListOptions{}) if err != nil { r.Error("AGL0410", err, fmt.Sprintf("There was an error while trying to retrieve the list of Nodes which is most likely transient: %s", err)) return @@ -96,7 +97,7 @@ func checkDaemonSetPods(r diagnosticReporter, adapter daemonsetAdapter, ds kapis } podSelector := labels.Set(ds.Spec.Selector.MatchLabels).AsSelector() r.Debug("AGL0435", fmt.Sprintf("Checking for running pods for DaemonSet '%s' with matchLabels '%s'", ds.ObjectMeta.Name, podSelector)) - podList, err := adapter.pods(project, kapi.ListOptions{LabelSelector: podSelector}) + podList, err := adapter.pods(project, metav1.ListOptions{LabelSelector: podSelector.String()}) if err != nil { r.Error("AGL0438", err, fmt.Sprintf("There was an error retrieving pods matched to DaemonSet '%s' that is most likely transient: %s", ds.ObjectMeta.Name, err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/daemonsets_test.go b/pkg/diagnostics/cluster/aggregated_logging/daemonsets_test.go index 542627144903..f69450407cc2 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/daemonsets_test.go +++ b/pkg/diagnostics/cluster/aggregated_logging/daemonsets_test.go @@ -4,8 +4,8 @@ import ( "errors" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kapisext "k8s.io/kubernetes/pkg/apis/extensions" "github.com/openshift/origin/pkg/diagnostics/log" @@ -51,7 +51,7 @@ func (f *fakeDaemonSetDiagnostic) addDaemonSetWithSelector(key string, value str NodeSelector: selector, }, }, - Selector: &unversioned.LabelSelector{MatchLabels: selector}, + Selector: &metav1.LabelSelector{MatchLabels: selector}, }, } f.fakeDaemonsets.Items = append(f.fakeDaemonsets.Items, ds) @@ -60,14 +60,14 @@ func (f *fakeDaemonSetDiagnostic) addDaemonSetWithSelector(key string, value str func (f *fakeDaemonSetDiagnostic) addNodeWithLabel(key string, value string) { labels := map[string]string{key: value} node := kapi.Node{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: labels, }, } f.fakeNodes.Items = append(f.fakeNodes.Items, node) } -func (f *fakeDaemonSetDiagnostic) daemonsets(project string, options kapi.ListOptions) (*kapisext.DaemonSetList, error) { +func (f *fakeDaemonSetDiagnostic) daemonsets(project string, options metav1.ListOptions) (*kapisext.DaemonSetList, error) { value, ok := f.clienterrors[testDsKey] if ok { return nil, value @@ -75,7 +75,7 @@ func (f *fakeDaemonSetDiagnostic) daemonsets(project string, options kapi.ListOp return &f.fakeDaemonsets, nil } -func (f *fakeDaemonSetDiagnostic) nodes(options kapi.ListOptions) (*kapi.NodeList, error) { +func (f *fakeDaemonSetDiagnostic) nodes(options metav1.ListOptions) (*kapi.NodeList, error) { value, ok := f.clienterrors[testNodesKey] if ok { return nil, value @@ -83,7 +83,7 @@ func (f *fakeDaemonSetDiagnostic) nodes(options kapi.ListOptions) (*kapi.NodeLis return &f.fakeNodes, nil } -func (f *fakeDaemonSetDiagnostic) pods(project string, options kapi.ListOptions) (*kapi.PodList, error) { +func (f *fakeDaemonSetDiagnostic) pods(project string, options metav1.ListOptions) (*kapi.PodList, error) { value, ok := f.clienterrors[testPodsKey] if ok { return nil, value diff --git a/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs.go b/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs.go index fe58c0a03e66..7c2d9abf42f3 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs.go +++ b/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs.go @@ -4,10 +4,11 @@ import ( "fmt" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/selection" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -60,7 +61,7 @@ func checkDeploymentConfigs(r diagnosticReporter, adapter deploymentConfigAdapte req, _ := labels.NewRequirement(loggingInfraKey, selection.Exists, nil) selector := labels.NewSelector().Add(*req) r.Debug("AGL0040", fmt.Sprintf("Checking for DeploymentConfigs in project '%s' with selector '%s'", project, selector)) - dcList, err := adapter.deploymentconfigs(project, kapi.ListOptions{LabelSelector: selector}) + dcList, err := adapter.deploymentconfigs(project, metav1.ListOptions{LabelSelector: selector.String()}) if err != nil { r.Error("AGL0045", err, fmt.Sprintf("There was an error while trying to retrieve the DeploymentConfigs in project '%s': %s", project, err)) return @@ -93,7 +94,7 @@ func checkDeploymentConfigPods(r diagnosticReporter, adapter deploymentConfigAda provReq, _ := labels.NewRequirement(providerKey, selection.Equals, []string{openshiftValue}) podSelector := labels.NewSelector().Add(*compReq, *provReq) r.Debug("AGL0070", fmt.Sprintf("Getting pods that match selector '%s'", podSelector)) - podList, err := adapter.pods(project, kapi.ListOptions{LabelSelector: podSelector}) + podList, err := adapter.pods(project, metav1.ListOptions{LabelSelector: podSelector.String()}) if err != nil { r.Error("AGL0075", err, fmt.Sprintf("There was an error while trying to retrieve the pods for the AggregatedLogging stack: %s", err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs_test.go b/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs_test.go index a2cf1650178a..b851100055e6 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs_test.go +++ b/pkg/diagnostics/cluster/aggregated_logging/deploymentconfigs_test.go @@ -4,6 +4,7 @@ import ( "errors" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -32,7 +33,7 @@ func newFakeDeploymentConfigsDiagnostic(t *testing.T) *fakeDeploymentConfigsDiag func (f *fakeDeploymentConfigsDiagnostic) addDeployConfigFor(component string) { labels := map[string]string{componentKey: component} dc := deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: component + "Name", Labels: labels, }, @@ -46,7 +47,7 @@ func (f *fakeDeploymentConfigsDiagnostic) addPodFor(comp string, state kapi.PodP annotations[deployapi.DeploymentConfigAnnotation] = comp } pod := kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: comp, Annotations: annotations, }, @@ -58,7 +59,7 @@ func (f *fakeDeploymentConfigsDiagnostic) addPodFor(comp string, state kapi.PodP f.fakePods.Items = append(f.fakePods.Items, pod) } -func (f *fakeDeploymentConfigsDiagnostic) deploymentconfigs(project string, options kapi.ListOptions) (*deployapi.DeploymentConfigList, error) { +func (f *fakeDeploymentConfigsDiagnostic) deploymentconfigs(project string, options metav1.ListOptions) (*deployapi.DeploymentConfigList, error) { f.test.Logf(">> calling deploymentconfigs: %s", f.clienterrors) value, ok := f.clienterrors[testDcKey] if ok { @@ -69,7 +70,7 @@ func (f *fakeDeploymentConfigsDiagnostic) deploymentconfigs(project string, opti return &f.fakeDcs, nil } -func (f *fakeDeploymentConfigsDiagnostic) pods(project string, options kapi.ListOptions) (*kapi.PodList, error) { +func (f *fakeDeploymentConfigsDiagnostic) pods(project string, options metav1.ListOptions) (*kapi.PodList, error) { value, ok := f.clienterrors[testDcPodsKey] if ok { return nil, value diff --git a/pkg/diagnostics/cluster/aggregated_logging/diagnostic.go b/pkg/diagnostics/cluster/aggregated_logging/diagnostic.go index 0811da4ae1c3..9c2e1943bd97 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/diagnostic.go +++ b/pkg/diagnostics/cluster/aggregated_logging/diagnostic.go @@ -5,10 +5,11 @@ import ( "fmt" "net/url" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" kapi "k8s.io/kubernetes/pkg/api" kapisext "k8s.io/kubernetes/pkg/apis/extensions" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/labels" authapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -50,41 +51,41 @@ func NewAggregatedLogging(masterConfigFile string, kclient kclientset.Interface, } func (d *AggregatedLogging) getScc(name string) (*kapi.SecurityContextConstraints, error) { - return d.KubeClient.Core().SecurityContextConstraints().Get(name) + return d.KubeClient.Core().SecurityContextConstraints().Get(name, metav1.GetOptions{}) } func (d *AggregatedLogging) getClusterRoleBinding(name string) (*authapi.ClusterRoleBinding, error) { - return d.OsClient.ClusterRoleBindings().Get(name) + return d.OsClient.ClusterRoleBindings().Get(name, metav1.GetOptions{}) } -func (d *AggregatedLogging) routes(project string, options kapi.ListOptions) (*routesapi.RouteList, error) { +func (d *AggregatedLogging) routes(project string, options metav1.ListOptions) (*routesapi.RouteList, error) { return d.OsClient.Routes(project).List(options) } -func (d *AggregatedLogging) serviceAccounts(project string, options kapi.ListOptions) (*kapi.ServiceAccountList, error) { +func (d *AggregatedLogging) serviceAccounts(project string, options metav1.ListOptions) (*kapi.ServiceAccountList, error) { return d.KubeClient.Core().ServiceAccounts(project).List(options) } -func (d *AggregatedLogging) services(project string, options kapi.ListOptions) (*kapi.ServiceList, error) { +func (d *AggregatedLogging) services(project string, options metav1.ListOptions) (*kapi.ServiceList, error) { return d.KubeClient.Core().Services(project).List(options) } func (d *AggregatedLogging) endpointsForService(project string, service string) (*kapi.Endpoints, error) { - return d.KubeClient.Core().Endpoints(project).Get(service) + return d.KubeClient.Core().Endpoints(project).Get(service, metav1.GetOptions{}) } -func (d *AggregatedLogging) daemonsets(project string, options kapi.ListOptions) (*kapisext.DaemonSetList, error) { - return d.KubeClient.Extensions().DaemonSets(project).List(kapi.ListOptions{LabelSelector: loggingInfraFluentdSelector.AsSelector()}) +func (d *AggregatedLogging) daemonsets(project string, options metav1.ListOptions) (*kapisext.DaemonSetList, error) { + return d.KubeClient.Extensions().DaemonSets(project).List(metav1.ListOptions{LabelSelector: loggingInfraFluentdSelector.AsSelector().String()}) } -func (d *AggregatedLogging) nodes(options kapi.ListOptions) (*kapi.NodeList, error) { - return d.KubeClient.Core().Nodes().List(kapi.ListOptions{}) +func (d *AggregatedLogging) nodes(options metav1.ListOptions) (*kapi.NodeList, error) { + return d.KubeClient.Core().Nodes().List(metav1.ListOptions{}) } -func (d *AggregatedLogging) pods(project string, options kapi.ListOptions) (*kapi.PodList, error) { +func (d *AggregatedLogging) pods(project string, options metav1.ListOptions) (*kapi.PodList, error) { return d.KubeClient.Core().Pods(project).List(options) } -func (d *AggregatedLogging) deploymentconfigs(project string, options kapi.ListOptions) (*deployapi.DeploymentConfigList, error) { +func (d *AggregatedLogging) deploymentconfigs(project string, options metav1.ListOptions) (*deployapi.DeploymentConfigList, error) { return d.OsClient.DeploymentConfigs(project).List(options) } @@ -175,7 +176,7 @@ func retrieveLoggingProject(r types.DiagnosticResult, masterCfg *configapi.Maste return projectName } - routeList, err := osClient.Routes(kapi.NamespaceAll).List(kapi.ListOptions{LabelSelector: loggingSelector.AsSelector()}) + routeList, err := osClient.Routes(metav1.NamespaceAll).List(metav1.ListOptions{LabelSelector: loggingSelector.AsSelector().String()}) if err != nil { r.Error("AGL0012", err, fmt.Sprintf("There was an error while trying to find the route associated with '%s' which is probably transient: %s", loggingUrl, err)) return projectName @@ -197,7 +198,7 @@ func retrieveLoggingProject(r types.DiagnosticResult, masterCfg *configapi.Maste r.Error("AGL0014", errors.New(message), message) return "" } - project, err := osClient.Projects().Get(projectName) + project, err := osClient.Projects().Get(projectName, metav1.GetOptions{}) if err != nil { r.Error("AGL0018", err, fmt.Sprintf("There was an error retrieving project '%s' which is most likely a transient error: %s", projectName, err)) return "" diff --git a/pkg/diagnostics/cluster/aggregated_logging/interfaces.go b/pkg/diagnostics/cluster/aggregated_logging/interfaces.go index 7144d2af511b..bcbcef5e7b36 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/interfaces.go +++ b/pkg/diagnostics/cluster/aggregated_logging/interfaces.go @@ -1,6 +1,7 @@ package aggregated_logging import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kapisext "k8s.io/kubernetes/pkg/apis/extensions" @@ -18,7 +19,7 @@ type diagnosticReporter interface { } type routesAdapter interface { - routes(project string, options kapi.ListOptions) (*routesapi.RouteList, error) + routes(project string, options metav1.ListOptions) (*routesapi.RouteList, error) } type sccAdapter interface { @@ -32,29 +33,29 @@ type clusterRoleBindingsAdapter interface { //deploymentConfigAdapter is an abstraction to retrieve resource for validating dcs //for aggregated logging diagnostics type deploymentConfigAdapter interface { - deploymentconfigs(project string, options kapi.ListOptions) (*deployapi.DeploymentConfigList, error) + deploymentconfigs(project string, options metav1.ListOptions) (*deployapi.DeploymentConfigList, error) podsAdapter } //daemonsetAdapter is an abstraction to retrieve resources for validating daemonsets //for aggregated logging diagnostics type daemonsetAdapter interface { - daemonsets(project string, options kapi.ListOptions) (*kapisext.DaemonSetList, error) - nodes(options kapi.ListOptions) (*kapi.NodeList, error) + daemonsets(project string, options metav1.ListOptions) (*kapisext.DaemonSetList, error) + nodes(options metav1.ListOptions) (*kapi.NodeList, error) podsAdapter } type podsAdapter interface { - pods(project string, options kapi.ListOptions) (*kapi.PodList, error) + pods(project string, options metav1.ListOptions) (*kapi.PodList, error) } //saAdapter abstractions to retrieve service accounts type saAdapter interface { - serviceAccounts(project string, options kapi.ListOptions) (*kapi.ServiceAccountList, error) + serviceAccounts(project string, options metav1.ListOptions) (*kapi.ServiceAccountList, error) } //servicesAdapter abstracts retrieving services type servicesAdapter interface { - services(project string, options kapi.ListOptions) (*kapi.ServiceList, error) + services(project string, options metav1.ListOptions) (*kapi.ServiceList, error) endpointsForService(project string, serviceName string) (*kapi.Endpoints, error) } diff --git a/pkg/diagnostics/cluster/aggregated_logging/kibana.go b/pkg/diagnostics/cluster/aggregated_logging/kibana.go index 4f4b64b5c3ff..2adf5421a5f5 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/kibana.go +++ b/pkg/diagnostics/cluster/aggregated_logging/kibana.go @@ -6,9 +6,10 @@ import ( "net/url" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/diagnostics/types" @@ -23,7 +24,7 @@ const ( //checkKibana verifies the various integration points between Kibana and logging func checkKibana(r types.DiagnosticResult, osClient *client.Client, kClient kclientset.Interface, project string) { - oauthclient, err := osClient.OAuthClients().Get(kibanaProxyOauthClientName) + oauthclient, err := osClient.OAuthClients().Get(kibanaProxyOauthClientName, metav1.GetOptions{}) if err != nil { r.Error("AGL0115", err, fmt.Sprintf("Error retrieving the OauthClient '%s': %s. Unable to check Kibana", kibanaProxyOauthClientName, err)) return @@ -35,7 +36,7 @@ func checkKibana(r types.DiagnosticResult, osClient *client.Client, kClient kcli //checkKibanaSecret confirms the secret used by kibana matches that configured in the oauth client func checkKibanaSecret(r types.DiagnosticResult, osClient *client.Client, kClient kclientset.Interface, project string, oauthclient *oauthapi.OAuthClient) { r.Debug("AGL0100", "Checking oauthclient secrets...") - secret, err := kClient.Core().Secrets(project).Get(kibanaProxySecretName) + secret, err := kClient.Core().Secrets(project).Get(kibanaProxySecretName, metav1.GetOptions{}) if err != nil { r.Error("AGL0105", err, fmt.Sprintf("Error retrieving the secret '%s': %s", kibanaProxySecretName, err)) return @@ -56,7 +57,7 @@ func checkKibanaSecret(r types.DiagnosticResult, osClient *client.Client, kClien //checkKibanaRoutesInOauthClient verifies the client contains the correct redirect uris func checkKibanaRoutesInOauthClient(r types.DiagnosticResult, osClient *client.Client, project string, oauthclient *oauthapi.OAuthClient) { r.Debug("AGL0141", "Checking oauthclient redirectURIs for the logging routes...") - routeList, err := osClient.Routes(project).List(kapi.ListOptions{LabelSelector: loggingSelector.AsSelector()}) + routeList, err := osClient.Routes(project).List(metav1.ListOptions{LabelSelector: loggingSelector.AsSelector().String()}) if err != nil { r.Error("AGL0143", err, fmt.Sprintf("Error retrieving the logging routes: %s", err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/routes.go b/pkg/diagnostics/cluster/aggregated_logging/routes.go index 3514dbcabe02..05a6edbf1687 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/routes.go +++ b/pkg/diagnostics/cluster/aggregated_logging/routes.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" routes "github.com/openshift/origin/pkg/route/api" @@ -31,7 +32,7 @@ Try updating the route certificate to include its host as either the CommonName //checkRoutes looks through the logging infra routes to see if they have been accepted, and ... func checkRoutes(r diagnosticReporter, adapter routesAdapter, project string) { r.Debug("AGL0300", "Checking routes...") - routeList, err := adapter.routes(project, kapi.ListOptions{LabelSelector: loggingSelector.AsSelector()}) + routeList, err := adapter.routes(project, metav1.ListOptions{LabelSelector: loggingSelector.AsSelector().String()}) if err != nil { r.Error("AGL0305", err, fmt.Sprintf("There was an error retrieving routes in the project '%s' with selector '%s': %s", project, loggingSelector.AsSelector(), err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/routes_test.go b/pkg/diagnostics/cluster/aggregated_logging/routes_test.go index d71e6cf93dd4..2d3b9bee8119 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/routes_test.go +++ b/pkg/diagnostics/cluster/aggregated_logging/routes_test.go @@ -4,6 +4,7 @@ import ( "errors" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/openshift/origin/pkg/diagnostics/log" @@ -37,7 +38,7 @@ func (f *fakeRoutesDiagnostic) addRouteWith(condType routesapi.RouteIngressCondi }, } route := routesapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "aname"}, + ObjectMeta: metav1.ObjectMeta{Name: "aname"}, Status: routesapi.RouteStatus{ Ingress: []routesapi.RouteIngress{ingress}, }, @@ -52,7 +53,7 @@ func (f *fakeRoutesDiagnostic) addRouteWith(condType routesapi.RouteIngressCondi f.fakeRoutes.Items = append(f.fakeRoutes.Items, route) } -func (f *fakeRoutesDiagnostic) routes(project string, options kapi.ListOptions) (*routesapi.RouteList, error) { +func (f *fakeRoutesDiagnostic) routes(project string, options metav1.ListOptions) (*routesapi.RouteList, error) { value, ok := f.clienterrors[testRoutesKey] if ok { return nil, value diff --git a/pkg/diagnostics/cluster/aggregated_logging/scc.go b/pkg/diagnostics/cluster/aggregated_logging/scc.go index 8c347d0512e6..49a634443251 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/scc.go +++ b/pkg/diagnostics/cluster/aggregated_logging/scc.go @@ -3,7 +3,7 @@ package aggregated_logging import ( "fmt" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) const sccPrivilegedName = "privileged" diff --git a/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts.go b/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts.go index 1ffdf23527f7..779ced8311c0 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts.go +++ b/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" ) var serviceAccountNames = sets.NewString("logging-deployer", "aggregated-logging-kibana", "aggregated-logging-curator", "aggregated-logging-elasticsearch", fluentdServiceAccountName) @@ -17,7 +17,7 @@ properly without them. You may need to re-run the installer. func checkServiceAccounts(d diagnosticReporter, f saAdapter, project string) { d.Debug("AGL0500", fmt.Sprintf("Checking ServiceAccounts in project '%s'...", project)) - saList, err := f.serviceAccounts(project, kapi.ListOptions{}) + saList, err := f.serviceAccounts(project, metav1.ListOptions{}) if err != nil { d.Error("AGL0505", err, fmt.Sprintf("There was an error while trying to retrieve the pods for the AggregatedLogging stack: %s", err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts_test.go b/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts_test.go index 43cca47f24ba..c511234e105a 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts_test.go +++ b/pkg/diagnostics/cluster/aggregated_logging/serviceaccounts_test.go @@ -4,6 +4,7 @@ import ( "errors" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/openshift/origin/pkg/diagnostics/log" @@ -21,7 +22,7 @@ func newMockServiceAccountDiagnostic(t *testing.T) *mockServiceAccountDiagnostic } } -func (m *mockServiceAccountDiagnostic) serviceAccounts(project string, options kapi.ListOptions) (*kapi.ServiceAccountList, error) { +func (m *mockServiceAccountDiagnostic) serviceAccounts(project string, options metav1.ListOptions) (*kapi.ServiceAccountList, error) { if m.err != nil { return &m.accounts, m.err } @@ -29,7 +30,7 @@ func (m *mockServiceAccountDiagnostic) serviceAccounts(project string, options k } func (d *mockServiceAccountDiagnostic) addServiceAccountNamed(name string) { - meta := kapi.ObjectMeta{Name: name} + meta := metav1.ObjectMeta{Name: name} d.accounts.Items = append(d.accounts.Items, kapi.ServiceAccount{ObjectMeta: meta}) } diff --git a/pkg/diagnostics/cluster/aggregated_logging/services.go b/pkg/diagnostics/cluster/aggregated_logging/services.go index 7f1052622124..8d39b6fad479 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/services.go +++ b/pkg/diagnostics/cluster/aggregated_logging/services.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" ) var loggingServices = sets.NewString("logging-es", "logging-es-cluster", "logging-es-ops", "logging-es-ops-cluster", "logging-kibana", "logging-kibana-ops") @@ -21,7 +21,7 @@ may not matter if you chose not to install a separate logging stack to support o // checkServices looks to see if the aggregated logging services exist func checkServices(r diagnosticReporter, adapter servicesAdapter, project string) { r.Debug("AGL0200", fmt.Sprintf("Checking for services in project '%s' with selector '%s'", project, loggingSelector.AsSelector())) - serviceList, err := adapter.services(project, kapi.ListOptions{LabelSelector: loggingSelector.AsSelector()}) + serviceList, err := adapter.services(project, metav1.ListOptions{LabelSelector: loggingSelector.AsSelector().String()}) if err != nil { r.Error("AGL0205", err, fmt.Sprintf("There was an error while trying to retrieve the logging services: %s", err)) return diff --git a/pkg/diagnostics/cluster/aggregated_logging/services_test.go b/pkg/diagnostics/cluster/aggregated_logging/services_test.go index 312c5e0031c5..338f70a1b1cf 100644 --- a/pkg/diagnostics/cluster/aggregated_logging/services_test.go +++ b/pkg/diagnostics/cluster/aggregated_logging/services_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/openshift/origin/pkg/diagnostics/log" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" ) @@ -23,7 +24,7 @@ func newFakeServicesDiagnostic(t *testing.T) *fakeServicesDiagnostic { } } -func (f *fakeServicesDiagnostic) services(project string, options kapi.ListOptions) (*kapi.ServiceList, error) { +func (f *fakeServicesDiagnostic) services(project string, options metav1.ListOptions) (*kapi.ServiceList, error) { if f.err != nil { return &f.list, f.err } @@ -44,7 +45,7 @@ func (f *fakeServicesDiagnostic) addEndpointSubsetTo(service string) { } func (f *fakeServicesDiagnostic) addServiceNamed(name string) { - meta := kapi.ObjectMeta{Name: name} + meta := metav1.ObjectMeta{Name: name} f.list.Items = append(f.list.Items, kapi.Service{ObjectMeta: meta}) } diff --git a/pkg/diagnostics/cluster/master_node.go b/pkg/diagnostics/cluster/master_node.go index 5b88e0a340a6..8e67a430f867 100644 --- a/pkg/diagnostics/cluster/master_node.go +++ b/pkg/diagnostics/cluster/master_node.go @@ -7,6 +7,7 @@ import ( "net/url" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -82,7 +83,7 @@ func (d *MasterNode) CanRun() (bool, error) { func (d *MasterNode) Check() types.DiagnosticResult { r := types.NewDiagnosticResult(MasterNodeName) - nodes, err := d.KubeClient.Core().Nodes().List(kapi.ListOptions{}) + nodes, err := d.KubeClient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { r.Error("DClu3002", err, fmt.Sprintf(clientErrorGettingNodes, err)) return r diff --git a/pkg/diagnostics/cluster/master_node_test.go b/pkg/diagnostics/cluster/master_node_test.go index a245d79b97dd..a368fb340956 100644 --- a/pkg/diagnostics/cluster/master_node_test.go +++ b/pkg/diagnostics/cluster/master_node_test.go @@ -2,8 +2,10 @@ package cluster import ( "errors" - "k8s.io/kubernetes/pkg/api" "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/kubernetes/pkg/api" ) // Used as a stub for golang's net.LookupIP to avoid actual DNS lookups in tests. @@ -151,7 +153,7 @@ func createNode(name string, ipAddresses []string) api.Node { } status := api.NodeStatus{Addresses: addresses} - node := api.Node{ObjectMeta: api.ObjectMeta{Name: name}, Status: status} + node := api.Node{ObjectMeta: metav1.ObjectMeta{Name: name}, Status: status} return node } diff --git a/pkg/diagnostics/cluster/metrics.go b/pkg/diagnostics/cluster/metrics.go index 429a0718f0a4..4936568532bc 100644 --- a/pkg/diagnostics/cluster/metrics.go +++ b/pkg/diagnostics/cluster/metrics.go @@ -7,7 +7,8 @@ import ( "errors" "fmt" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "github.com/openshift/origin/pkg/diagnostics/types" @@ -45,7 +46,7 @@ func (d *MetricsApiProxy) CanRun() (bool, error) { } // see if there's even a service to reach - if not, they probably haven't deployed // metrics and don't need to get errors about it; skip the diagnostic - if _, err := d.KubeClient.Core().Services(MetricsApiProxyProject).Get(MetricsApiProxyService); kapierrors.IsNotFound(err) { + if _, err := d.KubeClient.Core().Services(MetricsApiProxyProject).Get(MetricsApiProxyService, metav1.GetOptions{}); kapierrors.IsNotFound(err) { return false, fmt.Errorf(errMsgNoHeapsterService, MetricsApiProxyService, MetricsApiProxyProject) } else if err != nil { return false, fmt.Errorf("Unexpected error while retrieving %[1]s service: (%[2]T) %[2]v", MetricsApiProxyService, err) @@ -57,7 +58,7 @@ func (d *MetricsApiProxy) Check() types.DiagnosticResult { r := types.NewDiagnosticResult(MetricsApiProxyName) // see if it has any active endpoints - if endpoints, err := d.KubeClient.Core().Endpoints(MetricsApiProxyProject).Get(MetricsApiProxyService); err != nil { + if endpoints, err := d.KubeClient.Core().Endpoints(MetricsApiProxyProject).Get(MetricsApiProxyService, metav1.GetOptions{}); err != nil { r.Error("DClu4001", err, fmt.Sprintf("Unexpected error while retrieving %[1]s service endpoints: (%[2]T) %[2]v", MetricsApiProxyService, err)) return r } else { diff --git a/pkg/diagnostics/cluster/node_definitions.go b/pkg/diagnostics/cluster/node_definitions.go index 23ea58d630a0..4b589cee2c59 100644 --- a/pkg/diagnostics/cluster/node_definitions.go +++ b/pkg/diagnostics/cluster/node_definitions.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -81,7 +82,7 @@ func (d *NodeDefinitions) CanRun() (bool, error) { func (d *NodeDefinitions) Check() types.DiagnosticResult { r := types.NewDiagnosticResult("NodeDefinition") - nodes, err := d.KubeClient.Core().Nodes().List(kapi.ListOptions{}) + nodes, err := d.KubeClient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { r.Error("DClu0001", err, fmt.Sprintf(clientErrorGettingNodes, err)) return r diff --git a/pkg/diagnostics/cluster/registry.go b/pkg/diagnostics/cluster/registry.go index d28a5d7f0611..af6aa2a3da00 100644 --- a/pkg/diagnostics/cluster/registry.go +++ b/pkg/diagnostics/cluster/registry.go @@ -7,10 +7,11 @@ import ( "regexp" "strings" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/labels" authorizationapi "github.com/openshift/origin/pkg/authorization/api" osclient "github.com/openshift/origin/pkg/client" @@ -162,7 +163,7 @@ func (d *ClusterRegistry) CanRun() (bool, error) { return false, fmt.Errorf("must have kube and os clients") } return userCan(d.OsClient, authorizationapi.Action{ - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, Verb: "get", Group: kapi.GroupName, Resource: "services", @@ -187,9 +188,9 @@ func (d *ClusterRegistry) Check() types.DiagnosticResult { } func (d *ClusterRegistry) getRegistryService(r types.DiagnosticResult) *kapi.Service { - service, err := d.KubeClient.Core().Services(kapi.NamespaceDefault).Get(registryName) + service, err := d.KubeClient.Core().Services(metav1.NamespaceDefault).Get(registryName, metav1.GetOptions{}) if err != nil && reflect.TypeOf(err) == reflect.TypeOf(&kerrs.StatusError{}) { - r.Warn("DClu1002", err, fmt.Sprintf(clGetRegNone, registryName, kapi.NamespaceDefault)) + r.Warn("DClu1002", err, fmt.Sprintf(clGetRegNone, registryName, metav1.NamespaceDefault)) return nil } else if err != nil { r.Error("DClu1003", err, fmt.Sprintf(clGetRegFailed, err)) @@ -201,7 +202,7 @@ func (d *ClusterRegistry) getRegistryService(r types.DiagnosticResult) *kapi.Ser func (d *ClusterRegistry) getRegistryPods(service *kapi.Service, r types.DiagnosticResult) []*kapi.Pod { runningPods := []*kapi.Pod{} - pods, err := d.KubeClient.Core().Pods(kapi.NamespaceDefault).List(kapi.ListOptions{LabelSelector: labels.SelectorFromSet(service.Spec.Selector)}) + pods, err := d.KubeClient.Core().Pods(metav1.NamespaceDefault).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(service.Spec.Selector).String()}) if err != nil { r.Error("DClu1005", err, fmt.Sprintf("Finding pods for '%s' service failed. This should never happen. Error: (%T) %[2]v", registryName, err)) return runningPods @@ -303,7 +304,7 @@ func (d *ClusterRegistry) checkRegistryLogs(pod *kapi.Pod, r types.DiagnosticRes } func (d *ClusterRegistry) checkRegistryEndpoints(pods []*kapi.Pod, r types.DiagnosticResult) bool { - endPoint, err := d.KubeClient.Core().Endpoints(kapi.NamespaceDefault).Get(registryName) + endPoint, err := d.KubeClient.Core().Endpoints(metav1.NamespaceDefault).Get(registryName, metav1.GetOptions{}) if err != nil { r.Error("DClu1013", err, fmt.Sprintf(`Finding endpoints for "%s" service failed. This should never happen. Error: (%[2]T) %[2]v`, registryName, err)) return false @@ -324,17 +325,17 @@ func (d *ClusterRegistry) verifyRegistryImageStream(service *kapi.Service, r typ r.Info("DClu1021", "Skipping creating an ImageStream to test registry service address, because you requested no API modifications.") return } - imgStream, err := d.OsClient.ImageStreams(kapi.NamespaceDefault).Create(&osapi.ImageStream{ObjectMeta: kapi.ObjectMeta{GenerateName: "diagnostic-test"}}) + imgStream, err := d.OsClient.ImageStreams(metav1.NamespaceDefault).Create(&osapi.ImageStream{ObjectMeta: metav1.ObjectMeta{GenerateName: "diagnostic-test"}}) if err != nil { r.Error("DClu1015", err, fmt.Sprintf("Creating test ImageStream failed. Error: (%T) %[1]v", err)) return } defer func() { // delete what we created, or notify that we couldn't - if err := d.OsClient.ImageStreams(kapi.NamespaceDefault).Delete(imgStream.ObjectMeta.Name); err != nil { + if err := d.OsClient.ImageStreams(metav1.NamespaceDefault).Delete(imgStream.ObjectMeta.Name); err != nil { r.Warn("DClu1016", err, fmt.Sprintf(clRegISDelFail, imgStream.ObjectMeta.Name, fmt.Sprintf("(%T) %[1]s", err))) } }() - imgStream, err = d.OsClient.ImageStreams(kapi.NamespaceDefault).Get(imgStream.ObjectMeta.Name) // status is filled in post-create + imgStream, err = d.OsClient.ImageStreams(metav1.NamespaceDefault).Get(imgStream.ObjectMeta.Name, metav1.GetOptions{}) // status is filled in post-create if err != nil { r.Error("DClu1017", err, fmt.Sprintf("Getting created test ImageStream failed. Error: (%T) %[1]v", err)) return diff --git a/pkg/diagnostics/cluster/rolebindings.go b/pkg/diagnostics/cluster/rolebindings.go index 5050a0f0aa48..d10fdb24af43 100644 --- a/pkg/diagnostics/cluster/rolebindings.go +++ b/pkg/diagnostics/cluster/rolebindings.go @@ -4,7 +4,8 @@ import ( "fmt" "io/ioutil" - kerrs "k8s.io/kubernetes/pkg/api/errors" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" authorizationapi "github.com/openshift/origin/pkg/authorization/api" osclient "github.com/openshift/origin/pkg/client" @@ -71,7 +72,7 @@ func (d *ClusterRoleBindings) Check() types.DiagnosticResult { } for _, changedClusterRoleBinding := range changedClusterRoleBindings { - actualClusterRole, err := d.ClusterRoleBindingsClient.ClusterRoleBindings().Get(changedClusterRoleBinding.Name) + actualClusterRole, err := d.ClusterRoleBindingsClient.ClusterRoleBindings().Get(changedClusterRoleBinding.Name, metav1.GetOptions{}) if kerrs.IsNotFound(err) { r.Error("CRBD1001", nil, fmt.Sprintf("clusterrolebinding/%s is missing.\n\nUse the `oadm policy reconcile-cluster-role-bindings` command to create the role binding.", changedClusterRoleBinding.Name)) continue diff --git a/pkg/diagnostics/cluster/roles.go b/pkg/diagnostics/cluster/roles.go index c303ffcd0bab..624eed4ef08a 100644 --- a/pkg/diagnostics/cluster/roles.go +++ b/pkg/diagnostics/cluster/roles.go @@ -4,7 +4,8 @@ import ( "fmt" "io/ioutil" - kerrs "k8s.io/kubernetes/pkg/api/errors" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/rulevalidation" @@ -95,7 +96,7 @@ func (d *ClusterRoles) Check() types.DiagnosticResult { } for _, changedClusterRole := range changedClusterRoles { - actualClusterRole, err := d.ClusterRolesClient.ClusterRoles().Get(changedClusterRole.Name) + actualClusterRole, err := d.ClusterRolesClient.ClusterRoles().Get(changedClusterRole.Name, metav1.GetOptions{}) if kerrs.IsNotFound(err) { r.Error("CRD1002", nil, fmt.Sprintf(clusterRoleMissing, changedClusterRole.Name)) continue diff --git a/pkg/diagnostics/cluster/router.go b/pkg/diagnostics/cluster/router.go index 1414ea77b7aa..49047a9643e9 100644 --- a/pkg/diagnostics/cluster/router.go +++ b/pkg/diagnostics/cluster/router.go @@ -9,10 +9,11 @@ import ( "regexp" "time" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/labels" authorizationapi "github.com/openshift/origin/pkg/authorization/api" osclient "github.com/openshift/origin/pkg/client" @@ -95,7 +96,7 @@ func (d *ClusterRouter) CanRun() (bool, error) { return false, errors.New("must have kube and os client") } can, err := userCan(d.OsClient, authorizationapi.Action{ - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, Verb: "get", Group: deployapi.GroupName, Resource: "deploymentconfigs", @@ -124,7 +125,7 @@ func (d *ClusterRouter) Check() types.DiagnosticResult { } func (d *ClusterRouter) getRouterDC(r types.DiagnosticResult) *deployapi.DeploymentConfig { - dc, err := d.OsClient.DeploymentConfigs(kapi.NamespaceDefault).Get(routerName) + dc, err := d.OsClient.DeploymentConfigs(metav1.NamespaceDefault).Get(routerName, metav1.GetOptions{}) if err != nil && reflect.TypeOf(err) == reflect.TypeOf(&kerrs.StatusError{}) { r.Warn("DClu2001", err, fmt.Sprintf(clGetRtNone, routerName)) return nil @@ -137,7 +138,7 @@ func (d *ClusterRouter) getRouterDC(r types.DiagnosticResult) *deployapi.Deploym } func (d *ClusterRouter) getRouterPods(dc *deployapi.DeploymentConfig, r types.DiagnosticResult) *kapi.PodList { - pods, err := d.KubeClient.Core().Pods(kapi.NamespaceDefault).List(kapi.ListOptions{LabelSelector: labels.SelectorFromSet(dc.Spec.Selector)}) + pods, err := d.KubeClient.Core().Pods(metav1.NamespaceDefault).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(dc.Spec.Selector).String()}) if err != nil { r.Error("DClu2004", err, fmt.Sprintf("Finding pods for '%s' DeploymentConfig failed. This should never happen. Error: (%[2]T) %[2]v", routerName, err)) return nil diff --git a/pkg/diagnostics/cluster/service_externalip.go b/pkg/diagnostics/cluster/service_externalip.go index 00ff1ee930b9..cf82ea8e34f9 100644 --- a/pkg/diagnostics/cluster/service_externalip.go +++ b/pkg/diagnostics/cluster/service_externalip.go @@ -6,7 +6,7 @@ import ( "net" "strings" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" hostdiag "github.com/openshift/origin/pkg/diagnostics/host" @@ -59,7 +59,7 @@ func (d *ServiceExternalIPs) Check() types.DiagnosticResult { return r } } - services, err := d.KclusterClient.Core().Services("").List(kapi.ListOptions{}) + services, err := d.KclusterClient.Core().Services("").List(metav1.ListOptions{}) if err != nil { r.Error("DH2005", err, fmt.Sprintf("Error while listing cluster services: (%[1]T) %[1]v", err)) return r diff --git a/pkg/diagnostics/network/objects.go b/pkg/diagnostics/network/objects.go index faea9eaf2054..cba842d2f9a0 100644 --- a/pkg/diagnostics/network/objects.go +++ b/pkg/diagnostics/network/objects.go @@ -5,9 +5,10 @@ import ( "fmt" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + kclientcmd "k8s.io/client-go/tools/clientcmd" kapi "k8s.io/kubernetes/pkg/api" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/util/intstr" "github.com/openshift/origin/pkg/diagnostics/networkpod/util" ) @@ -28,7 +29,7 @@ func GetNetworkDiagnosticsPod(diagnosticsImage, command, podName, nodeName strin gracePeriod := int64(0) pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: podName}, + ObjectMeta: metav1.ObjectMeta{Name: podName}, Spec: kapi.PodSpec{ RestartPolicy: kapi.RestartPolicyNever, TerminationGracePeriodSeconds: &gracePeriod, @@ -94,7 +95,7 @@ func GetTestPod(podName, nodeName string) *kapi.Pod { gracePeriod := int64(0) return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{ networkDiagTestPodSelector: podName, @@ -117,7 +118,7 @@ func GetTestPod(podName, nodeName string) *kapi.Pod { func GetTestService(serviceName, podName, nodeName string) *kapi.Service { return &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Name: serviceName}, + ObjectMeta: metav1.ObjectMeta{Name: serviceName}, Spec: kapi.ServiceSpec{ Type: kapi.ServiceTypeClusterIP, Selector: map[string]string{ diff --git a/pkg/diagnostics/network/results.go b/pkg/diagnostics/network/results.go index d7eb3edb506f..3ff1972289ee 100644 --- a/pkg/diagnostics/network/results.go +++ b/pkg/diagnostics/network/results.go @@ -13,8 +13,8 @@ import ( "github.com/openshift/source-to-image/pkg/tar" s2iutil "github.com/openshift/source-to-image/pkg/util" + kerrs "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/diagnostics/networkpod/util" ) diff --git a/pkg/diagnostics/network/run_pod.go b/pkg/diagnostics/network/run_pod.go index 4ad0e77b6191..5321f3e96a82 100644 --- a/pkg/diagnostics/network/run_pod.go +++ b/pkg/diagnostics/network/run_pod.go @@ -10,9 +10,10 @@ import ( flag "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/wait" osclient "github.com/openshift/origin/pkg/client" osclientcmd "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -178,7 +179,7 @@ func (d *NetworkDiagnostic) runNetworkDiagnostic() { func (d *NetworkDiagnostic) runNetworkPod(command string) error { for _, node := range d.nodes { - podName := kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagPodNamePrefix)) + podName := names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagPodNamePrefix)) pod := GetNetworkDiagnosticsPod(d.PodImage, command, podName, node.Name) _, err := d.KubeClient.Core().Pods(d.nsName1).Create(pod) diff --git a/pkg/diagnostics/network/setup.go b/pkg/diagnostics/network/setup.go index b293ffd08cbf..e5512db8522b 100644 --- a/pkg/diagnostics/network/setup.go +++ b/pkg/diagnostics/network/setup.go @@ -7,11 +7,13 @@ import ( "strings" "time" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" + kclientcmd "k8s.io/client-go/tools/clientcmd" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/cmd/cli/config" "github.com/openshift/origin/pkg/diagnostics/networkpod/util" @@ -20,20 +22,20 @@ import ( ) func (d *NetworkDiagnostic) TestSetup() error { - d.nsName1 = kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagNamespacePrefix)) - d.nsName2 = kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagNamespacePrefix)) + d.nsName1 = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagNamespacePrefix)) + d.nsName2 = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagNamespacePrefix)) nsList := []string{d.nsName1, d.nsName2} if sdnapi.IsOpenShiftMultitenantNetworkPlugin(d.pluginName) { - d.globalnsName1 = kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagGlobalNamespacePrefix)) + d.globalnsName1 = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagGlobalNamespacePrefix)) nsList = append(nsList, d.globalnsName1) - d.globalnsName2 = kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagGlobalNamespacePrefix)) + d.globalnsName2 = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagGlobalNamespacePrefix)) nsList = append(nsList, d.globalnsName2) } for _, name := range nsList { // Create a new namespace for network diagnostics - ns := &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: name}} + ns := &kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: name}} if _, err := d.KubeClient.Core().Namespaces().Create(ns); err != nil { return fmt.Errorf("Creating namespace %q failed: %v", name, err) } @@ -77,7 +79,7 @@ func (d *NetworkDiagnostic) Cleanup() { } func (d *NetworkDiagnostic) getPodList(nsName, prefix string) (*kapi.PodList, error) { - podList, err := d.KubeClient.Core().Pods(nsName).List(kapi.ListOptions{}) + podList, err := d.KubeClient.Core().Pods(nsName).List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -121,7 +123,7 @@ func (d *NetworkDiagnostic) createTestPodAndService(nsList []string) error { // Create 2 pods and a service in global and non-global network diagnostic namespaces var testPodName string for i := 0; i < 2; i++ { - testPodName = kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagTestPodNamePrefix)) + testPodName = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagTestPodNamePrefix)) // Create network diags test pod on the given node for the given namespace if _, err := d.KubeClient.Core().Pods(nsName).Create(GetTestPod(testPodName, node.Name)); err != nil { errList = append(errList, fmt.Errorf("Creating network diagnostic test pod '%s/%s' on node %q failed: %v", nsName, testPodName, node.Name, err)) @@ -130,7 +132,7 @@ func (d *NetworkDiagnostic) createTestPodAndService(nsList []string) error { } // Create network diags test service on the given node for the given namespace - testServiceName := kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagTestServiceNamePrefix)) + testServiceName := names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", util.NetworkDiagTestServiceNamePrefix)) if _, err := d.KubeClient.Core().Services(nsName).Create(GetTestService(testServiceName, testPodName, node.Name)); err != nil { errList = append(errList, fmt.Errorf("Creating network diagnostic test service '%s/%s' on node %q failed: %v", nsName, testServiceName, node.Name, err)) continue @@ -195,7 +197,7 @@ func (d *NetworkDiagnostic) makeNamespaceGlobal(nsName string) error { var netns *sdnapi.NetNamespace err := wait.ExponentialBackoff(backoff, func() (bool, error) { var err error - netns, err = d.OSClient.NetNamespaces().Get(nsName) + netns, err = d.OSClient.NetNamespaces().Get(nsName, metav1.GetOptions{}) if kerrs.IsNotFound(err) { // NetNamespace not created yet return false, nil @@ -215,7 +217,7 @@ func (d *NetworkDiagnostic) makeNamespaceGlobal(nsName string) error { } return wait.ExponentialBackoff(backoff, func() (bool, error) { - updatedNetNs, err := d.OSClient.NetNamespaces().Get(netns.NetName) + updatedNetNs, err := d.OSClient.NetNamespaces().Get(netns.NetName, metav1.GetOptions{}) if err != nil { return false, err } diff --git a/pkg/diagnostics/networkpod/pod.go b/pkg/diagnostics/networkpod/pod.go index 9dceb191e44f..4db61bd763a4 100644 --- a/pkg/diagnostics/networkpod/pod.go +++ b/pkg/diagnostics/networkpod/pod.go @@ -5,6 +5,7 @@ import ( "fmt" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -70,7 +71,7 @@ func (d CheckPodNetwork) Check() types.DiagnosticResult { } if sdnapi.IsOpenShiftMultitenantNetworkPlugin(pluginName) { - netnsList, err := d.OSClient.NetNamespaces().List(kapi.ListOptions{}) + netnsList, err := d.OSClient.NetNamespaces().List(metav1.ListOptions{}) if err != nil { d.res.Error("DPodNet1004", err, fmt.Sprintf("Getting all network namespaces failed. Error: %s", err)) return d.res diff --git a/pkg/diagnostics/networkpod/service.go b/pkg/diagnostics/networkpod/service.go index eee5f84a4eb6..40543c023e83 100644 --- a/pkg/diagnostics/networkpod/service.go +++ b/pkg/diagnostics/networkpod/service.go @@ -5,6 +5,7 @@ import ( "fmt" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -80,7 +81,7 @@ func (d CheckServiceNetwork) Check() types.DiagnosticResult { } if sdnapi.IsOpenShiftMultitenantNetworkPlugin(pluginName) { - netnsList, err := d.OSClient.NetNamespaces().List(kapi.ListOptions{}) + netnsList, err := d.OSClient.NetNamespaces().List(metav1.ListOptions{}) if err != nil { d.res.Error("DSvcNet1006", err, fmt.Sprintf("Getting all network namespaces failed. Error: %s", err)) return d.res @@ -143,7 +144,7 @@ func (d CheckServiceNetwork) checkConnection(pods []kapi.Pod, services []kapi.Se func getAllServices(kubeClient kclientset.Interface) ([]kapi.Service, error) { filtered_srvs := []kapi.Service{} - serviceList, err := kubeClient.Core().Services(kapi.NamespaceAll).List(kapi.ListOptions{}) + serviceList, err := kubeClient.Core().Services(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return filtered_srvs, err } diff --git a/pkg/diagnostics/networkpod/util/util.go b/pkg/diagnostics/networkpod/util/util.go index 9ea4b4eeb5f0..1d2de1737332 100644 --- a/pkg/diagnostics/networkpod/util/util.go +++ b/pkg/diagnostics/networkpod/util/util.go @@ -5,8 +5,9 @@ import ( "io" "strings" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kubecmd "k8s.io/kubernetes/pkg/kubectl/cmd" @@ -39,7 +40,7 @@ var ( ) func GetOpenShiftNetworkPlugin(osClient *osclient.Client) (string, bool, error) { - cn, err := osClient.ClusterNetwork().Get(api.ClusterNetworkDefault) + cn, err := osClient.ClusterNetwork().Get(api.ClusterNetworkDefault, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return "", false, nil @@ -50,7 +51,7 @@ func GetOpenShiftNetworkPlugin(osClient *osclient.Client) (string, bool, error) } func GetNodes(kubeClient kclientset.Interface) ([]kapi.Node, error) { - nodeList, err := kubeClient.Core().Nodes().List(kapi.ListOptions{}) + nodeList, err := kubeClient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { return nil, fmt.Errorf("Listing nodes in the cluster failed. Error: %s", err) } @@ -89,7 +90,7 @@ func GetSchedulableNodes(kubeClient kclientset.Interface) ([]kapi.Node, error) { } func GetLocalNode(kubeClient kclientset.Interface) (string, string, error) { - nodeList, err := kubeClient.Core().Nodes().List(kapi.ListOptions{}) + nodeList, err := kubeClient.Core().Nodes().List(metav1.ListOptions{}) if err != nil { return "", "", err } @@ -204,7 +205,7 @@ func Execute(factory *osclientcmd.Factory, command []string, pod *kapi.Pod, in i Stdin: in != nil, }, Executor: &kubecmd.DefaultRemoteExecutor{}, - PodClient: client, + PodClient: client.Core(), Config: config, Command: command, } @@ -216,7 +217,7 @@ func Execute(factory *osclientcmd.Factory, command []string, pod *kapi.Pod, in i } func getSDNRunningPods(kubeClient kclientset.Interface) ([]kapi.Pod, error) { - podList, err := kubeClient.Core().Pods(kapi.NamespaceAll).List(kapi.ListOptions{}) + podList, err := kubeClient.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/diagnostics/pod/auth.go b/pkg/diagnostics/pod/auth.go index 954fe9307f08..441082a5dd1c 100644 --- a/pkg/diagnostics/pod/auth.go +++ b/pkg/diagnostics/pod/auth.go @@ -11,12 +11,13 @@ import ( "github.com/miekg/dns" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + knet "k8s.io/apimachinery/pkg/util/net" + restclient "k8s.io/client-go/rest" + "github.com/openshift/origin/pkg/cmd/flagtypes" "github.com/openshift/origin/pkg/cmd/util/clientcmd" "github.com/openshift/origin/pkg/diagnostics/types" - - "k8s.io/kubernetes/pkg/client/restclient" - knet "k8s.io/kubernetes/pkg/util/net" ) const ( @@ -76,7 +77,7 @@ func (d PodCheckAuth) authenticateToMaster(token string, r types.DiagnosticResul } rchan := make(chan error, 1) // for concurrency with timeout go func() { - _, err := oclient.Users().Get("~") + _, err := oclient.Users().Get("~", metav1.GetOptions{}) rchan <- err }() diff --git a/pkg/diagnostics/pod/dns.go b/pkg/diagnostics/pod/dns.go index 8cd76b9da15e..2544bac08156 100644 --- a/pkg/diagnostics/pod/dns.go +++ b/pkg/diagnostics/pod/dns.go @@ -6,7 +6,7 @@ import ( "github.com/miekg/dns" "github.com/openshift/origin/pkg/diagnostics/types" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) const ( diff --git a/pkg/dns/serviceaccessor.go b/pkg/dns/serviceaccessor.go index 7ba05fcd3e73..89d8d018e615 100644 --- a/pkg/dns/serviceaccessor.go +++ b/pkg/dns/serviceaccessor.go @@ -4,13 +4,15 @@ import ( "fmt" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/watch" ) // ServiceAccessor is the interface used by the ServiceResolver to access @@ -82,8 +84,8 @@ type cachedServiceNamespacer struct { var _ kcoreclient.ServiceInterface = cachedServiceNamespacer{} -func (a cachedServiceNamespacer) Get(name string) (*api.Service, error) { - item, ok, err := a.accessor.store.Get(&api.Service{ObjectMeta: api.ObjectMeta{Namespace: a.namespace, Name: name}}) +func (a cachedServiceNamespacer) Get(name string, options metav1.GetOptions) (*api.Service, error) { + item, ok, err := a.accessor.store.Get(&api.Service{ObjectMeta: metav1.ObjectMeta{Namespace: a.namespace, Name: name}}) if err != nil { return nil, err } @@ -93,11 +95,11 @@ func (a cachedServiceNamespacer) Get(name string) (*api.Service, error) { return item.(*api.Service), nil } -func (a cachedServiceNamespacer) List(options api.ListOptions) (*api.ServiceList, error) { - if !options.LabelSelector.Empty() { +func (a cachedServiceNamespacer) List(options metav1.ListOptions) (*api.ServiceList, error) { + if len(options.LabelSelector) > 0 { return nil, fmt.Errorf("label selection on the cache is not currently implemented") } - items, err := a.accessor.store.Index("namespace", &api.Service{ObjectMeta: api.ObjectMeta{Namespace: a.namespace}}) + items, err := a.accessor.store.Index("namespace", &api.Service{ObjectMeta: metav1.ObjectMeta{Namespace: a.namespace}}) if err != nil { return nil, err } @@ -120,16 +122,16 @@ func (a cachedServiceNamespacer) Update(srv *api.Service) (*api.Service, error) func (a cachedServiceNamespacer) UpdateStatus(srv *api.Service) (*api.Service, error) { return nil, fmt.Errorf("not implemented") } -func (a cachedServiceNamespacer) Delete(name string, options *api.DeleteOptions) error { +func (a cachedServiceNamespacer) Delete(name string, options *metav1.DeleteOptions) error { return fmt.Errorf("not implemented") } -func (a cachedServiceNamespacer) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { +func (a cachedServiceNamespacer) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { return fmt.Errorf("not implemented") } -func (a cachedServiceNamespacer) Watch(options api.ListOptions) (watch.Interface, error) { +func (a cachedServiceNamespacer) Watch(options metav1.ListOptions) (watch.Interface, error) { return nil, fmt.Errorf("not implemented") } -func (a cachedServiceNamespacer) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (*api.Service, error) { +func (a cachedServiceNamespacer) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*api.Service, error) { return nil, fmt.Errorf("not implemented") } func (a cachedServiceNamespacer) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper { @@ -159,8 +161,8 @@ type cachedEndpointsNamespacer struct { var _ kcoreclient.EndpointsInterface = cachedEndpointsNamespacer{} -func (a cachedEndpointsNamespacer) Get(name string) (*api.Endpoints, error) { - item, ok, err := a.accessor.store.Get(&api.Endpoints{ObjectMeta: api.ObjectMeta{Namespace: a.namespace, Name: name}}) +func (a cachedEndpointsNamespacer) Get(name string, options metav1.GetOptions) (*api.Endpoints, error) { + item, ok, err := a.accessor.store.Get(&api.Endpoints{ObjectMeta: metav1.ObjectMeta{Namespace: a.namespace, Name: name}}) if err != nil { return nil, err } @@ -170,7 +172,7 @@ func (a cachedEndpointsNamespacer) Get(name string) (*api.Endpoints, error) { return item.(*api.Endpoints), nil } -func (a cachedEndpointsNamespacer) List(options api.ListOptions) (*api.EndpointsList, error) { +func (a cachedEndpointsNamespacer) List(options metav1.ListOptions) (*api.EndpointsList, error) { return nil, fmt.Errorf("not implemented") } func (a cachedEndpointsNamespacer) Create(srv *api.Endpoints) (*api.Endpoints, error) { @@ -179,15 +181,15 @@ func (a cachedEndpointsNamespacer) Create(srv *api.Endpoints) (*api.Endpoints, e func (a cachedEndpointsNamespacer) Update(srv *api.Endpoints) (*api.Endpoints, error) { return nil, fmt.Errorf("not implemented") } -func (a cachedEndpointsNamespacer) Delete(name string, options *api.DeleteOptions) error { +func (a cachedEndpointsNamespacer) Delete(name string, options *metav1.DeleteOptions) error { return fmt.Errorf("not implemented") } -func (a cachedEndpointsNamespacer) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { +func (a cachedEndpointsNamespacer) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { return fmt.Errorf("not implemented") } -func (a cachedEndpointsNamespacer) Watch(options api.ListOptions) (watch.Interface, error) { +func (a cachedEndpointsNamespacer) Watch(options metav1.ListOptions) (watch.Interface, error) { return nil, fmt.Errorf("not implemented") } -func (a cachedEndpointsNamespacer) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (*api.Endpoints, error) { +func (a cachedEndpointsNamespacer) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*api.Endpoints, error) { return nil, fmt.Errorf("not implemented") } diff --git a/pkg/dns/serviceresolver.go b/pkg/dns/serviceresolver.go index f64063879dc5..a0beb622f351 100644 --- a/pkg/dns/serviceresolver.go +++ b/pkg/dns/serviceresolver.go @@ -10,11 +10,12 @@ import ( etcd "github.com/coreos/etcd/client" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" kendpoints "k8s.io/kubernetes/pkg/api/endpoints" - "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/util/validation" "github.com/skynetservices/skydns/msg" "github.com/skynetservices/skydns/server" @@ -116,7 +117,7 @@ func (b *ServiceResolver) Records(dnsName string, exact bool) ([]msg.Service, er return nil, errNoSuchName } namespace, name := segments[1], segments[2] - svc, err := b.accessor.Services(namespace).Get(name) + svc, err := b.accessor.Services(namespace).Get(name, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) && b.fallback != nil { if fallback, ok := b.fallback(prefix, exact); ok { diff --git a/pkg/dockerregistry/client.go b/pkg/dockerregistry/client.go index 5a5286627254..39e0b179f5e2 100644 --- a/pkg/dockerregistry/client.go +++ b/pkg/dockerregistry/client.go @@ -15,8 +15,8 @@ import ( "github.com/fsouza/go-dockerclient" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/client/transport" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/client-go/transport" "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" diff --git a/pkg/dockerregistry/server/auth.go b/pkg/dockerregistry/server/auth.go index ab6ca231cb56..def50261083c 100644 --- a/pkg/dockerregistry/server/auth.go +++ b/pkg/dockerregistry/server/auth.go @@ -10,9 +10,10 @@ import ( context "github.com/docker/distribution/context" registryauth "github.com/docker/distribution/registry/auth" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -476,7 +477,7 @@ func getOpenShiftAPIToken(ctx context.Context, req *http.Request) (string, error } func verifyOpenShiftUser(ctx context.Context, client client.UsersInterface) (string, string, error) { - userInfo, err := client.Users().Get("~") + userInfo, err := client.Users().Get("~", metav1.GetOptions{}) if err != nil { context.GetLogger(ctx).Errorf("Get user failed with error: %s", err) if kerrors.IsUnauthorized(err) || kerrors.IsForbidden(err) { diff --git a/pkg/dockerregistry/server/auth_test.go b/pkg/dockerregistry/server/auth_test.go index 1fcd091c24ce..46a51f862ad1 100644 --- a/pkg/dockerregistry/server/auth_test.go +++ b/pkg/dockerregistry/server/auth_test.go @@ -12,10 +12,10 @@ import ( "github.com/docker/distribution/registry/auth" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/runtime" "github.com/docker/distribution/context" "github.com/openshift/origin/pkg/api/latest" @@ -45,7 +45,7 @@ func TestVerifyImageStreamAccess(t *testing.T) { // Test valid openshift bearer token but token *not* scoped for create operation openshiftResponse: response{ 200, - runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{ + runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{ Namespace: "foo", Allowed: false, Reason: "not authorized!", @@ -57,7 +57,7 @@ func TestVerifyImageStreamAccess(t *testing.T) { // Test valid openshift bearer token and token scoped for create operation openshiftResponse: response{ 200, - runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{ + runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{ Namespace: "foo", Allowed: true, Reason: "authorized!", @@ -154,7 +154,7 @@ func TestAccessController(t *testing.T) { }}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, }, expectedError: ErrNamespaceRequired, expectedChallenge: false, @@ -166,7 +166,7 @@ func TestAccessController(t *testing.T) { access: []auth.Access{{}}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, }, expectedError: ErrUnsupportedResource, expectedChallenge: false, @@ -184,7 +184,7 @@ func TestAccessController(t *testing.T) { }}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, }, expectedError: ErrUnsupportedAction, expectedChallenge: false, @@ -203,7 +203,7 @@ func TestAccessController(t *testing.T) { "docker login with valid openshift creds": { basicToken: "dXNyMTphd2Vzb21l", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, }, expectedError: nil, expectedChallenge: false, @@ -219,7 +219,7 @@ func TestAccessController(t *testing.T) { }}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, {500, "Uh oh"}, }, expectedError: errors.New("an error on the server (\"unknown\") has prevented the request from succeeding (post localSubjectAccessReviews)"), @@ -239,8 +239,8 @@ func TestAccessController(t *testing.T) { }}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: false, Reason: "unauthorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: false, Reason: "unauthorized!"})}, }, expectedError: ErrOpenShiftAccessDenied, expectedChallenge: true, @@ -260,11 +260,11 @@ func TestAccessController(t *testing.T) { }, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "bar", Allowed: true, Reason: "authorized!"})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "", Allowed: true, Reason: "authorized!"})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "baz", Allowed: false, Reason: "no!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "bar", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "baz", Allowed: false, Reason: "no!"})}, }, expectedError: ErrOpenShiftAccessDenied, expectedChallenge: true, @@ -288,10 +288,10 @@ func TestAccessController(t *testing.T) { }, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "pushrepo", Allowed: true, Reason: "authorized!"})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "pushrepo", Allowed: true, Reason: "authorized!"})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "fromrepo", Allowed: false, Reason: "no!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "pushrepo", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "pushrepo", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "fromrepo", Allowed: false, Reason: "no!"})}, }, expectedError: nil, expectedChallenge: false, @@ -313,8 +313,8 @@ func TestAccessController(t *testing.T) { }}, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, }, expectedError: nil, expectedChallenge: false, @@ -333,7 +333,7 @@ func TestAccessController(t *testing.T) { }}, bearerToken: "anonymous", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Namespace: "foo", Allowed: true, Reason: "authorized!"})}, }, expectedError: nil, expectedChallenge: false, @@ -357,8 +357,8 @@ func TestAccessController(t *testing.T) { }, basicToken: "b3BlbnNoaWZ0OmF3ZXNvbWU=", openshiftResponses: []response{ - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: kapi.ObjectMeta{Name: "usr1"}})}, - {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Allowed: true, Reason: "authorized!"})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &userapi.User{ObjectMeta: metav1.ObjectMeta{Name: "usr1"}})}, + {200, runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), &api.SubjectAccessReviewResponse{Allowed: true, Reason: "authorized!"})}, }, expectedError: nil, expectedChallenge: false, @@ -397,8 +397,8 @@ func TestAccessController(t *testing.T) { options[AccessControllerOptionParams] = AccessControllerParams{ Logger: context.GetLogger(context.Background()), SafeClientConfig: restclient.Config{ - Host: server.URL, - Insecure: true, + Host: server.URL, + TLSClientConfig: restclient.TLSClientConfig{Insecure: true}, }, } accessController, err := newAccessController(options) diff --git a/pkg/dockerregistry/server/blobdescriptorservice.go b/pkg/dockerregistry/server/blobdescriptorservice.go index ed9e49ab77c8..a13d4c052259 100644 --- a/pkg/dockerregistry/server/blobdescriptorservice.go +++ b/pkg/dockerregistry/server/blobdescriptorservice.go @@ -12,7 +12,7 @@ import ( "github.com/docker/distribution/registry/middleware/registry" "github.com/docker/distribution/registry/storage" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" imageapi "github.com/openshift/origin/pkg/image/api" ) diff --git a/pkg/dockerregistry/server/blobdescriptorservice_test.go b/pkg/dockerregistry/server/blobdescriptorservice_test.go index 09aa4046d9e1..3422be0d36fd 100644 --- a/pkg/dockerregistry/server/blobdescriptorservice_test.go +++ b/pkg/dockerregistry/server/blobdescriptorservice_test.go @@ -24,8 +24,8 @@ import ( srvconfig "github.com/openshift/origin/pkg/dockerregistry/server/configuration" registrytest "github.com/openshift/origin/pkg/dockerregistry/testutil" + restclient "k8s.io/client-go/rest" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" osclient "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/client/testclient" diff --git a/pkg/dockerregistry/server/digestcache.go b/pkg/dockerregistry/server/digestcache.go index 32dabe6feab2..fea533c8e8fc 100644 --- a/pkg/dockerregistry/server/digestcache.go +++ b/pkg/dockerregistry/server/digestcache.go @@ -8,7 +8,7 @@ import ( "github.com/docker/distribution/digest" - "k8s.io/kubernetes/pkg/util/clock" + "k8s.io/client-go/util/clock" ) // digestToRepositoryCache maps image digests to recently seen remote repositories that diff --git a/pkg/dockerregistry/server/digestcache_test.go b/pkg/dockerregistry/server/digestcache_test.go index 5b6388893d9b..b77a0d83034b 100644 --- a/pkg/dockerregistry/server/digestcache_test.go +++ b/pkg/dockerregistry/server/digestcache_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/util/clock" - "k8s.io/kubernetes/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/client-go/util/clock" ) const ( diff --git a/pkg/dockerregistry/server/manifestschema1handler.go b/pkg/dockerregistry/server/manifestschema1handler.go index 1d9d25f6ab4e..d8822991acd4 100644 --- a/pkg/dockerregistry/server/manifestschema1handler.go +++ b/pkg/dockerregistry/server/manifestschema1handler.go @@ -12,7 +12,7 @@ import ( "github.com/docker/distribution/reference" "github.com/docker/libtrust" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" imageapi "github.com/openshift/origin/pkg/image/api" ) diff --git a/pkg/dockerregistry/server/manifestservice.go b/pkg/dockerregistry/server/manifestservice.go index def34273a630..70fc736875e8 100644 --- a/pkg/dockerregistry/server/manifestservice.go +++ b/pkg/dockerregistry/server/manifestservice.go @@ -13,8 +13,8 @@ import ( "github.com/docker/distribution/registry/api/errcode" regapi "github.com/docker/distribution/registry/api/v2" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" imageapi "github.com/openshift/origin/pkg/image/api" quotautil "github.com/openshift/origin/pkg/quota/util" @@ -128,12 +128,12 @@ func (m *manifestService) Put(ctx context.Context, manifest distribution.Manifes // Upload to openshift ism := imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: m.repo.namespace, Name: m.repo.name, }, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dgst.String(), Annotations: map[string]string{ imageapi.ManagedByOpenShiftAnnotation: "true", diff --git a/pkg/dockerregistry/server/projectcache.go b/pkg/dockerregistry/server/projectcache.go index a8a849f936ed..6d81cc2eb31f 100644 --- a/pkg/dockerregistry/server/projectcache.go +++ b/pkg/dockerregistry/server/projectcache.go @@ -4,8 +4,8 @@ import ( "fmt" "time" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/cache" ) // projectObjectListStore represents a cache of objects indexed by a project name. diff --git a/pkg/dockerregistry/server/quotarestrictedblobstore.go b/pkg/dockerregistry/server/quotarestrictedblobstore.go index 10d029624ea1..c6feaf98798f 100644 --- a/pkg/dockerregistry/server/quotarestrictedblobstore.go +++ b/pkg/dockerregistry/server/quotarestrictedblobstore.go @@ -18,6 +18,7 @@ import ( "github.com/docker/distribution" "github.com/docker/distribution/context" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -143,7 +144,7 @@ func getLimitRangeList(ctx context.Context, limitClient kcoreclient.LimitRangesG context.GetLogger(ctx).Debugf("listing limit ranges in namespace %s", namespace) - lrs, err := limitClient.LimitRanges(namespace).List(kapi.ListOptions{}) + lrs, err := limitClient.LimitRanges(namespace).List(metav1.ListOptions{}) if err != nil { context.GetLogger(ctx).Errorf("failed to list limitranges: %v", err) return nil, err diff --git a/pkg/dockerregistry/server/remoteblobgetter_test.go b/pkg/dockerregistry/server/remoteblobgetter_test.go index 4da95b88f55c..69264a623112 100644 --- a/pkg/dockerregistry/server/remoteblobgetter_test.go +++ b/pkg/dockerregistry/server/remoteblobgetter_test.go @@ -6,8 +6,8 @@ import ( _ "github.com/docker/distribution/registry/storage/driver/inmemory" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/diff" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -83,7 +83,7 @@ func TestIdentifyCandidateRepositories(t *testing.T) { { name: "search secondary results in insecure image stream", is: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{imageapi.InsecureRepositoryAnnotation: "true"}, }, Spec: imageapi.ImageStreamSpec{ @@ -114,7 +114,7 @@ func TestIdentifyCandidateRepositories(t *testing.T) { { name: "empty secondary search", is: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{imageapi.InsecureRepositoryAnnotation: "true"}, }, Spec: imageapi.ImageStreamSpec{ diff --git a/pkg/dockerregistry/server/repositorymiddleware.go b/pkg/dockerregistry/server/repositorymiddleware.go index 4bc44fbfe473..fedc31d42382 100644 --- a/pkg/dockerregistry/server/repositorymiddleware.go +++ b/pkg/dockerregistry/server/repositorymiddleware.go @@ -15,9 +15,10 @@ import ( repomw "github.com/docker/distribution/registry/middleware/repository" registrystorage "github.com/docker/distribution/registry/storage" - kerrors "k8s.io/kubernetes/pkg/api/errors" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/dockerregistry/server/audit" @@ -117,7 +118,7 @@ func init() { ) secureTransport = http.DefaultTransport - insecureTransport, err = restclient.TransportFor(&restclient.Config{Insecure: true}) + insecureTransport, err = restclient.TransportFor(&restclient.Config{TLSClientConfig: restclient.TLSClientConfig{Insecure: true}}) if err != nil { panic(fmt.Sprintf("Unable to configure a default transport for importing insecure images: %v", err)) } @@ -383,7 +384,7 @@ func (r *repository) getImage(dgst digest.Digest) (*imageapi.Image, error) { return image, nil } - image, err := r.registryOSClient.Images().Get(dgst.String()) + image, err := r.registryOSClient.Images().Get(dgst.String(), metav1.GetOptions{}) if err != nil { context.GetLogger(r.ctx).Errorf("failed to get image: %v", err) return nil, wrapKStatusErrorOnGetImage(r.name, dgst, err) diff --git a/pkg/dockerregistry/server/repositorymiddleware_test.go b/pkg/dockerregistry/server/repositorymiddleware_test.go index b119e50c0a48..50ea219396a7 100644 --- a/pkg/dockerregistry/server/repositorymiddleware_test.go +++ b/pkg/dockerregistry/server/repositorymiddleware_test.go @@ -23,9 +23,9 @@ import ( "github.com/docker/distribution/registry/storage/driver/inmemory" "github.com/docker/libtrust" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/util/diff" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/client/testclient" @@ -104,7 +104,7 @@ func TestRepositoryBlobStat(t *testing.T) { { name: "local stat", stat: "nm/is@" + testImages["nm/is:latest"][0].DockerImageLayers[0].Name, - imageStreams: []imageapi.ImageStream{{ObjectMeta: kapi.ObjectMeta{Namespace: "nm", Name: "is"}}}, + imageStreams: []imageapi.ImageStream{{ObjectMeta: metav1.ObjectMeta{Namespace: "nm", Name: "is"}}}, expectedDescriptor: testNewDescriptorForLayer(testImages["nm/is:latest"][0].DockerImageLayers[0]), }, @@ -114,7 +114,7 @@ func TestRepositoryBlobStat(t *testing.T) { images: []imageapi.Image{*testImages["nm/repo:missing-layer-links"][0]}, imageStreams: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "nm", Name: "repo", }, @@ -141,7 +141,7 @@ func TestRepositoryBlobStat(t *testing.T) { images: []imageapi.Image{*testImages["nm/unmanaged:missing-layer-links"][0]}, imageStreams: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "nm", Name: "unmanaged", }, @@ -179,7 +179,7 @@ func TestRepositoryBlobStat(t *testing.T) { images: []imageapi.Image{*testImages["nm/unmanaged:missing-layer-links"][0]}, imageStreams: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "nm", Name: "repo", }, @@ -206,7 +206,7 @@ func TestRepositoryBlobStat(t *testing.T) { images: []imageapi.Image{*etcdOnlyImages["nm/is"]}, imageStreams: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "nm", Name: "is", }, @@ -232,7 +232,7 @@ func TestRepositoryBlobStat(t *testing.T) { images: []imageapi.Image{*testImages["nm/is:latest"][0]}, imageStreams: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "nm", Name: "repo", }, @@ -255,7 +255,7 @@ func TestRepositoryBlobStat(t *testing.T) { { name: "auth not performed", stat: "nm/is@" + testImages["nm/is:latest"][0].DockerImageLayers[0].Name, - imageStreams: []imageapi.ImageStream{{ObjectMeta: kapi.ObjectMeta{Namespace: "nm", Name: "is"}}}, + imageStreams: []imageapi.ImageStream{{ObjectMeta: metav1.ObjectMeta{Namespace: "nm", Name: "is"}}}, skipAuth: true, expectedError: fmt.Errorf("openshift.auth.completed missing from context"), }, @@ -263,7 +263,7 @@ func TestRepositoryBlobStat(t *testing.T) { { name: "deferred error", stat: "nm/is@" + testImages["nm/is:latest"][0].DockerImageLayers[0].Name, - imageStreams: []imageapi.ImageStream{{ObjectMeta: kapi.ObjectMeta{Namespace: "nm", Name: "is"}}}, + imageStreams: []imageapi.ImageStream{{ObjectMeta: metav1.ObjectMeta{Namespace: "nm", Name: "is"}}}, deferredErrors: deferredErrors{"nm/is": ErrOpenShiftAccessDenied}, expectedError: ErrOpenShiftAccessDenied, }, @@ -583,7 +583,7 @@ func storeTestImage( } //TODO v2 image := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dgst.String(), }, DockerImageManifest: string(payload), @@ -767,7 +767,7 @@ func testNewDescriptorForLayer(layer imageapi.ImageLayer) distribution.Descripto } } -func compareActions(t *testing.T, testCaseName string, actions []core.Action, expectedActions []clientAction) { +func compareActions(t *testing.T, testCaseName string, actions []clientgotesting.Action, expectedActions []clientAction) { for i, action := range actions { if i >= len(expectedActions) { t.Errorf("[%s] got unexpected client action: %#+v", testCaseName, action) diff --git a/pkg/dockerregistry/server/signaturedispatcher.go b/pkg/dockerregistry/server/signaturedispatcher.go index cf4c8f224517..92caba53d5f2 100644 --- a/pkg/dockerregistry/server/signaturedispatcher.go +++ b/pkg/dockerregistry/server/signaturedispatcher.go @@ -7,7 +7,7 @@ import ( "io/ioutil" "net/http" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" ctxu "github.com/docker/distribution/context" diff --git a/pkg/dockerregistry/server/signaturedispatcher_test.go b/pkg/dockerregistry/server/signaturedispatcher_test.go index 2ff268a86caf..e89046c0749c 100644 --- a/pkg/dockerregistry/server/signaturedispatcher_test.go +++ b/pkg/dockerregistry/server/signaturedispatcher_test.go @@ -17,9 +17,9 @@ import ( "github.com/docker/distribution/registry/handlers" _ "github.com/docker/distribution/registry/storage/driver/inmemory" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client/testclient" registrytest "github.com/openshift/origin/pkg/dockerregistry/testutil" @@ -33,7 +33,7 @@ func TestSignatureGet(t *testing.T) { installFakeAccessController(t) testSignature := imageapi.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "sha256:4028782c08eae4a8c9a28bf661c0a8d1c2fc8e19dbaae2b018b21011197e1484@cddeb7006d914716e2728000746a0b23", }, Type: "atomic", @@ -151,8 +151,8 @@ func TestSignaturePut(t *testing.T) { } var newImageSignature *imageapi.ImageSignature - client.AddReactor("create", "imagesignatures", func(action core.Action) (handled bool, ret runtime.Object, err error) { - sign, ok := action.(core.CreateAction).GetObject().(*imageapi.ImageSignature) + client.AddReactor("create", "imagesignatures", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + sign, ok := action.(clientgotesting.CreateAction).GetObject().(*imageapi.ImageSignature) if !ok { return true, nil, fmt.Errorf("unexpected object received: %#v", sign) } diff --git a/pkg/dockerregistry/server/tagservice.go b/pkg/dockerregistry/server/tagservice.go index 9d931546b2b5..4936d9d9a407 100644 --- a/pkg/dockerregistry/server/tagservice.go +++ b/pkg/dockerregistry/server/tagservice.go @@ -5,7 +5,7 @@ import ( "github.com/docker/distribution/context" "github.com/docker/distribution/digest" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" imageapi "github.com/openshift/origin/pkg/image/api" quotautil "github.com/openshift/origin/pkg/quota/util" @@ -153,7 +153,7 @@ func (t tagService) Tag(ctx context.Context, tag string, dgst distribution.Descr return distribution.ErrRepositoryUnknown{Name: t.repo.Named().Name()} } - image, err := t.repo.registryOSClient.Images().Get(dgst.Digest.String()) + image, err := t.repo.registryOSClient.Images().Get(dgst.Digest.String(), metav1.GetOptions{}) if err != nil { context.GetLogger(ctx).Errorf("unable to get image: %s", dgst.Digest.String()) return err @@ -165,7 +165,7 @@ func (t tagService) Tag(ctx context.Context, tag string, dgst distribution.Descr } ism := imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: imageStream.Namespace, Name: imageStream.Name, }, diff --git a/pkg/dockerregistry/server/token.go b/pkg/dockerregistry/server/token.go index 874fa8cfb965..4a58a7607e9e 100644 --- a/pkg/dockerregistry/server/token.go +++ b/pkg/dockerregistry/server/token.go @@ -6,7 +6,8 @@ import ( context "github.com/docker/distribution/context" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/client" ) @@ -56,7 +57,7 @@ func (t *tokenHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { return } - if _, err := osClient.Users().Get("~"); err != nil { + if _, err := osClient.Users().Get("~", metav1.GetOptions{}); err != nil { context.GetRequestLogger(ctx).Debugf("invalid token: %v", err) t.writeUnauthorized(w, req) return diff --git a/pkg/dockerregistry/server/util.go b/pkg/dockerregistry/server/util.go index ed247c4ea4da..8fc2de7d133f 100644 --- a/pkg/dockerregistry/server/util.go +++ b/pkg/dockerregistry/server/util.go @@ -13,8 +13,9 @@ import ( disterrors "github.com/docker/distribution/registry/api/v2" quotautil "github.com/openshift/origin/pkg/quota/util" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" osclient "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -165,7 +166,7 @@ func getImportContext( osClient osclient.ImageStreamSecretsNamespacer, namespace, name string, ) importer.RepositoryRetriever { - secrets, err := osClient.ImageStreamSecrets(namespace).Secrets(name, kapi.ListOptions{}) + secrets, err := osClient.ImageStreamSecrets(namespace).Secrets(name, metav1.ListOptions{}) if err != nil { context.GetLogger(ctx).Errorf("error getting secrets for repository %s/%s: %v", namespace, name, err) secrets = &kapi.SecretList{} @@ -188,7 +189,7 @@ func (g *cachedImageStreamGetter) get() (*imageapi.ImageStream, error) { context.GetLogger(g.ctx).Debugf("(*cachedImageStreamGetter).getImageStream: returning cached copy") return g.cachedImageStream, nil } - is, err := g.isNamespacer.ImageStreams(g.namespace).Get(g.name) + is, err := g.isNamespacer.ImageStreams(g.namespace).Get(g.name, metav1.GetOptions{}) if err != nil { context.GetLogger(g.ctx).Errorf("failed to get image stream: %v", err) switch { diff --git a/pkg/dockerregistry/testutil/fakeopenshift.go b/pkg/dockerregistry/testutil/fakeopenshift.go index d04d5ec6eca7..9cbe609eb421 100644 --- a/pkg/dockerregistry/testutil/fakeopenshift.go +++ b/pkg/dockerregistry/testutil/fakeopenshift.go @@ -3,14 +3,14 @@ package testutil import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "github.com/docker/distribution/context" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" + "github.com/openshift/origin/pkg/client/testclient" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -46,7 +46,7 @@ func NewFakeOpenShiftWithClient() (*FakeOpenShift, *testclient.Fake) { func (os *FakeOpenShift) CreateImage(image *imageapi.Image) (*imageapi.Image, error) { _, ok := os.imagesStorage[image.Name] if ok { - return nil, errors.NewAlreadyExists(unversioned.GroupResource{ + return nil, errors.NewAlreadyExists(schema.GroupResource{ Group: "", Resource: "images", }, image.Name) @@ -60,7 +60,7 @@ func (os *FakeOpenShift) CreateImage(image *imageapi.Image) (*imageapi.Image, er func (os *FakeOpenShift) GetImage(name string) (*imageapi.Image, error) { image, ok := os.imagesStorage[name] if !ok { - return nil, errors.NewNotFound(unversioned.GroupResource{ + return nil, errors.NewNotFound(schema.GroupResource{ Group: "", Resource: "images", }, name) @@ -73,7 +73,7 @@ func (os *FakeOpenShift) CreateImageStream(namespace string, is *imageapi.ImageS _, ok := os.imageStreamsStorage[ref] if ok { - return nil, errors.NewAlreadyExists(unversioned.GroupResource{ + return nil, errors.NewAlreadyExists(schema.GroupResource{ Group: "", Resource: "imagestreams", }, is.Name) @@ -91,7 +91,7 @@ func (os *FakeOpenShift) GetImageStream(namespace, repo string) (*imageapi.Image is, ok := os.imageStreamsStorage[ref] if !ok { - return nil, errors.NewNotFound(unversioned.GroupResource{ + return nil, errors.NewNotFound(schema.GroupResource{ Group: "", Resource: "imagestreams", }, repo) @@ -123,7 +123,7 @@ func (os *FakeOpenShift) CreateImageStreamMapping(group string, ism *imageapi.Im return ism, nil } -func (os *FakeOpenShift) getName(action core.Action) string { +func (os *FakeOpenShift) getName(action clientgotesting.Action) string { if getnamer, ok := action.(interface { GetName() string }); ok { @@ -150,17 +150,17 @@ func (os *FakeOpenShift) log(msg string, f func() (bool, runtime.Object, error)) return ok, obj, err } -func (os *FakeOpenShift) todo(action core.Action) (bool, runtime.Object, error) { +func (os *FakeOpenShift) todo(action clientgotesting.Action) (bool, runtime.Object, error) { return true, nil, fmt.Errorf("no reaction implemented for %v", action) } -func (os *FakeOpenShift) images(action core.Action) (bool, runtime.Object, error) { +func (os *FakeOpenShift) images(action clientgotesting.Action) (bool, runtime.Object, error) { return os.log( fmt.Sprintf("(*FakeOpenShift).images: %s %s", action.GetVerb(), os.getName(action)), func() (bool, runtime.Object, error) { switch action := action.(type) { - case core.GetActionImpl: + case clientgotesting.GetActionImpl: image, err := os.GetImage(action.Name) return true, image, err } @@ -169,19 +169,19 @@ func (os *FakeOpenShift) images(action core.Action) (bool, runtime.Object, error ) } -func (os *FakeOpenShift) imageStreams(action core.Action) (bool, runtime.Object, error) { +func (os *FakeOpenShift) imageStreams(action clientgotesting.Action) (bool, runtime.Object, error) { return os.log( fmt.Sprintf("(*FakeOpenShift).imageStreams: %s %s/%s", action.GetVerb(), action.GetNamespace(), os.getName(action)), func() (bool, runtime.Object, error) { switch action := action.(type) { - case core.CreateActionImpl: + case clientgotesting.CreateActionImpl: is, err := os.CreateImageStream( action.GetNamespace(), action.Object.(*imageapi.ImageStream), ) return true, is, err - case core.GetActionImpl: + case clientgotesting.GetActionImpl: is, err := os.GetImageStream( action.GetNamespace(), action.GetName(), @@ -193,13 +193,13 @@ func (os *FakeOpenShift) imageStreams(action core.Action) (bool, runtime.Object, ) } -func (os *FakeOpenShift) imageStreamMappings(action core.Action) (bool, runtime.Object, error) { +func (os *FakeOpenShift) imageStreamMappings(action clientgotesting.Action) (bool, runtime.Object, error) { return os.log( fmt.Sprintf("(*FakeOpenShift).imageStreamMappings: %s %s/%s", action.GetVerb(), action.GetNamespace(), os.getName(action)), func() (bool, runtime.Object, error) { switch action := action.(type) { - case core.CreateActionImpl: + case clientgotesting.CreateActionImpl: ism, err := os.CreateImageStreamMapping( action.GetNamespace(), action.Object.(*imageapi.ImageStreamMapping), @@ -260,7 +260,7 @@ func RegisterImage(os *FakeOpenShift, image *imageapi.Image, namespace, name, ta } _, err = os.CreateImageStreamMapping(namespace, &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Image: *image, diff --git a/pkg/dockerregistry/testutil/manifests.go b/pkg/dockerregistry/testutil/manifests.go index 84ad49c48c6d..e48e0552b881 100644 --- a/pkg/dockerregistry/testutil/manifests.go +++ b/pkg/dockerregistry/testutil/manifests.go @@ -21,8 +21,8 @@ import ( "github.com/docker/distribution/registry/client/transport" "github.com/docker/libtrust" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/diff" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -337,7 +337,7 @@ func NewImageForManifest(repoName string, rawManifest string, manifestConfig str } img := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: desc.Digest.String(), Annotations: annotations, }, diff --git a/pkg/dockerregistry/testutil/util.go b/pkg/dockerregistry/testutil/util.go index 2ba58f2503cc..753eba6f359b 100644 --- a/pkg/dockerregistry/testutil/util.go +++ b/pkg/dockerregistry/testutil/util.go @@ -21,10 +21,11 @@ import ( "github.com/docker/distribution/registry/client/auth" "github.com/docker/distribution/registry/client/transport" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -219,10 +220,10 @@ const SampleImageManifestSchema1 = `{ // GetFakeImageGetHandler returns a reaction function for use with fake os client returning one of given image // objects if found. -func GetFakeImageGetHandler(t *testing.T, imgs ...imageapi.Image) core.ReactionFunc { - return func(action core.Action) (handled bool, ret runtime.Object, err error) { +func GetFakeImageGetHandler(t *testing.T, imgs ...imageapi.Image) clientgotesting.ReactionFunc { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { switch a := action.(type) { - case core.GetAction: + case clientgotesting.GetAction: for _, is := range imgs { if a.GetName() == is.Name { t.Logf("images get handler: returning image %s", is.Name) @@ -241,10 +242,10 @@ func GetFakeImageGetHandler(t *testing.T, imgs ...imageapi.Image) core.ReactionF // GetFakeImageStreamGetHandler creates a test handler to be used as a reactor with core.Fake client // that handles Get request on image stream resource. Matching is from given image stream list will be // returned if found. Additionally, a shared image stream may be requested. -func GetFakeImageStreamGetHandler(t *testing.T, iss ...imageapi.ImageStream) core.ReactionFunc { - return func(action core.Action) (handled bool, ret runtime.Object, err error) { +func GetFakeImageStreamGetHandler(t *testing.T, iss ...imageapi.ImageStream) clientgotesting.ReactionFunc { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { switch a := action.(type) { - case core.GetAction: + case clientgotesting.GetAction: for _, is := range iss { if is.Namespace == a.GetNamespace() && a.GetName() == is.Name { t.Logf("imagestream get handler: returning image stream %s/%s", is.Namespace, is.Name) @@ -263,7 +264,7 @@ func GetFakeImageStreamGetHandler(t *testing.T, iss ...imageapi.ImageStream) cor // TestNewImageStreamObject returns a new image stream object filled with given values. func TestNewImageStreamObject(namespace, name, tag, imageName, dockerImageReference string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -284,10 +285,10 @@ func TestNewImageStreamObject(namespace, name, tag, imageName, dockerImageRefere // GetFakeImageStreamImageGetHandler returns a reaction function for use // with fake os client returning one of given imagestream image objects if found. -func GetFakeImageStreamImageGetHandler(t *testing.T, iss *imageapi.ImageStream, imgs ...imageapi.Image) core.ReactionFunc { - return func(action core.Action) (handled bool, ret runtime.Object, err error) { +func GetFakeImageStreamImageGetHandler(t *testing.T, iss *imageapi.ImageStream, imgs ...imageapi.Image) clientgotesting.ReactionFunc { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { switch a := action.(type) { - case core.GetAction: + case clientgotesting.GetAction: for _, is := range imgs { name, imageID, err := imageapi.ParseImageStreamImageName(a.GetName()) if err != nil { @@ -301,7 +302,7 @@ func GetFakeImageStreamImageGetHandler(t *testing.T, iss *imageapi.ImageStream, t.Logf("imagestreamimage get handler: returning image %s", is.Name) isi := imageapi.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: is.Namespace, Name: imageapi.MakeImageStreamImageName(name, imageID), CreationTimestamp: is.ObjectMeta.CreationTimestamp, diff --git a/pkg/generate/app/app.go b/pkg/generate/app/app.go index cee796344ead..aac664f019b2 100644 --- a/pkg/generate/app/app.go +++ b/pkg/generate/app/app.go @@ -12,10 +12,11 @@ import ( "github.com/golang/glog" "github.com/pborman/uuid" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -279,7 +280,7 @@ func (r *BuildRef) BuildConfig() (*buildapi.BuildConfig, error) { } return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Spec: buildapi.BuildConfigSpec{ @@ -366,7 +367,7 @@ func (r *DeploymentConfigRef) DeploymentConfig() (*deployapi.DeploymentConfig, e } dc := &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: r.Name, }, Spec: deployapi.DeploymentConfigSpec{ @@ -374,7 +375,7 @@ func (r *DeploymentConfigRef) DeploymentConfig() (*deployapi.DeploymentConfig, e Test: r.AsTest, Selector: selector, Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: selector, }, Spec: template, @@ -474,7 +475,7 @@ func LabelsFromSpec(spec []string) (map[string]string, []string, error) { } // TODO: move to pkg/runtime or pkg/api -func AsVersionedObjects(objects []runtime.Object, typer runtime.ObjectTyper, convertor runtime.ObjectConvertor, versions ...unversioned.GroupVersion) []error { +func AsVersionedObjects(objects []runtime.Object, typer runtime.ObjectTyper, convertor runtime.ObjectConvertor, versions ...schema.GroupVersion) []error { var errs []error for i, object := range objects { kinds, _, err := typer.ObjectKinds(object) @@ -498,7 +499,7 @@ func AsVersionedObjects(objects []runtime.Object, typer runtime.ObjectTyper, con return errs } -func isInternalOnly(kinds []unversioned.GroupVersionKind) bool { +func isInternalOnly(kinds []schema.GroupVersionKind) bool { for _, kind := range kinds { if kind.Version != runtime.APIVersionInternal { return false @@ -507,7 +508,7 @@ func isInternalOnly(kinds []unversioned.GroupVersionKind) bool { return true } -func kindsInVersions(kinds []unversioned.GroupVersionKind, versions []unversioned.GroupVersion) bool { +func kindsInVersions(kinds []schema.GroupVersionKind, versions []schema.GroupVersion) bool { for _, kind := range kinds { for _, version := range versions { if kind.GroupVersion() == version { @@ -519,7 +520,7 @@ func kindsInVersions(kinds []unversioned.GroupVersionKind, versions []unversione } // tryConvert attempts to convert the given object to the provided versions in order. -func tryConvert(convertor runtime.ObjectConvertor, object runtime.Object, versions []unversioned.GroupVersion) (runtime.Object, error) { +func tryConvert(convertor runtime.ObjectConvertor, object runtime.Object, versions []schema.GroupVersion) (runtime.Object, error) { var last error for _, version := range versions { obj, err := convertor.ConvertToVersion(object, version) diff --git a/pkg/generate/app/app_test.go b/pkg/generate/app/app_test.go index f55493d56f2f..4b81ee52ed1a 100644 --- a/pkg/generate/app/app_test.go +++ b/pkg/generate/app/app_test.go @@ -6,9 +6,9 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -26,12 +26,12 @@ func TestWithType(t *testing.T) { out := &Generated{ Items: []runtime.Object{ &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, }, &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, }, @@ -161,7 +161,7 @@ func TestGenerateSimpleDockerApp(t *testing.T) { Items: items, } - data, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), out) + data, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), out) if err != nil { log.Fatalf("Unable to generate output: %v", err) } @@ -180,13 +180,13 @@ func TestImageStream(t *testing.T) { name: "existing image stream", r: &ImageRef{ Stream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "some-stream", }, }, }, expectedIs: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "some-stream", }, }, @@ -200,7 +200,7 @@ func TestImageStream(t *testing.T) { }, }, expectedIs: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "input", }, Spec: imageapi.ImageStreamSpec{ @@ -218,7 +218,7 @@ func TestImageStream(t *testing.T) { Insecure: true, }, expectedIs: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "insecure", Annotations: map[string]string{ imageapi.InsecureRepositoryAnnotation: "true", @@ -239,7 +239,7 @@ func TestImageStream(t *testing.T) { OutputImage: true, }, expectedIs: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "output", }, }, diff --git a/pkg/generate/app/builder.go b/pkg/generate/app/builder.go index 74f9e410990f..1cc7cd03e6bd 100644 --- a/pkg/generate/app/builder.go +++ b/pkg/generate/app/builder.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/errors" imageapi "github.com/openshift/origin/pkg/image/api" ) diff --git a/pkg/generate/app/cmd/describe.go b/pkg/generate/app/cmd/describe.go index aeb2d8c92358..2588f6cd15b3 100644 --- a/pkg/generate/app/cmd/describe.go +++ b/pkg/generate/app/cmd/describe.go @@ -6,8 +6,9 @@ import ( "sort" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/cmd/cli/describe" @@ -16,7 +17,7 @@ import ( imageapi "github.com/openshift/origin/pkg/image/api" ) -func displayName(meta kapi.ObjectMeta) string { +func displayName(meta metav1.ObjectMeta) string { // If an object has a display name, prefer it over the meta name. displayName := meta.Annotations[oapi.OpenShiftDisplayName] if len(displayName) > 0 { @@ -25,7 +26,7 @@ func displayName(meta kapi.ObjectMeta) string { return meta.Name } -func localOrRemoteName(meta kapi.ObjectMeta, namespace string) string { +func localOrRemoteName(meta metav1.ObjectMeta, namespace string) string { if len(meta.Namespace) == 0 { return meta.Name } diff --git a/pkg/generate/app/cmd/newapp.go b/pkg/generate/app/cmd/newapp.go index 343b9bc91673..28db6a25f9a1 100644 --- a/pkg/generate/app/cmd/newapp.go +++ b/pkg/generate/app/cmd/newapp.go @@ -12,14 +12,15 @@ import ( "github.com/fsouza/go-dockerclient" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/validation" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" dockerfileparser "github.com/docker/docker/builder/dockerfile/parser" ometa "github.com/openshift/origin/pkg/api/meta" @@ -570,14 +571,14 @@ func (c *AppConfig) installComponents(components app.ComponentReferences, env ap serviceAccountName := "installer" if token != nil && token.ServiceAccount { - if _, err := c.KubeClient.Core().ServiceAccounts(c.OriginNamespace).Get(serviceAccountName); err != nil { + if _, err := c.KubeClient.Core().ServiceAccounts(c.OriginNamespace).Get(serviceAccountName, metav1.GetOptions{}); err != nil { if kerrors.IsNotFound(err) { objects = append(objects, // create a new service account - &kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: serviceAccountName}}, + &kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: serviceAccountName}}, // grant the service account the edit role on the project (TODO: installer) &authapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "installer-role-binding"}, + ObjectMeta: metav1.ObjectMeta{Name: "installer-role-binding"}, Subjects: []kapi.ObjectReference{{Kind: "ServiceAccount", Name: serviceAccountName}}, RoleRef: kapi.ObjectReference{Name: "edit"}, }, @@ -951,7 +952,7 @@ func (c *AppConfig) followRefToDockerImage(ref *kapi.ObjectReference, isContext if isContext == nil { var err error - isContext, err = c.OSClient.ImageStreams(isNS).Get(isName) + isContext, err = c.OSClient.ImageStreams(isNS).Get(isName, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("Unable to check for circular build input/outputs: %v", err) } diff --git a/pkg/generate/app/cmd/newapp_test.go b/pkg/generate/app/cmd/newapp_test.go index 3a235ab32bc1..695c6f7bbd01 100644 --- a/pkg/generate/app/cmd/newapp_test.go +++ b/pkg/generate/app/cmd/newapp_test.go @@ -8,11 +8,12 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" client "github.com/openshift/origin/pkg/client/testclient" @@ -234,7 +235,7 @@ func TestBuildTemplates(t *testing.T) { func fakeTemplateSearcher() app.Searcher { client := &client.Fake{} - client.AddReactor("list", "templates", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("list", "templates", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, templateList(), nil }) return app.TemplateSearcher{ @@ -248,7 +249,7 @@ func templateList() *templateapi.TemplateList { Items: []templateapi.Template{ { Objects: []runtime.Object{}, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "first-stored-template", Namespace: "default", }, @@ -423,7 +424,7 @@ func TestBuildOutputCycleResilience(t *testing.T) { config := &AppConfig{} mockIS := &image.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "mockimagestream", }, Spec: image.ImageStreamSpec{ @@ -439,7 +440,7 @@ func TestBuildOutputCycleResilience(t *testing.T) { dfn := "mockdockerfilename" malOutputBC := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildCfgWithWeirdOutputObjectRef", }, Spec: buildapi.BuildConfigSpec{ @@ -477,7 +478,7 @@ func TestBuildOutputCycleWithFollowingTag(t *testing.T) { config := &AppConfig{} mockIS := &image.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "mockimagestream", }, Spec: image.ImageStreamSpec{ @@ -499,7 +500,7 @@ func TestBuildOutputCycleWithFollowingTag(t *testing.T) { dfn := "mockdockerfilename" followingTagCycleBC := &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildCfgWithWeirdOutputObjectRef", }, Spec: buildapi.BuildConfigSpec{ diff --git a/pkg/generate/app/cmd/resolve.go b/pkg/generate/app/cmd/resolve.go index 959e97ce34b3..fe51a7d89d48 100644 --- a/pkg/generate/app/cmd/resolve.go +++ b/pkg/generate/app/cmd/resolve.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/golang/glog" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" "github.com/openshift/origin/pkg/generate" "github.com/openshift/origin/pkg/generate/app" diff --git a/pkg/generate/app/cmd/template.go b/pkg/generate/app/cmd/template.go index 15929a29be9c..0a462a7c4510 100644 --- a/pkg/generate/app/cmd/template.go +++ b/pkg/generate/app/cmd/template.go @@ -5,9 +5,9 @@ import ( "io" "strings" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/errors" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/client" diff --git a/pkg/generate/app/cmd/template_test.go b/pkg/generate/app/cmd/template_test.go index 7b31bb143fc5..4694d05817b1 100644 --- a/pkg/generate/app/cmd/template_test.go +++ b/pkg/generate/app/cmd/template_test.go @@ -3,13 +3,13 @@ package cmd import ( "github.com/openshift/origin/pkg/client/testclient" templateapi "github.com/openshift/origin/pkg/template/api" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "testing" ) func TestTransformTemplate(t *testing.T) { templatefoobar := &templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo_bar_template_name", Namespace: "foo_bar_namespace", }, diff --git a/pkg/generate/app/componentref.go b/pkg/generate/app/componentref.go index f4386b118200..ffd9ea502740 100644 --- a/pkg/generate/app/componentref.go +++ b/pkg/generate/app/componentref.go @@ -7,7 +7,7 @@ import ( "github.com/openshift/origin/pkg/generate" - "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/errors" ) // IsComponentReference returns an error if the provided string does not appear to be a reference to a source repository diff --git a/pkg/generate/app/componentresolvers.go b/pkg/generate/app/componentresolvers.go index fbee118a7896..5d774641a580 100644 --- a/pkg/generate/app/componentresolvers.go +++ b/pkg/generate/app/componentresolvers.go @@ -5,7 +5,7 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/errors" ) // Resolver is an interface for resolving provided input to component matches. diff --git a/pkg/generate/app/dockerimagelookup.go b/pkg/generate/app/dockerimagelookup.go index cf641e269de4..84b99e56219e 100644 --- a/pkg/generate/app/dockerimagelookup.go +++ b/pkg/generate/app/dockerimagelookup.go @@ -9,8 +9,8 @@ import ( docker "github.com/fsouza/go-dockerclient" "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/dockerregistry" @@ -210,10 +210,10 @@ func (s ImageImportSearcher) Search(precise bool, terms ...string) (ComponentMat componentMatches := ComponentMatches{} for i, image := range result.Status.Images { term := result.Spec.Images[i].From.Name - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { glog.V(4).Infof("image import failed: %#v", image) switch image.Status.Reason { - case unversioned.StatusReasonInternalError: + case metav1.StatusReasonInternalError: // try to find the cause of the internal error if image.Status.Details != nil && len(image.Status.Details.Causes) > 0 { for _, c := range image.Status.Details.Causes { @@ -222,7 +222,7 @@ func (s ImageImportSearcher) Search(precise bool, terms ...string) (ComponentMat } else { glog.Warningf("Docker registry lookup failed: %s", image.Status.Message) } - case unversioned.StatusReasonInvalid, unversioned.StatusReasonUnauthorized, unversioned.StatusReasonNotFound: + case metav1.StatusReasonInvalid, metav1.StatusReasonUnauthorized, metav1.StatusReasonNotFound: default: errs = append(errs, fmt.Errorf("can't look up Docker image %q: %s", term, image.Status.Message)) } diff --git a/pkg/generate/app/imageref.go b/pkg/generate/app/imageref.go index 3e7a5422bb83..0587a8b4e25c 100644 --- a/pkg/generate/app/imageref.go +++ b/pkg/generate/app/imageref.go @@ -10,8 +10,9 @@ import ( "github.com/docker/docker/builder/dockerfile/parser" "github.com/fsouza/go-dockerclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kvalidation "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" - kvalidation "k8s.io/kubernetes/pkg/util/validation" buildapi "github.com/openshift/origin/pkg/build/api" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -288,7 +289,7 @@ func (r *ImageRef) ImageStream() (*imageapi.ImageStream, error) { } stream := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, } @@ -399,7 +400,7 @@ func (r *ImageRef) InstallablePod(generatorInput GeneratorInput, secretAccessor return nil, nil, fmt.Errorf("can't suggest a name for the provided image %q", r.Reference.Exact()) } - meta := kapi.ObjectMeta{ + meta := metav1.ObjectMeta{ Name: fmt.Sprintf("%s-install", name), } diff --git a/pkg/generate/app/imagestreamlookup.go b/pkg/generate/app/imagestreamlookup.go index a85721af62b5..3d141d523b7c 100644 --- a/pkg/generate/app/imagestreamlookup.go +++ b/pkg/generate/app/imagestreamlookup.go @@ -5,8 +5,8 @@ import ( "strings" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -56,7 +56,7 @@ func (r ImageStreamSearcher) Search(precise bool, terms ...string) (ComponentMat for _, namespace := range namespaces { glog.V(4).Infof("checking ImageStreams %s/%s with ref %q", namespace, ref.Name, searchTag) exact := false - streams, err := r.Client.ImageStreams(namespace).List(kapi.ListOptions{}) + streams, err := r.Client.ImageStreams(namespace).List(metav1.ListOptions{}) if err != nil { if errors.IsNotFound(err) || errors.IsForbidden(err) { continue @@ -269,7 +269,7 @@ func (r *ImageStreamByAnnotationSearcher) getImageStreams(namespace string) ([]i imageStreamList, ok := r.imageStreams[namespace] if !ok { var err error - imageStreamList, err = r.Client.ImageStreams(namespace).List(kapi.ListOptions{}) + imageStreamList, err = r.Client.ImageStreams(namespace).List(metav1.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/generate/app/imagestreamlookup_test.go b/pkg/generate/app/imagestreamlookup_test.go index 370301ac1efe..abad3035804c 100644 --- a/pkg/generate/app/imagestreamlookup_test.go +++ b/pkg/generate/app/imagestreamlookup_test.go @@ -4,9 +4,10 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/client/testclient" @@ -16,11 +17,11 @@ import ( func testImageStreamClient(imageStreams *imageapi.ImageStreamList, images map[string]*imageapi.ImageStreamImage) client.Interface { fake := &testclient.Fake{} - fake.AddReactor("list", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("list", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, imageStreams, nil }) - fake.AddReactor("get", "imagestreamimages", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, images[action.(core.GetAction).GetName()], nil + fake.AddReactor("get", "imagestreamimages", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, images[action.(clientgotesting.GetAction).GetName()], nil }) return fake @@ -423,7 +424,7 @@ func fakeImageStreams(descs ...*fakeImageStreamDesc) (*imageapi.ImageStreamList, func fakeImageStream(desc *fakeImageStreamDesc) (*imageapi.ImageStream, map[string]*imageapi.ImageStreamImage) { stream := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: desc.name, Namespace: "namespace", }, @@ -482,7 +483,7 @@ func TestInputImageFromMatch(t *testing.T) { name: "image stream", match: &ComponentMatch{ ImageStream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testimage", Namespace: "myns", }, @@ -497,7 +498,7 @@ func TestInputImageFromMatch(t *testing.T) { name: "image stream with tag", match: &ComponentMatch{ ImageStream: &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testimage", Namespace: "myns", }, diff --git a/pkg/generate/app/pipeline.go b/pkg/generate/app/pipeline.go index d01c1f97b1ad..14eb2ebbcb74 100644 --- a/pkg/generate/app/pipeline.go +++ b/pkg/generate/app/pipeline.go @@ -6,12 +6,13 @@ import ( "sort" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" + kuval "k8s.io/apimachinery/pkg/util/validation" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" extensions "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" - kuval "k8s.io/kubernetes/pkg/util/validation" build "github.com/openshift/origin/pkg/build/api" deploy "github.com/openshift/origin/pkg/deploy/api" @@ -301,10 +302,10 @@ func portName(port int, protocol kapi.Protocol) string { } // GenerateService creates a simple service for the provided elements. -func GenerateService(meta kapi.ObjectMeta, selector map[string]string) *kapi.Service { +func GenerateService(meta metav1.ObjectMeta, selector map[string]string) *kapi.Service { name, generateName := makeValidServiceName(meta.Name) svc := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, GenerateName: generateName, Labels: meta.Labels, @@ -368,7 +369,7 @@ func AddServices(objects Objects, firstPortOnly bool) Objects { } // addServiceInternal utility used by AddServices to create services for multiple types. -func addServiceInternal(containers []kapi.Container, objectMeta kapi.ObjectMeta, selector map[string]string, firstPortOnly bool) *kapi.Service { +func addServiceInternal(containers []kapi.Container, objectMeta metav1.ObjectMeta, selector map[string]string, firstPortOnly bool) *kapi.Service { ports := UniqueContainerToServicePorts(AllContainerPorts(containers...)) if len(ports) == 0 { return nil @@ -388,7 +389,7 @@ func AddRoutes(objects Objects) Objects { switch t := o.(type) { case *kapi.Service: routes = append(routes, &route.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: t.Name, Labels: t.Labels, }, @@ -453,12 +454,12 @@ func NewAcceptUnique(typer runtime.ObjectTyper) Acceptor { } } -func objectMetaData(raw interface{}) (runtime.Object, *kapi.ObjectMeta, error) { +func objectMetaData(raw interface{}) (runtime.Object, *metav1.ObjectMeta, error) { obj, ok := raw.(runtime.Object) if !ok { return nil, nil, fmt.Errorf("%#v is not a runtime.Object", raw) } - meta, err := kapi.ObjectMetaFor(obj) + meta, err := metav1.ObjectMetaFor(obj) if err != nil { return nil, nil, err } diff --git a/pkg/generate/app/pipeline_test.go b/pkg/generate/app/pipeline_test.go index dc3eb2cc1b25..3544326205d4 100644 --- a/pkg/generate/app/pipeline_test.go +++ b/pkg/generate/app/pipeline_test.go @@ -5,10 +5,11 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/intstr" deployapi "github.com/openshift/origin/pkg/deploy/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -43,7 +44,7 @@ func fakeDeploymentConfig(name string, containers ...containerDesc) *deployapi.D specContainers = append(specContainers, container) } return &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Spec: deployapi.DeploymentConfigSpec{ @@ -71,7 +72,7 @@ func expectedService(name string, ports ...portDesc) *kapi.Service { } return &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Spec: kapi.ServiceSpec{ diff --git a/pkg/generate/app/templatelookup.go b/pkg/generate/app/templatelookup.go index 9fed7c578205..095218e2a378 100644 --- a/pkg/generate/app/templatelookup.go +++ b/pkg/generate/app/templatelookup.go @@ -6,12 +6,13 @@ import ( "strings" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/template" @@ -53,7 +54,7 @@ func (r TemplateSearcher) Search(precise bool, terms ...string) (ComponentMatche } checkedNamespaces.Insert(namespace) - templates, err := r.Client.Templates(namespace).List(kapi.ListOptions{}) + templates, err := r.Client.Templates(namespace).List(metav1.ListOptions{}) if err != nil { if errors.IsNotFound(err) || errors.IsForbidden(err) { continue diff --git a/pkg/generate/app/templatelookup_test.go b/pkg/generate/app/templatelookup_test.go index dc1ce872b8c9..d7bb0d5c1bc7 100644 --- a/pkg/generate/app/templatelookup_test.go +++ b/pkg/generate/app/templatelookup_test.go @@ -3,9 +3,9 @@ package app import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/client/testclient" @@ -14,7 +14,7 @@ import ( func testTemplateClient(templates *templateapi.TemplateList) client.Interface { fake := &testclient.Fake{} - fake.AddReactor("list", "templates", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("list", "templates", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if len(action.GetNamespace()) > 0 { matchingTemplates := &templateapi.TemplateList{ Items: []templateapi.Template{}, @@ -109,7 +109,7 @@ func fakeTemplates(testData map[string][]string) *templateapi.TemplateList { for namespace, templateNames := range testData { for _, templateName := range templateNames { template := &templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: templateName, Namespace: namespace, }, diff --git a/pkg/generate/app/uniquenamegenerator.go b/pkg/generate/app/uniquenamegenerator.go index b82cf237c2e0..74ccc36e58d9 100644 --- a/pkg/generate/app/uniquenamegenerator.go +++ b/pkg/generate/app/uniquenamegenerator.go @@ -7,7 +7,7 @@ import ( "strings" "github.com/golang/glog" - kvalidation "k8s.io/kubernetes/pkg/util/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" "github.com/openshift/origin/pkg/util/namer" ) diff --git a/pkg/generate/app/uniquenamegenerator_test.go b/pkg/generate/app/uniquenamegenerator_test.go index 99a5a259be16..9a81bd63f805 100644 --- a/pkg/generate/app/uniquenamegenerator_test.go +++ b/pkg/generate/app/uniquenamegenerator_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - kvalidation "k8s.io/kubernetes/pkg/util/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" "github.com/openshift/origin/pkg/util/namer" ) diff --git a/pkg/generate/appjson/appjson.go b/pkg/generate/appjson/appjson.go index 633d3a6fecc5..a701622d8847 100644 --- a/pkg/generate/appjson/appjson.go +++ b/pkg/generate/appjson/appjson.go @@ -10,10 +10,10 @@ import ( "github.com/MakeNowJust/heredoc" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/resource" + utilerrs "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - utilerrs "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/generate" diff --git a/pkg/gitserver/autobuild/autobuild.go b/pkg/gitserver/autobuild/autobuild.go index a31fb87d2c4e..b22ba78ca795 100644 --- a/pkg/gitserver/autobuild/autobuild.go +++ b/pkg/gitserver/autobuild/autobuild.go @@ -7,10 +7,11 @@ import ( "os" "path/filepath" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/errors" + restclient "k8s.io/client-go/rest" + kclientcmd "k8s.io/client-go/tools/clientcmd" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" - kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/util/errors" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -99,7 +100,7 @@ func (a *AutoLinkBuilds) Link() (map[string]gitserver.Clone, error) { errs := []error{} builders := []*buildapi.BuildConfig{} for _, namespace := range a.Namespaces { - list, err := a.Client.BuildConfigs(namespace).List(kapi.ListOptions{}) + list, err := a.Client.BuildConfigs(namespace).List(metav1.ListOptions{}) if err != nil { errs = append(errs, err) continue @@ -112,7 +113,7 @@ func (a *AutoLinkBuilds) Link() (map[string]gitserver.Clone, error) { if hasItem(builders, b) { continue } - config, err := a.Client.BuildConfigs(b.Namespace).Get(b.Name) + config, err := a.Client.BuildConfigs(b.Namespace).Get(b.Name, metav1.GetOptions{}) if err != nil { errs = append(errs, err) continue diff --git a/pkg/gitserver/getbuildconfigs.go b/pkg/gitserver/getbuildconfigs.go index 1f79087b149d..e7b017f07d73 100644 --- a/pkg/gitserver/getbuildconfigs.go +++ b/pkg/gitserver/getbuildconfigs.go @@ -5,8 +5,8 @@ import ( "io" "os" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -17,7 +17,7 @@ const gitRepositoryAnnotationKey = "openshift.io/git-repository" func GetRepositoryBuildConfigs(c client.Interface, name string, out io.Writer) error { ns := os.Getenv("POD_NAMESPACE") - buildConfigList, err := c.BuildConfigs(ns).List(kapi.ListOptions{}) + buildConfigList, err := c.BuildConfigs(ns).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/gitserver/getbuildconfigs_test.go b/pkg/gitserver/getbuildconfigs_test.go index 0d9efec47ae0..31ad8fa496bb 100644 --- a/pkg/gitserver/getbuildconfigs_test.go +++ b/pkg/gitserver/getbuildconfigs_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client/testclient" diff --git a/pkg/gitserver/gitserver.go b/pkg/gitserver/gitserver.go index eb99b4bfb6a9..e7c15dd69404 100644 --- a/pkg/gitserver/gitserver.go +++ b/pkg/gitserver/gitserver.go @@ -18,10 +18,10 @@ import ( "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apiserver/pkg/server/healthz" + "k8s.io/client-go/tools/clientcmd" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/healthz" authapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" diff --git a/pkg/image/admission/admission.go b/pkg/image/admission/admission.go index 45853606927c..f3ff03e648f2 100644 --- a/pkg/image/admission/admission.go +++ b/pkg/image/admission/admission.go @@ -6,12 +6,13 @@ import ( "github.com/golang/glog" - kadmission "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/runtime" + admission "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/runtime" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "k8s.io/kubernetes/plugin/pkg/admission/limitranger" imageapi "github.com/openshift/origin/pkg/image/api" @@ -37,14 +38,14 @@ func init() { // imageLimitRangerPlugin is the admission plugin. type imageLimitRangerPlugin struct { - *kadmission.Handler - limitRanger kadmission.Interface + *admission.Handler + limitRanger admission.Interface } // imageLimitRangerPlugin implements the LimitRangerActions interface. var _ limitranger.LimitRangerActions = &imageLimitRangerPlugin{} var _ kadmission.WantsInformerFactory = &imageLimitRangerPlugin{} -var _ kadmission.Validator = &imageLimitRangerPlugin{} +var _ admission.Validator = &imageLimitRangerPlugin{} // NewImageLimitRangerPlugin provides a new imageLimitRangerPlugin. func NewImageLimitRangerPlugin(client clientset.Interface, config io.Reader) (kadmission.Interface, error) { @@ -69,7 +70,7 @@ func (a *imageLimitRangerPlugin) SetInformerFactory(f informers.SharedInformerFa } func (a *imageLimitRangerPlugin) Validate() error { - v, ok := a.limitRanger.(kadmission.Validator) + v, ok := a.limitRanger.(admission.Validator) if !ok { return fmt.Errorf("limitRanger does not implement kadmission.Validator") } @@ -77,7 +78,7 @@ func (a *imageLimitRangerPlugin) Validate() error { } // Admit invokes the admission logic for checking against LimitRanges. -func (a *imageLimitRangerPlugin) Admit(attr kadmission.Attributes) error { +func (a *imageLimitRangerPlugin) Admit(attr admission.Attributes) error { if !a.SupportsAttributes(attr) { return nil // not applicable } @@ -87,7 +88,7 @@ func (a *imageLimitRangerPlugin) Admit(attr kadmission.Attributes) error { // SupportsAttributes is a helper that returns true if the resource is supported by the plugin. // Implements the LimitRangerActions interface. -func (a *imageLimitRangerPlugin) SupportsAttributes(attr kadmission.Attributes) bool { +func (a *imageLimitRangerPlugin) SupportsAttributes(attr admission.Attributes) bool { if attr.GetSubresource() != "" { return false } diff --git a/pkg/image/admission/admission_test.go b/pkg/image/admission/admission_test.go index 98c4e4c34428..835cdedb9431 100644 --- a/pkg/image/admission/admission_test.go +++ b/pkg/image/admission/admission_test.go @@ -5,14 +5,15 @@ import ( "testing" "time" - kadmission "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + kadmission "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/util/wait" + informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" + kubeadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "github.com/openshift/origin/pkg/image/admission/testutil" imageapi "github.com/openshift/origin/pkg/image/api" @@ -173,7 +174,7 @@ func TestLimitAppliestoImages(t *testing.T) { }, } - plugin, err := NewImageLimitRangerPlugin(fake.NewSimpleClientset(), nil) + plugin, err := NewImageLimitRangerPlugin(nil) if err != nil { t.Fatalf("error creating plugin: %v", err) } @@ -191,7 +192,7 @@ func TestLimitAppliestoImages(t *testing.T) { } func TestHandles(t *testing.T) { - plugin, err := NewImageLimitRangerPlugin(fake.NewSimpleClientset(), nil) + plugin, err := NewImageLimitRangerPlugin(nil) if err != nil { t.Fatalf("error creating plugin: %v", err) } @@ -211,13 +212,13 @@ func TestHandles(t *testing.T) { func TestSupports(t *testing.T) { resources := []string{"imagestreammappings"} - plugin, err := NewImageLimitRangerPlugin(fake.NewSimpleClientset(), nil) + plugin, err := NewImageLimitRangerPlugin(nil) if err != nil { t.Fatalf("error creating plugin: %v", err) } ilr := plugin.(*imageLimitRangerPlugin) for _, r := range resources { - attr := kadmission.NewAttributesRecord(nil, nil, unversioned.Kind("ImageStreamMapping").WithVersion("version"), "ns", "name", imageapi.LegacyResource(r).WithVersion("version"), "", kadmission.Create, nil) + attr := kadmission.NewAttributesRecord(nil, nil, imageapi.LegacyKind("ImageStreamMapping").WithVersion(""), "ns", "name", imageapi.LegacyResource(r).WithVersion("version"), "", kadmission.Create, nil) if !ilr.SupportsAttributes(attr) { t.Errorf("plugin is expected to support %#v", r) } @@ -225,7 +226,7 @@ func TestSupports(t *testing.T) { badKinds := []string{"ImageStream", "Image", "Pod", "foo"} for _, k := range badKinds { - attr := kadmission.NewAttributesRecord(nil, nil, unversioned.Kind(k).WithVersion("version"), "ns", "name", imageapi.Resource("bar").WithVersion("version"), "", kadmission.Create, nil) + attr := kadmission.NewAttributesRecord(nil, nil, imageapi.LegacyKind(k).WithVersion(""), "ns", "name", imageapi.Resource("bar").WithVersion("version"), "", kadmission.Create, nil) if ilr.SupportsAttributes(attr) { t.Errorf("plugin is not expected to support %s", k) } @@ -234,7 +235,7 @@ func TestSupports(t *testing.T) { func getBaseImageWith1Layer() imageapi.Image { return imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: testutil.BaseImageWith1LayerDigest, Annotations: map[string]string{imageapi.ManagedByOpenShiftAnnotation: "true"}, }, @@ -245,7 +246,7 @@ func getBaseImageWith1Layer() imageapi.Image { func getLimitRange(limit string) *kapi.LimitRange { return &kapi.LimitRange{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-limit", Namespace: "test", }, @@ -264,7 +265,7 @@ func getLimitRange(limit string) *kapi.LimitRange { func getImageStreamMapping() *imageapi.ImageStreamMapping { return &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-ism", Namespace: "test", }, @@ -278,9 +279,8 @@ func newHandlerForTest(c kclientset.Interface) (kadmission.Interface, informers. return nil, nil, err } f := informers.NewSharedInformerFactory(c, 5*time.Minute) - plugins := []kadmission.Interface{plugin} - pluginInitializer := kadmission.NewPluginInitializer(f, nil) - pluginInitializer.Initialize(plugins) - err = kadmission.Validate(plugins) + pluginInitializer := kubeadmission.NewPluginInitializer(f, nil, nil, nil) + pluginInitializer.Initialize(plugin) + err = kadmission.Validate(plugin) return plugin, f, err } diff --git a/pkg/image/admission/imagepolicy/accept.go b/pkg/image/admission/imagepolicy/accept.go index d3d5d9f2d245..c87e50b0b2a8 100644 --- a/pkg/image/admission/imagepolicy/accept.go +++ b/pkg/image/admission/imagepolicy/accept.go @@ -5,11 +5,11 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + apierrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/api/meta" imagepolicyapi "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" diff --git a/pkg/image/admission/imagepolicy/api/install/install.go b/pkg/image/admission/imagepolicy/api/install/install.go index 765688e55363..f11ff9012a32 100644 --- a/pkg/image/admission/imagepolicy/api/install/install.go +++ b/pkg/image/admission/imagepolicy/api/install/install.go @@ -2,8 +2,7 @@ package install import ( "github.com/golang/glog" - - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" @@ -11,7 +10,7 @@ import ( ) // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -20,12 +19,12 @@ func init() { } // TODO: enableVersions should be centralized rather than spread in each API group. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/image/admission/imagepolicy/api/register.go b/pkg/image/admission/imagepolicy/api/register.go index d8eedec18a13..7fd27bb9735b 100644 --- a/pkg/image/admission/imagepolicy/api/register.go +++ b/pkg/image/admission/imagepolicy/api/register.go @@ -1,11 +1,11 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -19,4 +19,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *ImagePolicyConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ImagePolicyConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/image/admission/imagepolicy/api/types.go b/pkg/image/admission/imagepolicy/api/types.go index 3e3713431ef0..dcce2e5ed617 100644 --- a/pkg/image/admission/imagepolicy/api/types.go +++ b/pkg/image/admission/imagepolicy/api/types.go @@ -1,8 +1,9 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" ) // IgnorePolicyRulesAnnotation is a comma delimited list of rule names to omit from consideration @@ -11,7 +12,7 @@ const IgnorePolicyRulesAnnotation = "alpha.image.policy.openshift.io/ignore-rule // ImagePolicyConfig is the configuration for controlling how images are used in the cluster. type ImagePolicyConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // ResolveImages indicates what kind of image resolution should be done. If a rewriting policy is chosen, // then the image pull specs will be updated. @@ -58,7 +59,7 @@ type ImageCondition struct { IgnoreNamespaceOverride bool // OnResources determines which resources this applies to. Defaults to 'pods' for ImageExecutionPolicyRules. - OnResources []unversioned.GroupResource + OnResources []schema.GroupResource // InvertMatch means the value of the condition is logically inverted (true -> false, false -> true). InvertMatch bool @@ -78,7 +79,7 @@ type ImageCondition struct { // must match. MatchDockerImageLabels []ValueCondition // MatchImageLabels checks against the resolved image for a label. All conditions must match. - MatchImageLabels []unversioned.LabelSelector + MatchImageLabels []metav1.LabelSelector // MatchImageLabelSelectors is the processed form of MatchImageLabels. All conditions must match. MatchImageLabelSelectors []labels.Selector // MatchImageAnnotations checks against the resolved image for an annotation. All conditions must match. diff --git a/pkg/image/admission/imagepolicy/api/v1/defaults.go b/pkg/image/admission/imagepolicy/api/v1/defaults.go index 15047b820e0d..94f1baf331ae 100644 --- a/pkg/image/admission/imagepolicy/api/v1/defaults.go +++ b/pkg/image/admission/imagepolicy/api/v1/defaults.go @@ -1,8 +1,8 @@ package v1 import ( + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" ) func SetDefaults_ImagePolicyConfig(obj *ImagePolicyConfig) { diff --git a/pkg/image/admission/imagepolicy/api/v1/register.go b/pkg/image/admission/imagepolicy/api/v1/register.go index ed3c1ca1c605..936bbd13d8e1 100644 --- a/pkg/image/admission/imagepolicy/api/v1/register.go +++ b/pkg/image/admission/imagepolicy/api/v1/register.go @@ -1,15 +1,15 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs, addDefaultingFuncs) @@ -37,4 +37,4 @@ func addConversionFuncs(scheme *runtime.Scheme) error { ) } -func (obj *ImagePolicyConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ImagePolicyConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/image/admission/imagepolicy/api/v1/types.go b/pkg/image/admission/imagepolicy/api/v1/types.go index 11ef3a4a8e3b..06a8a4b502b7 100644 --- a/pkg/image/admission/imagepolicy/api/v1/types.go +++ b/pkg/image/admission/imagepolicy/api/v1/types.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ImagePolicyConfig is the configuration for control of images running on the platform. type ImagePolicyConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // ResolveImages indicates what kind of image resolution should be done. If a rewriting policy is chosen, // then the image pull specs will be updated. @@ -83,7 +83,7 @@ type ImageCondition struct { // conditions must match. MatchDockerImageLabels []ValueCondition `json:"matchDockerImageLabels"` // MatchImageLabels checks against the resolved image for a label. All conditions must match. - MatchImageLabels []unversioned.LabelSelector `json:"matchImageLabels"` + MatchImageLabels []metav1.LabelSelector `json:"matchImageLabels"` // MatchImageAnnotations checks against the resolved image for an annotation. All conditions must match. MatchImageAnnotations []ValueCondition `json:"matchImageAnnotations"` } diff --git a/pkg/image/admission/imagepolicy/api/validation/validation.go b/pkg/image/admission/imagepolicy/api/validation/validation.go index 3ad9bc834147..e27a1942c5f1 100644 --- a/pkg/image/admission/imagepolicy/api/validation/validation.go +++ b/pkg/image/admission/imagepolicy/api/validation/validation.go @@ -1,9 +1,9 @@ package validation import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" ) @@ -20,7 +20,7 @@ func Validate(config *api.ImagePolicyConfig) field.ErrorList { } names.Insert(rule.Name) for j, selector := range rule.MatchImageLabels { - _, err := unversioned.LabelSelectorAsSelector(&selector) + _, err := metav1.LabelSelectorAsSelector(&selector) if err != nil { allErrs = append(allErrs, field.Invalid(field.NewPath(api.PluginName, "executionRules").Index(i).Child("matchImageLabels").Index(j), nil, err.Error())) } diff --git a/pkg/image/admission/imagepolicy/api/validation/validation_test.go b/pkg/image/admission/imagepolicy/api/validation/validation_test.go index 7ce02e0bd31a..a8bd7219de44 100644 --- a/pkg/image/admission/imagepolicy/api/validation/validation_test.go +++ b/pkg/image/admission/imagepolicy/api/validation/validation_test.go @@ -3,7 +3,7 @@ package validation import ( "testing" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" ) @@ -16,7 +16,7 @@ func TestValidation(t *testing.T) { ExecutionRules: []api.ImageExecutionPolicyRule{ { ImageCondition: api.ImageCondition{ - MatchImageLabels: []unversioned.LabelSelector{ + MatchImageLabels: []metav1.LabelSelector{ {MatchLabels: map[string]string{"test": "other"}}, }, }, @@ -29,7 +29,7 @@ func TestValidation(t *testing.T) { ExecutionRules: []api.ImageExecutionPolicyRule{ { ImageCondition: api.ImageCondition{ - MatchImageLabels: []unversioned.LabelSelector{ + MatchImageLabels: []metav1.LabelSelector{ {MatchLabels: map[string]string{"": ""}}, }, }, @@ -58,7 +58,7 @@ func TestValidation(t *testing.T) { if errs := Validate(&api.ImagePolicyConfig{ ResolveImages: api.DoNotAttempt, ExecutionRules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{Name: "test", MatchImageLabels: []unversioned.LabelSelector{{}}}}, + {ImageCondition: api.ImageCondition{Name: "test", MatchImageLabels: []metav1.LabelSelector{{}}}}, }, }); len(errs) == 0 { t.Fatal(errs) diff --git a/pkg/image/admission/imagepolicy/imagepolicy.go b/pkg/image/admission/imagepolicy/imagepolicy.go index 112093f03b50..0080f41657bb 100644 --- a/pkg/image/admission/imagepolicy/imagepolicy.go +++ b/pkg/image/admission/imagepolicy/imagepolicy.go @@ -9,12 +9,12 @@ import ( "github.com/golang/glog" lru "github.com/hashicorp/golang-lru" - "k8s.io/kubernetes/pkg/admission" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/api/meta" @@ -58,7 +58,7 @@ type imagePolicyPlugin struct { integratedRegistryMatcher integratedRegistryMatcher - resolveGroupResources []unversioned.GroupResource + resolveGroupResources []schema.GroupResource projectCache *cache.ProjectCache resolver imageResolver @@ -281,7 +281,7 @@ func (c *imageResolutionCache) resolveImageReference(ref imageapi.DockerImageRef return &rules.ImagePolicyAttributes{Name: ref, Image: cached.image}, nil } } - image, err := c.images.Get(ref.ID) + image, err := c.images.Get(ref.ID, metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/image/admission/imagepolicy/imagepolicy_test.go b/pkg/image/admission/imagepolicy/imagepolicy_test.go index b022824268d9..57c4fcbaa598 100644 --- a/pkg/image/admission/imagepolicy/imagepolicy_test.go +++ b/pkg/image/admission/imagepolicy/imagepolicy_test.go @@ -7,15 +7,16 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/admission" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apiserver/pkg/admission" + clientgotesting "k8s.io/client-go/testing" + kcache "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - kcache "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client/testclient" @@ -66,17 +67,17 @@ func TestDefaultPolicy(t *testing.T) { t.Fatal(errs.ToAggregate()) } - plugin, err := newImagePolicyPlugin(nil, config) + plugin, err := newImagePolicyPlugin(config) if err != nil { t.Fatal(err) } goodImage := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: goodSHA}, + ObjectMeta: metav1.ObjectMeta{Name: goodSHA}, DockerImageReference: "integrated.registry/goodns/goodimage:good", } badImage := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: badSHA, Annotations: map[string]string{ "images.openshift.io/deny-execution": "true", @@ -87,18 +88,18 @@ func TestDefaultPolicy(t *testing.T) { notFoundTag := kerrors.NewNotFound(imageapi.Resource("imagestreamtags"), "") goodTag := &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Name: "mysql:goodtag", Namespace: "repo"}, + ObjectMeta: metav1.ObjectMeta{Name: "mysql:goodtag", Namespace: "repo"}, Image: *goodImage, } badTag := &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Name: "mysql:badtag", Namespace: "repo"}, + ObjectMeta: metav1.ObjectMeta{Name: "mysql:badtag", Namespace: "repo"}, Image: *badImage, } client := &testclient.Fake{} imageResp := 0 // respond to images in this order: goodImage, badImage - client.AddReactor("get", "images", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("get", "images", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { image := goodImage if imageResp%2 == 1 { image = badImage @@ -108,7 +109,7 @@ func TestDefaultPolicy(t *testing.T) { }) tagResp := 0 // respond to imagestreamtags in this order: notFoundTag, goodTag, badTag - client.AddReactor("get", "imagestreamtags", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("get", "imagestreamtags", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if tagResp%3 == 0 { tagResp += 1 return true, nil, notFoundTag @@ -137,8 +138,8 @@ func TestDefaultPolicy(t *testing.T) { // should allow a non-integrated image attrs := admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql:latest"}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -148,8 +149,8 @@ func TestDefaultPolicy(t *testing.T) { // should resolve the non-integrated image and allow it attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql@" + goodSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -159,8 +160,8 @@ func TestDefaultPolicy(t *testing.T) { // should resolve the integrated image by digest and allow it attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "integrated.registry/repo/mysql@" + goodSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -170,8 +171,8 @@ func TestDefaultPolicy(t *testing.T) { // should attempt resolve the integrated image by tag and fail because tag not found attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "integrated.registry/repo/mysql:missingtag"}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -181,8 +182,8 @@ func TestDefaultPolicy(t *testing.T) { // should attempt resolve the integrated image by tag and allow it attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "integrated.registry/repo/mysql:goodtag"}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -192,8 +193,8 @@ func TestDefaultPolicy(t *testing.T) { // should attempt resolve the integrated image by tag and forbid it attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "integrated.registry/repo/mysql:badtag"}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) t.Logf("%#v", plugin.accepter) @@ -204,8 +205,8 @@ func TestDefaultPolicy(t *testing.T) { // should reject the non-integrated image due to the annotation attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql@" + badSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -215,8 +216,8 @@ func TestDefaultPolicy(t *testing.T) { // should reject the non-integrated image due to the annotation on an init container attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{InitContainers: []kapi.Container{{Image: "index.docker.io/mysql@" + badSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -228,8 +229,8 @@ func TestDefaultPolicy(t *testing.T) { &buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Source: buildapi.BuildSource{Images: []buildapi.ImageSource{ {From: kapi.ObjectReference{Kind: "DockerImage", Name: "index.docker.io/mysql@" + badSHA}}, }}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -239,8 +240,8 @@ func TestDefaultPolicy(t *testing.T) { &buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Strategy: buildapi.BuildStrategy{DockerStrategy: &buildapi.DockerBuildStrategy{ From: &kapi.ObjectReference{Kind: "DockerImage", Name: "index.docker.io/mysql@" + badSHA}, }}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -250,8 +251,8 @@ func TestDefaultPolicy(t *testing.T) { &buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Strategy: buildapi.BuildStrategy{SourceStrategy: &buildapi.SourceBuildStrategy{ From: kapi.ObjectReference{Kind: "DockerImage", Name: "index.docker.io/mysql@" + badSHA}, }}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -261,8 +262,8 @@ func TestDefaultPolicy(t *testing.T) { &buildapi.Build{Spec: buildapi.BuildSpec{CommonSpec: buildapi.CommonSpec{Strategy: buildapi.BuildStrategy{CustomStrategy: &buildapi.CustomBuildStrategy{ From: kapi.ObjectReference{Kind: "DockerImage", Name: "index.docker.io/mysql@" + badSHA}, }}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -275,8 +276,8 @@ func TestDefaultPolicy(t *testing.T) { &buildapi.BuildConfig{Spec: buildapi.BuildConfigSpec{CommonSpec: buildapi.CommonSpec{Source: buildapi.BuildSource{Images: []buildapi.ImageSource{ {From: kapi.ObjectReference{Kind: "DockerImage", Name: "index.docker.io/mysql@" + badSHA}}, }}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "BuildConfig"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "buildconfigs"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "BuildConfig"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "buildconfigs"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -287,8 +288,8 @@ func TestDefaultPolicy(t *testing.T) { goodImage.Annotations = map[string]string{"images.openshift.io/deny-execution": "true"} attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql@" + goodSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -299,8 +300,8 @@ func TestDefaultPolicy(t *testing.T) { now = func() time.Time { return time.Unix(1, 0).Add(2 * time.Minute) } attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql@" + goodSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err == nil || !kerrors.IsInvalid(err) { @@ -309,7 +310,7 @@ func TestDefaultPolicy(t *testing.T) { // setting a namespace annotation should allow the rule to be skipped immediately store.Add(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "", Name: "default", Annotations: map[string]string{ @@ -319,8 +320,8 @@ func TestDefaultPolicy(t *testing.T) { }) attrs = admission.NewAttributesRecord( &kapi.Pod{Spec: kapi.PodSpec{Containers: []kapi.Container{{Image: "index.docker.io/mysql@" + goodSHA}}}}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := plugin.Admit(attrs); err != nil { @@ -329,8 +330,8 @@ func TestDefaultPolicy(t *testing.T) { } func TestAdmissionWithoutPodSpec(t *testing.T) { - onResources := []unversioned.GroupResource{{Resource: "nodes"}} - p, err := newImagePolicyPlugin(nil, &api.ImagePolicyConfig{ + onResources := []schema.GroupResource{{Resource: "nodes"}} + p, err := newImagePolicyPlugin(&api.ImagePolicyConfig{ ExecutionRules: []api.ImageExecutionPolicyRule{ {ImageCondition: api.ImageCondition{OnResources: onResources}}, }, @@ -340,8 +341,8 @@ func TestAdmissionWithoutPodSpec(t *testing.T) { } attrs := admission.NewAttributesRecord( &kapi.Node{}, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Node"}, - "", "node1", unversioned.GroupVersionResource{Version: "v1", Resource: "nodes"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Node"}, + "", "node1", schema.GroupVersionResource{Version: "v1", Resource: "nodes"}, "", admission.Create, nil, ) if err := p.Admit(attrs); !kerrors.IsForbidden(err) || !strings.Contains(err.Error(), "No list of images available for this object") { @@ -350,8 +351,8 @@ func TestAdmissionWithoutPodSpec(t *testing.T) { } func TestAdmissionResolution(t *testing.T) { - onResources := []unversioned.GroupResource{{Resource: "pods"}} - p, err := newImagePolicyPlugin(nil, &api.ImagePolicyConfig{ + onResources := []schema.GroupResource{{Resource: "pods"}} + p, err := newImagePolicyPlugin(&api.ImagePolicyConfig{ ResolveImages: api.AttemptRewrite, ExecutionRules: []api.ImageExecutionPolicyRule{ {ImageCondition: api.ImageCondition{OnResources: onResources}}, @@ -370,12 +371,12 @@ func TestAdmissionResolution(t *testing.T) { case "index.docker.io/mysql:latest": return &rules.ImagePolicyAttributes{ Name: imageapi.DockerImageReference{Registry: "index.docker.io", Name: "mysql", Tag: "latest"}, - Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Name: "1"}}, + Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Name: "1"}}, }, nil case "myregistry.com/mysql/mysql:latest": return &rules.ImagePolicyAttributes{ Name: imageapi.DockerImageReference{Registry: "myregistry.com", Namespace: "mysql", Name: "mysql", ID: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"}, - Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Name: "2"}}, + Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Name: "2"}}, }, nil } t.Fatalf("unexpected call to resolve image: %v", ref) @@ -396,8 +397,8 @@ func TestAdmissionResolution(t *testing.T) { }, }, }, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := p.Admit(failingAttrs); err == nil { @@ -414,8 +415,8 @@ func TestAdmissionResolution(t *testing.T) { } attrs := admission.NewAttributesRecord( pod, - nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ) if err := p.Admit(attrs); err != nil { @@ -430,7 +431,7 @@ func TestAdmissionResolution(t *testing.T) { func TestAdmissionResolveImages(t *testing.T) { image1 := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "sha256:0000000000000000000000000000000000000000000000000000000000000001"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:0000000000000000000000000000000000000000000000000000000000000001"}, DockerImageReference: "integrated.registry/image1/image1:latest", } @@ -453,8 +454,8 @@ func TestAdmissionResolveImages(t *testing.T) { {Image: "myregistry.com/mysql/mysql:latest"}, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ), }, @@ -470,8 +471,8 @@ func TestAdmissionResolveImages(t *testing.T) { {Image: "integrated.registry/test/mysql@sha256:0000000000000000000000000000000000000000000000000000000000000001"}, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ), admit: true, @@ -495,8 +496,8 @@ func TestAdmissionResolveImages(t *testing.T) { {Image: "integrated.registry/test/mysql@sha256:0000000000000000000000000000000000000000000000000000000000000001"}, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Pod"}, - "default", "pod1", unversioned.GroupVersionResource{Version: "v1", Resource: "pods"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Pod"}, + "default", "pod1", schema.GroupVersionResource{Version: "v1", Resource: "pods"}, "", admission.Create, nil, ), admit: true, @@ -524,8 +525,8 @@ func TestAdmissionResolveImages(t *testing.T) { }, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ), admit: true, @@ -545,7 +546,7 @@ func TestAdmissionResolveImages(t *testing.T) { { client: testclient.NewSimpleFake( &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Name: "test:other", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "test:other", Namespace: "default"}, Image: *image1, }, ), @@ -560,8 +561,8 @@ func TestAdmissionResolveImages(t *testing.T) { }, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ), admit: true, @@ -581,7 +582,7 @@ func TestAdmissionResolveImages(t *testing.T) { { client: testclient.NewSimpleFake( &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Name: "test:other", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "test:other", Namespace: "default"}, Image: *image1, }, ), @@ -596,8 +597,8 @@ func TestAdmissionResolveImages(t *testing.T) { }, }, }, - }, nil, unversioned.GroupVersionKind{Group: "build.openshift.io", Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Group: "build.openshift.io", Version: "v1", Resource: "builds"}, + }, nil, schema.GroupVersionKind{Group: "build.openshift.io", Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Group: "build.openshift.io", Version: "v1", Resource: "builds"}, "", admission.Create, nil, ), admit: true, @@ -617,7 +618,7 @@ func TestAdmissionResolveImages(t *testing.T) { { client: testclient.NewSimpleFake( &imageapi.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{Name: "test@sha256:0000000000000000000000000000000000000000000000000000000000000001", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "test@sha256:0000000000000000000000000000000000000000000000000000000000000001", Namespace: "default"}, Image: *image1, }, ), @@ -632,8 +633,8 @@ func TestAdmissionResolveImages(t *testing.T) { }, }, }, - }, nil, unversioned.GroupVersionKind{Version: "v1", Kind: "Build"}, - "default", "build1", unversioned.GroupVersionResource{Version: "v1", Resource: "builds"}, + }, nil, schema.GroupVersionKind{Version: "v1", Kind: "Build"}, + "default", "build1", schema.GroupVersionResource{Version: "v1", Resource: "builds"}, "", admission.Create, nil, ), admit: true, @@ -651,8 +652,8 @@ func TestAdmissionResolveImages(t *testing.T) { }, } for i, test := range testCases { - onResources := []unversioned.GroupResource{{Resource: "builds"}, {Resource: "pods"}} - p, err := newImagePolicyPlugin(nil, &api.ImagePolicyConfig{ + onResources := []schema.GroupResource{{Resource: "builds"}, {Resource: "pods"}} + p, err := newImagePolicyPlugin(&api.ImagePolicyConfig{ ResolveImages: api.RequiredRewrite, ExecutionRules: []api.ImageExecutionPolicyRule{ {ImageCondition: api.ImageCondition{OnResources: onResources}}, diff --git a/pkg/image/admission/imagepolicy/rules/accept.go b/pkg/image/admission/imagepolicy/rules/accept.go index 7f7767a51628..a935075127f5 100644 --- a/pkg/image/admission/imagepolicy/rules/accept.go +++ b/pkg/image/admission/imagepolicy/rules/accept.go @@ -2,22 +2,21 @@ package rules import ( "github.com/golang/glog" - - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/runtime/schema" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" ) type Accepter interface { - Covers(unversioned.GroupResource) bool + Covers(schema.GroupResource) bool Accepts(*ImagePolicyAttributes) bool } // mappedAccepter implements the Accepter interface for a map of group resources and accepters -type mappedAccepter map[unversioned.GroupResource]Accepter +type mappedAccepter map[schema.GroupResource]Accepter -func (a mappedAccepter) Covers(gr unversioned.GroupResource) bool { +func (a mappedAccepter) Covers(gr schema.GroupResource) bool { _, ok := a[gr] return ok } @@ -34,7 +33,7 @@ func (a mappedAccepter) Accepts(attr *ImagePolicyAttributes) bool { type executionAccepter struct { rules []api.ImageExecutionPolicyRule - covers unversioned.GroupResource + covers schema.GroupResource defaultReject bool integratedRegistryMatcher RegistryMatcher @@ -82,7 +81,7 @@ func NewExecutionRulesAccepter(rules []api.ImageExecutionPolicyRule, integratedR return mapped, nil } -func (r *executionAccepter) Covers(gr unversioned.GroupResource) bool { +func (r *executionAccepter) Covers(gr schema.GroupResource) bool { return r.covers == gr } diff --git a/pkg/image/admission/imagepolicy/rules/accept_test.go b/pkg/image/admission/imagepolicy/rules/accept_test.go index 1110ff4f0729..e2311dcd27af 100644 --- a/pkg/image/admission/imagepolicy/rules/accept_test.go +++ b/pkg/image/admission/imagepolicy/rules/accept_test.go @@ -3,9 +3,9 @@ package rules import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -25,18 +25,18 @@ type acceptResult struct { } func TestAccept(t *testing.T) { - podResource := unversioned.GroupResource{Resource: "pods"} + podResource := schema.GroupResource{Resource: "pods"} testCases := map[string]struct { rules []api.ImageExecutionPolicyRule matcher RegistryMatcher - covers map[unversioned.GroupResource]bool + covers map[schema.GroupResource]bool accepts []acceptResult }{ "empty": { matcher: nameSet{}, - covers: map[unversioned.GroupResource]bool{ - unversioned.GroupResource{}: false, + covers: map[schema.GroupResource]bool{ + schema.GroupResource{}: false, }, }, "accepts when rules are empty": { @@ -51,7 +51,7 @@ func TestAccept(t *testing.T) { "when all rules are deny, match everything else": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {Reject: true, ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchIntegratedRegistry: true}}, + {Reject: true, ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchIntegratedRegistry: true}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{}, true}, @@ -64,9 +64,9 @@ func TestAccept(t *testing.T) { "deny rule and accept rule": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}}}, {Reject: true, ImageCondition: api.ImageCondition{ - OnResources: []unversioned.GroupResource{podResource}, + OnResources: []schema.GroupResource{podResource}, MatchRegistries: []string{"index.docker.io"}, }}, }, @@ -81,7 +81,7 @@ func TestAccept(t *testing.T) { "exclude a deny rule": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {Reject: true, ImageCondition: api.ImageCondition{Name: "excluded-rule", OnResources: []unversioned.GroupResource{podResource}, MatchIntegratedRegistry: true, SkipOnResolutionFailure: true}}, + {Reject: true, ImageCondition: api.ImageCondition{Name: "excluded-rule", OnResources: []schema.GroupResource{podResource}, MatchIntegratedRegistry: true, SkipOnResolutionFailure: true}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{ExcludedRules: sets.NewString("excluded-rule")}, true}, @@ -94,7 +94,7 @@ func TestAccept(t *testing.T) { "invert a deny rule": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{InvertMatch: true, OnResources: []unversioned.GroupResource{podResource}, MatchIntegratedRegistry: true}}, + {ImageCondition: api.ImageCondition{InvertMatch: true, OnResources: []schema.GroupResource{podResource}, MatchIntegratedRegistry: true}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{}, true}, @@ -107,7 +107,7 @@ func TestAccept(t *testing.T) { "reject an inverted deny rule": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {Reject: true, ImageCondition: api.ImageCondition{InvertMatch: true, OnResources: []unversioned.GroupResource{podResource}, MatchIntegratedRegistry: true}}, + {Reject: true, ImageCondition: api.ImageCondition{InvertMatch: true, OnResources: []schema.GroupResource{podResource}, MatchIntegratedRegistry: true}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{}, true}, @@ -119,7 +119,7 @@ func TestAccept(t *testing.T) { }, "flags image resolution failure on matching resources": { rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, SkipOnResolutionFailure: false}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, SkipOnResolutionFailure: false}}, }, accepts: []acceptResult{ // allowed because they are on different resources @@ -138,7 +138,7 @@ func TestAccept(t *testing.T) { "accepts matching registries": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchRegistries: []string{"myregistry.io"}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchRegistries: []string{"myregistry.io"}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource, Name: imageref("myregistry.io:5000/test:latest")}, false}, @@ -149,81 +149,81 @@ func TestAccept(t *testing.T) { "accepts matching image labels": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageLabels: []unversioned.LabelSelector{{MatchLabels: map[string]string{"label1": "value1"}}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageLabels: []metav1.LabelSelector{{MatchLabels: map[string]string{"label1": "value1"}}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching multiple image label values": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageLabels: []unversioned.LabelSelector{{MatchLabels: map[string]string{"label1": "value1"}}}}}, - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageLabels: []unversioned.LabelSelector{{MatchLabels: map[string]string{"label1": "value2"}}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageLabels: []metav1.LabelSelector{{MatchLabels: map[string]string{"label1": "value1"}}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageLabels: []metav1.LabelSelector{{MatchLabels: map[string]string{"label1": "value2"}}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching image labels by key": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageLabels: []unversioned.LabelSelector{{MatchExpressions: []unversioned.LabelSelectorRequirement{{Key: "label1", Operator: unversioned.LabelSelectorOpExists}}}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageLabels: []metav1.LabelSelector{{MatchExpressions: []metav1.LabelSelectorRequirement{{Key: "label1", Operator: metav1.LabelSelectorOpExists}}}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label1": "value2"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching image annotations": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching multiple image annotations values": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value2"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Value: "value2"}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching image annotations by key": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Set: true}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchImageAnnotations: []api.ValueCondition{{Key: "label1", Set: true}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, true}, - {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: kapi.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value1"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label1": "value2"}}}}, true}, + {ImagePolicyAttributes{Resource: podResource, Image: &imageapi.Image{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"label2": "value1"}}}}, false}, }, }, "accepts matching docker image labels": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, @@ -235,8 +235,8 @@ func TestAccept(t *testing.T) { "accepts matching multiple docker image label values": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value2"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value1"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Value: "value2"}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, @@ -248,7 +248,7 @@ func TestAccept(t *testing.T) { "accepts matching docker image labels by key": { matcher: NewRegistryMatcher([]string{"myregistry.io:5000"}), rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Set: true}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource}, MatchDockerImageLabels: []api.ValueCondition{{Key: "label1", Set: true}}}}, }, accepts: []acceptResult{ {ImagePolicyAttributes{Resource: podResource}, false}, @@ -259,17 +259,17 @@ func TestAccept(t *testing.T) { }, "covers calculations": { rules: []api.ImageExecutionPolicyRule{ - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{podResource, {Resource: "services"}}}}, - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{{Resource: "services", Group: "extra"}}}}, - {ImageCondition: api.ImageCondition{OnResources: []unversioned.GroupResource{{Resource: "nodes", Group: "extra"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{podResource, {Resource: "services"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{{Resource: "services", Group: "extra"}}}}, + {ImageCondition: api.ImageCondition{OnResources: []schema.GroupResource{{Resource: "nodes", Group: "extra"}}}}, }, matcher: nameSet{}, - covers: map[unversioned.GroupResource]bool{ - podResource: true, - unversioned.GroupResource{Resource: "services"}: true, - unversioned.GroupResource{Group: "extra", Resource: "services"}: true, - unversioned.GroupResource{Group: "extra", Resource: "nodes"}: true, - unversioned.GroupResource{Resource: "nodes"}: false, + covers: map[schema.GroupResource]bool{ + podResource: true, + schema.GroupResource{Resource: "services"}: true, + schema.GroupResource{Group: "extra", Resource: "services"}: true, + schema.GroupResource{Group: "extra", Resource: "nodes"}: true, + schema.GroupResource{Resource: "nodes"}: false, }, }, } diff --git a/pkg/image/admission/imagepolicy/rules/rules.go b/pkg/image/admission/imagepolicy/rules/rules.go index e6bada4dc375..421beef38ff3 100644 --- a/pkg/image/admission/imagepolicy/rules/rules.go +++ b/pkg/image/admission/imagepolicy/rules/rules.go @@ -1,16 +1,17 @@ package rules import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/sets" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/image/admission/imagepolicy/api" imageapi "github.com/openshift/origin/pkg/image/api" ) type ImagePolicyAttributes struct { - Resource unversioned.GroupResource + Resource schema.GroupResource Name imageapi.DockerImageReference Image *imageapi.Image ExcludedRules sets.String @@ -46,7 +47,7 @@ func NewRegistryMatcher(names []string) RegistryMatcher { return nameSet(names) } -type resourceSet map[unversioned.GroupResource]struct{} +type resourceSet map[schema.GroupResource]struct{} func (s resourceSet) addAll(other resourceSet) { for k := range other { @@ -61,7 +62,7 @@ func imageConditionInfo(rule *api.ImageCondition) (covers resourceSet, selectors } for i := range rule.MatchImageLabels { - s, err := unversioned.LabelSelectorAsSelector(&rule.MatchImageLabels[i]) + s, err := metav1.LabelSelectorAsSelector(&rule.MatchImageLabels[i]) if err != nil { return nil, nil, err } diff --git a/pkg/image/admission/imagestream_limits.go b/pkg/image/admission/imagestream_limits.go index 5c7108359b55..5aac446c6128 100644 --- a/pkg/image/admission/imagestream_limits.go +++ b/pkg/image/admission/imagestream_limits.go @@ -1,9 +1,9 @@ package admission import ( + kapierrors "k8s.io/apimachinery/pkg/api/errors" + kerrutil "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - kerrutil "k8s.io/kubernetes/pkg/util/errors" imageapi "github.com/openshift/origin/pkg/image/api" ) diff --git a/pkg/image/admission/imagestream_limits_test.go b/pkg/image/admission/imagestream_limits_test.go index cbab59e51bd1..e2f30f029bd3 100644 --- a/pkg/image/admission/imagestream_limits_test.go +++ b/pkg/image/admission/imagestream_limits_test.go @@ -4,8 +4,9 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" imagetest "github.com/openshift/origin/pkg/image/admission/testutil" imageapi "github.com/openshift/origin/pkg/image/api" @@ -373,7 +374,7 @@ func TestVerifyLimits(t *testing.T) { }, } { limitRange := &kapi.LimitRange{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "limitrange", }, diff --git a/pkg/image/admission/testutil/util.go b/pkg/image/admission/testutil/util.go index 54a3f4a88c92..da8c3c3212a3 100644 --- a/pkg/image/admission/testutil/util.go +++ b/pkg/image/admission/testutil/util.go @@ -4,11 +4,12 @@ import ( "fmt" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -43,13 +44,13 @@ func (f *FakeImageStreamLimitVerifier) VerifyLimits(ns string, is *imageapi.Imag // GetFakeImageStreamListHandler creates a test handler that lists given image streams matching requested // namespace. Additionally, a shared image stream will be listed if the requested namespace is "shared". -func GetFakeImageStreamListHandler(t *testing.T, iss ...imageapi.ImageStream) core.ReactionFunc { +func GetFakeImageStreamListHandler(t *testing.T, iss ...imageapi.ImageStream) clientgotesting.ReactionFunc { sharedISs := []imageapi.ImageStream{*GetSharedImageStream("shared", "is")} allISs := append(sharedISs, iss...) - return func(action core.Action) (handled bool, ret runtime.Object, err error) { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { switch a := action.(type) { - case core.ListAction: + case clientgotesting.ListAction: res := &imageapi.ImageStreamList{ Items: []imageapi.ImageStream{}, } @@ -70,13 +71,13 @@ func GetFakeImageStreamListHandler(t *testing.T, iss ...imageapi.ImageStream) co // GetFakeImageStreamGetHandler creates a test handler to be used as a reactor with core.Fake client // that handles Get request on image stream resource. Matching is from given image stream list will be // returned if found. Additionally, a shared image stream may be requested. -func GetFakeImageStreamGetHandler(t *testing.T, iss ...imageapi.ImageStream) core.ReactionFunc { +func GetFakeImageStreamGetHandler(t *testing.T, iss ...imageapi.ImageStream) clientgotesting.ReactionFunc { sharedISs := []imageapi.ImageStream{*GetSharedImageStream("shared", "is")} allISs := append(sharedISs, iss...) - return func(action core.Action) (handled bool, ret runtime.Object, err error) { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { switch a := action.(type) { - case core.GetAction: + case clientgotesting.GetAction: for _, is := range allISs { if is.Namespace == a.GetNamespace() && a.GetName() == is.Name { t.Logf("imagestream get handler: returning image stream %s/%s", is.Namespace, is.Name) @@ -111,7 +112,7 @@ func GetSharedImageStream(namespace, name string) *imageapi.ImageStream { } sharedIS := imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, diff --git a/pkg/image/admission/usage.go b/pkg/image/admission/usage.go index 18c5fdc388ee..532d72ed3549 100644 --- a/pkg/image/admission/usage.go +++ b/pkg/image/admission/usage.go @@ -5,10 +5,11 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/sets" imageapi "github.com/openshift/origin/pkg/image/api" ) @@ -169,7 +170,7 @@ func GetImageReferenceForObjectReference(namespace string, objRef *kapi.ObjectRe } // /: - return cache.MetaNamespaceKeyFunc(&kapi.ObjectMeta{ + return cache.MetaNamespaceKeyFunc(&metav1.ObjectMeta{ Namespace: ns, Name: imageapi.JoinImageStreamTag(isName, tag), }) diff --git a/pkg/image/admission/usage_test.go b/pkg/image/admission/usage_test.go index 6a3981150593..b75c910d22d9 100644 --- a/pkg/image/admission/usage_test.go +++ b/pkg/image/admission/usage_test.go @@ -4,8 +4,9 @@ import ( "fmt" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" imagetest "github.com/openshift/origin/pkg/image/admission/testutil" imageapi "github.com/openshift/origin/pkg/image/api" @@ -395,7 +396,7 @@ func TestGetImageStreamUsage(t *testing.T) { { name: "the same image in both spec and status", is: imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "noshared", }, @@ -529,7 +530,7 @@ func TestGetImageStreamUsage(t *testing.T) { { name: "identical tags with fallback namespace", is: imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "fallback", Name: "is", }, diff --git a/pkg/image/api/conversion.go b/pkg/image/api/conversion.go index 87a58cc63137..911474e92c62 100644 --- a/pkg/image/api/conversion.go +++ b/pkg/image/api/conversion.go @@ -3,9 +3,9 @@ package api import ( "github.com/fsouza/go-dockerclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/conversion" ) func init() { @@ -21,7 +21,7 @@ func init() { out.ID = in.ID out.Parent = in.Parent out.Comment = in.Comment - out.Created = unversioned.NewTime(in.Created) + out.Created = metav1.NewTime(in.Created) out.Container = in.Container out.DockerVersion = in.DockerVersion out.Author = in.Author diff --git a/pkg/image/api/docker10/dockertypes.go b/pkg/image/api/docker10/dockertypes.go index 4fab3baa1060..48510d2ac680 100644 --- a/pkg/image/api/docker10/dockertypes.go +++ b/pkg/image/api/docker10/dockertypes.go @@ -1,25 +1,25 @@ package docker10 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // DockerImage is the type representing a docker image and its various properties when // retrieved from the Docker client API. type DockerImage struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` - ID string `json:"Id"` - Parent string `json:"Parent,omitempty"` - Comment string `json:"Comment,omitempty"` - Created unversioned.Time `json:"Created,omitempty"` - Container string `json:"Container,omitempty"` - ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"` - DockerVersion string `json:"DockerVersion,omitempty"` - Author string `json:"Author,omitempty"` - Config *DockerConfig `json:"Config,omitempty"` - Architecture string `json:"Architecture,omitempty"` - Size int64 `json:"Size,omitempty"` + ID string `json:"Id"` + Parent string `json:"Parent,omitempty"` + Comment string `json:"Comment,omitempty"` + Created metav1.Time `json:"Created,omitempty"` + Container string `json:"Container,omitempty"` + ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"` + DockerVersion string `json:"DockerVersion,omitempty"` + Author string `json:"Author,omitempty"` + Config *DockerConfig `json:"Config,omitempty"` + Architecture string `json:"Architecture,omitempty"` + Size int64 `json:"Size,omitempty"` } // DockerConfig is the list of configuration options used when creating a container. diff --git a/pkg/image/api/docker10/register.go b/pkg/image/api/docker10/register.go index e58fa91cc1eb..31d616a06c0c 100644 --- a/pkg/image/api/docker10/register.go +++ b/pkg/image/api/docker10/register.go @@ -1,8 +1,8 @@ package docker10 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) const ( @@ -12,8 +12,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "1.0"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "1.0"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "1.0"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "1.0"} SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) diff --git a/pkg/image/api/dockerpre012/conversion.go b/pkg/image/api/dockerpre012/conversion.go index d99af581af39..6083964f3f52 100644 --- a/pkg/image/api/dockerpre012/conversion.go +++ b/pkg/image/api/dockerpre012/conversion.go @@ -3,9 +3,9 @@ package dockerpre012 import ( "github.com/fsouza/go-dockerclient" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" newer "github.com/openshift/origin/pkg/image/api" ) @@ -21,7 +21,7 @@ func Convert_dockerpre012_ImagePre_012_to_api_DockerImage(in *docker.ImagePre012 out.ID = in.ID out.Parent = in.Parent out.Comment = in.Comment - out.Created = unversioned.NewTime(in.Created) + out.Created = metav1.NewTime(in.Created) out.Container = in.Container out.DockerVersion = in.DockerVersion out.Author = in.Author diff --git a/pkg/image/api/dockerpre012/dockertypes.go b/pkg/image/api/dockerpre012/dockertypes.go index 07620520ea55..3e08383ad44e 100644 --- a/pkg/image/api/dockerpre012/dockertypes.go +++ b/pkg/image/api/dockerpre012/dockertypes.go @@ -1,25 +1,25 @@ package dockerpre012 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // DockerImage is for earlier versions of the Docker API (pre-012 to be specific). It is also the // version of metadata that the Docker registry uses to persist metadata. type DockerImage struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` - ID string `json:"id"` - Parent string `json:"parent,omitempty"` - Comment string `json:"comment,omitempty"` - Created unversioned.Time `json:"created"` - Container string `json:"container,omitempty"` - ContainerConfig DockerConfig `json:"container_config,omitempty"` - DockerVersion string `json:"docker_version,omitempty"` - Author string `json:"author,omitempty"` - Config *DockerConfig `json:"config,omitempty"` - Architecture string `json:"architecture,omitempty"` - Size int64 `json:"size,omitempty"` + ID string `json:"id"` + Parent string `json:"parent,omitempty"` + Comment string `json:"comment,omitempty"` + Created metav1.Time `json:"created"` + Container string `json:"container,omitempty"` + ContainerConfig DockerConfig `json:"container_config,omitempty"` + DockerVersion string `json:"docker_version,omitempty"` + Author string `json:"author,omitempty"` + Config *DockerConfig `json:"config,omitempty"` + Architecture string `json:"architecture,omitempty"` + Size int64 `json:"size,omitempty"` } // DockerConfig is the list of configuration options used when creating a container. diff --git a/pkg/image/api/dockerpre012/register.go b/pkg/image/api/dockerpre012/register.go index 0298c12a801f..57bbcf7770d7 100644 --- a/pkg/image/api/dockerpre012/register.go +++ b/pkg/image/api/dockerpre012/register.go @@ -1,8 +1,8 @@ package dockerpre012 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) const ( @@ -11,8 +11,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "pre012"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "pre012"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "pre012"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "pre012"} SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs) AddToScheme = SchemeBuilder.AddToScheme diff --git a/pkg/image/api/dockertypes.go b/pkg/image/api/dockertypes.go index 927d36e707d9..b09c95433527 100644 --- a/pkg/image/api/dockertypes.go +++ b/pkg/image/api/dockertypes.go @@ -1,25 +1,25 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // DockerImage is the type representing a docker image and its various properties when // retrieved from the Docker client API. type DockerImage struct { - unversioned.TypeMeta `json:",inline"` - - ID string `json:"Id"` - Parent string `json:"Parent,omitempty"` - Comment string `json:"Comment,omitempty"` - Created unversioned.Time `json:"Created,omitempty"` - Container string `json:"Container,omitempty"` - ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"` - DockerVersion string `json:"DockerVersion,omitempty"` - Author string `json:"Author,omitempty"` - Config *DockerConfig `json:"Config,omitempty"` - Architecture string `json:"Architecture,omitempty"` - Size int64 `json:"Size,omitempty"` + metav1.TypeMeta `json:",inline"` + + ID string `json:"Id"` + Parent string `json:"Parent,omitempty"` + Comment string `json:"Comment,omitempty"` + Created metav1.Time `json:"Created,omitempty"` + Container string `json:"Container,omitempty"` + ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"` + DockerVersion string `json:"DockerVersion,omitempty"` + Author string `json:"Author,omitempty"` + Config *DockerConfig `json:"Config,omitempty"` + Architecture string `json:"Architecture,omitempty"` + Size int64 `json:"Size,omitempty"` } // DockerConfig is the list of configuration options used when creating a container. @@ -103,17 +103,17 @@ type DockerHistory struct { // DockerV1CompatibilityImage represents the structured v1 // compatibility information. type DockerV1CompatibilityImage struct { - ID string `json:"id"` - Parent string `json:"parent,omitempty"` - Comment string `json:"comment,omitempty"` - Created unversioned.Time `json:"created"` - Container string `json:"container,omitempty"` - ContainerConfig DockerConfig `json:"container_config,omitempty"` - DockerVersion string `json:"docker_version,omitempty"` - Author string `json:"author,omitempty"` - Config *DockerConfig `json:"config,omitempty"` - Architecture string `json:"architecture,omitempty"` - Size int64 `json:"size,omitempty"` + ID string `json:"id"` + Parent string `json:"parent,omitempty"` + Comment string `json:"comment,omitempty"` + Created metav1.Time `json:"created"` + Container string `json:"container,omitempty"` + ContainerConfig DockerConfig `json:"container_config,omitempty"` + DockerVersion string `json:"docker_version,omitempty"` + Author string `json:"author,omitempty"` + Config *DockerConfig `json:"config,omitempty"` + Architecture string `json:"architecture,omitempty"` + Size int64 `json:"size,omitempty"` } // DockerV1CompatibilityImageSize represents the structured v1 @@ -127,7 +127,7 @@ type DockerImageConfig struct { ID string `json:"id"` Parent string `json:"parent,omitempty"` Comment string `json:"comment,omitempty"` - Created unversioned.Time `json:"created"` + Created metav1.Time `json:"created"` Container string `json:"container,omitempty"` ContainerConfig DockerConfig `json:"container_config,omitempty"` DockerVersion string `json:"docker_version,omitempty"` @@ -143,11 +143,11 @@ type DockerImageConfig struct { // DockerConfigHistory stores build commands that were used to create an image type DockerConfigHistory struct { - Created unversioned.Time `json:"created"` - Author string `json:"author,omitempty"` - CreatedBy string `json:"created_by,omitempty"` - Comment string `json:"comment,omitempty"` - EmptyLayer bool `json:"empty_layer,omitempty"` + Created metav1.Time `json:"created"` + Author string `json:"author,omitempty"` + CreatedBy string `json:"created_by,omitempty"` + Comment string `json:"comment,omitempty"` + EmptyLayer bool `json:"empty_layer,omitempty"` } // DockerConfigRootFS describes images root filesystem diff --git a/pkg/image/api/fields.go b/pkg/image/api/fields.go index 9cc491856eed..c357e2aa09bc 100644 --- a/pkg/image/api/fields.go +++ b/pkg/image/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // ImageToSelectableFields returns a label set that represents the object. func ImageToSelectableFields(image *Image) fields.Set { diff --git a/pkg/image/api/helper.go b/pkg/image/api/helper.go index a106d1b5b28b..a360f6a08073 100644 --- a/pkg/image/api/helper.go +++ b/pkg/image/api/helper.go @@ -10,9 +10,9 @@ import ( "sort" "strings" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" "github.com/blang/semver" "github.com/docker/distribution/digest" @@ -890,7 +890,7 @@ func ResolveImageID(stream *ImageStream, imageID string) (*TagEvent, error) { switch len(set) { case 1: return &TagEvent{ - Created: unversioned.Now(), + Created: metav1.Now(), DockerImageReference: event.DockerImageReference, Image: event.Image, }, nil diff --git a/pkg/image/api/helper_test.go b/pkg/image/api/helper_test.go index 791b48e82599..7bfd07b9625c 100644 --- a/pkg/image/api/helper_test.go +++ b/pkg/image/api/helper_test.go @@ -7,9 +7,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/diff" ) func TestParseImageStreamImageName(t *testing.T) { @@ -360,7 +360,7 @@ func TestDockerImageReferenceString(t *testing.T) { func validImageWithManifestData() Image { return Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "id", }, DockerImageManifest: `{ @@ -424,7 +424,7 @@ func validImageWithManifestData() Image { func validImageWithManifestV2Data() Image { return Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "id", }, DockerImageConfig: `{ @@ -593,7 +593,7 @@ func TestImageWithMetadata(t *testing.T) { "happy path": { image: validImageWithManifestData(), expectedImage: Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "id", }, DockerImageManifest: validImageWithManifestData().DockerImageManifest, @@ -609,7 +609,7 @@ func TestImageWithMetadata(t *testing.T) { ID: "2d24f826cb16146e2016ff349a8a33ed5830f3b938d45c0f82943f4ab8c097e7", Parent: "117ee323aaa9d1b136ea55e4421f4ce413dfc6c0cc6b2186dea6c88d93e1ad7c", Comment: "", - Created: unversioned.Date(2015, 2, 21, 2, 11, 6, 735146646, time.UTC), + Created: metav1.Date(2015, 2, 21, 2, 11, 6, 735146646, time.UTC), Container: "c9a3eda5951d28aa8dbe5933be94c523790721e4f80886d0a8e7a710132a38ec", ContainerConfig: DockerConfig{ Hostname: "43bd710ec89a", @@ -672,7 +672,7 @@ func TestImageWithMetadata(t *testing.T) { "valid metadata size": { image: validImageWithManifestV2Data(), expectedImage: Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "id", }, DockerImageConfig: validImageWithManifestV2Data().DockerImageConfig, @@ -688,7 +688,7 @@ func TestImageWithMetadata(t *testing.T) { ID: "sha256:815d06b56f4138afacd0009b8e3799fcdce79f0507bf8d0588e219b93ab6fd4d", Parent: "", Comment: "", - Created: unversioned.Date(2015, 2, 21, 2, 11, 6, 735146646, time.UTC), + Created: metav1.Date(2015, 2, 21, 2, 11, 6, 735146646, time.UTC), Container: "e91032eb0403a61bfe085ff5a5a48e3659e5a6deae9f4d678daa2ae399d5a001", DockerVersion: "1.9.0-dev", Author: "", @@ -1211,7 +1211,7 @@ func TestUpdateTrackingTags(t *testing.T) { for name, test := range tests { stream := &ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns", Name: "ruby", }, @@ -1750,7 +1750,7 @@ func TestIndexOfImageSignature(t *testing.T) { } func mockImageStream(policy TagReferencePolicyType) *ImageStream { - now := unversioned.Now() + now := metav1.Now() stream := &ImageStream{} stream.Status = ImageStreamStatus{} stream.Spec = ImageStreamSpec{} @@ -1778,7 +1778,7 @@ func mockImageStream(policy TagReferencePolicyType) *ImageStream { { Image: "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb", DockerImageReference: "test/foo@sha256:oldbar", - Created: unversioned.Time{Time: now.Add(-5 * time.Second)}, + Created: metav1.Time{Time: now.Add(-5 * time.Second)}, Generation: 1, }, }} diff --git a/pkg/image/api/install/apigroup.go b/pkg/image/api/install/apigroup.go index 71faff222285..75d03fd75b5d 100644 --- a/pkg/image/api/install/apigroup.go +++ b/pkg/image/api/install/apigroup.go @@ -1,9 +1,9 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/docker10" diff --git a/pkg/image/api/install/install.go b/pkg/image/api/install/install.go index 0bc967109413..73e1e58250a9 100644 --- a/pkg/image/api/install/install.go +++ b/pkg/image/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/docker10" @@ -24,15 +23,15 @@ const importPrefix = "github.com/openshift/origin/pkg/image/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{ +var availableVersions = []schema.GroupVersion{ v1.LegacySchemeGroupVersion, docker10.LegacySchemeGroupVersion, dockerpre012.LegacySchemeGroupVersion, } func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -41,7 +40,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -53,9 +52,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -67,18 +66,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -97,13 +96,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("Image", "ImageSignature") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -124,7 +123,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/image/api/register.go b/pkg/image/api/register.go index 36870edce3b0..27425bdc547c 100644 --- a/pkg/image/api/register.go +++ b/pkg/image/api/register.go @@ -1,9 +1,10 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +14,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -24,20 +25,20 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -89,11 +90,11 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, &kapi.SecretList{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/image/api/sort.go b/pkg/image/api/sort.go index 0cd39a72fb90..03a875b17b22 100644 --- a/pkg/image/api/sort.go +++ b/pkg/image/api/sort.go @@ -3,12 +3,12 @@ package api import ( "sort" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) type tag struct { Name string - Created unversioned.Time + Created metav1.Time } type byCreationTimestamp []tag diff --git a/pkg/image/api/sort_test.go b/pkg/image/api/sort_test.go index 370301187090..82c712fd777e 100644 --- a/pkg/image/api/sort_test.go +++ b/pkg/image/api/sort_test.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "reflect" "testing" @@ -21,7 +21,7 @@ func TestSortStatusTags(t *testing.T) { Items: []TagEvent{ { DockerImageReference: "other-ref", - Created: unversioned.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 52, 0, 0, time.UTC), Image: "other-image", }, }, @@ -30,7 +30,7 @@ func TestSortStatusTags(t *testing.T) { Items: []TagEvent{ { DockerImageReference: "latest-ref", - Created: unversioned.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 53, 0, 0, time.UTC), Image: "latest-image", }, }, @@ -39,7 +39,7 @@ func TestSortStatusTags(t *testing.T) { Items: []TagEvent{ { DockerImageReference: "third-ref", - Created: unversioned.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), + Created: metav1.Date(2015, 9, 4, 13, 54, 0, 0, time.UTC), Image: "third-image", }, }, diff --git a/pkg/image/api/types.go b/pkg/image/api/types.go index b3e72b36599f..6273e283e9a8 100644 --- a/pkg/image/api/types.go +++ b/pkg/image/api/types.go @@ -1,14 +1,14 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // ImageList is a list of Image objects. type ImageList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []Image } @@ -56,8 +56,8 @@ const ( // Image is an immutable representation of a Docker image and metadata at a point in time. type Image struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // The string that can be used to pull this image. DockerImageReference string @@ -100,8 +100,8 @@ const ( // Mandatory fields should be parsed by clients doing image verification. The others are parsed from // signature's content by the server. They serve just an informative purpose. type ImageSignature struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Required: Describes a type of stored blob. Type string @@ -119,7 +119,7 @@ type ImageSignature struct { // Contains claims from the signature. SignedClaims map[string]string // If specified, it is the time of signature's creation. - Created *unversioned.Time + Created *metav1.Time // If specified, it holds information about an issuer of signing certificate or key (a person or entity // who signed the signing certificate or key). IssuedBy *SignatureIssuer @@ -152,9 +152,9 @@ type SignatureCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus // Last time the condition was checked. - LastProbeTime unversioned.Time + LastProbeTime metav1.Time // Last time the condition transit from one status to another. - LastTransitionTime unversioned.Time + LastTransitionTime metav1.Time // (brief) reason for the condition's last transition. Reason string // Human readable message indicating details about last transition. @@ -186,8 +186,8 @@ type SignatureSubject struct { // ImageStreamList is a list of ImageStream objects. type ImageStreamList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []ImageStream } @@ -196,8 +196,8 @@ type ImageStreamList struct { // when images are tagged in a stream, and an optional reference to a Docker image // repository on a registry. type ImageStream struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec describes the desired state of this stream Spec ImageStreamSpec @@ -296,7 +296,7 @@ type TagEventList struct { // TagEvent is used by ImageRepositoryStatus to keep a historical record of images associated with a tag. type TagEvent struct { // When the TagEvent was created - Created unversioned.Time + Created metav1.Time // The string that can be used to pull this image DockerImageReference string // The image @@ -320,7 +320,7 @@ type TagEventCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus // LastTransitionTIme is the time the condition transitioned from one status to another. - LastTransitionTime unversioned.Time + LastTransitionTime metav1.Time // Reason is a brief machine readable explanation for the condition's last transition. Reason string // Message is a human readable description of the details about last transition, complementing reason. @@ -335,8 +335,8 @@ type TagEventCondition struct { // ImageStreamMapping represents a mapping from a single tag to a Docker image as // well as the reference to the Docker image repository the image came from. type ImageStreamMapping struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // The Docker image repository the specified image is located in // DEPRECATED: remove once v1beta1 support is dropped @@ -350,8 +350,8 @@ type ImageStreamMapping struct { // ImageStreamTag has a .Name in the format :. type ImageStreamTag struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Tag is the spec tag associated with this image stream tag, and it may be null // if only pushes have occurred to this image stream. @@ -372,16 +372,16 @@ type ImageStreamTag struct { // ImageStreamTagList is a list of ImageStreamTag objects. type ImageStreamTagList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []ImageStreamTag } // ImageStreamImage represents an Image that is retrieved by image name from an ImageStream. type ImageStreamImage struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // The Image associated with the ImageStream and image name. Image Image @@ -399,10 +399,10 @@ type DockerImageReference struct { // ImageStreamImport allows a caller to request information about a set of images for possible // import into an image stream, or actually tag the images into the image stream. type ImageStreamImport struct { - unversioned.TypeMeta + metav1.TypeMeta // ObjectMeta must identify the name of the image stream to create or update. If resourceVersion // or UID are set, they must match the image stream that will be loaded from the server. - kapi.ObjectMeta + metav1.ObjectMeta // Spec is the set of items desired to be imported Spec ImageStreamImportSpec @@ -445,7 +445,7 @@ type RepositoryImportSpec struct { // RepositoryImportStatus describes the outcome of the repository import type RepositoryImportStatus struct { // Status reflects whether any failure occurred during import - Status unversioned.Status + Status metav1.Status // Images is the list of imported images Images []ImageImportStatus // AdditionalTags are tags that exist in the repository but were not imported because @@ -466,6 +466,6 @@ type ImageImportSpec struct { // ImageImportStatus describes the result of an image import. type ImageImportStatus struct { Tag string - Status unversioned.Status + Status metav1.Status Image *Image } diff --git a/pkg/image/api/v1/conversion.go b/pkg/image/api/v1/conversion.go index 557c9defd509..a8f0e8ba47fa 100644 --- a/pkg/image/api/v1/conversion.go +++ b/pkg/image/api/v1/conversion.go @@ -4,10 +4,10 @@ import ( "sort" "strings" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" newer "github.com/openshift/origin/pkg/image/api" @@ -32,7 +32,7 @@ func Convert_api_Image_To_v1_Image(in *newer.Image, out *Image, s conversion.Sco gvString = "/" + gvString } - version, err := unversioned.ParseGroupVersion(gvString) + version, err := schema.ParseGroupVersion(gvString) if err != nil { return err } @@ -93,7 +93,7 @@ func Convert_v1_Image_To_api_Image(in *Image, out *newer.Image, s conversion.Sco } if len(in.DockerImageMetadata.Raw) > 0 { // TODO: add a way to default the expected kind and version of an object if not set - obj, err := api.Scheme.New(unversioned.GroupVersionKind{Version: version, Kind: "DockerImage"}) + obj, err := api.Scheme.New(schema.GroupVersionKind{Version: version, Kind: "DockerImage"}) if err != nil { return err } diff --git a/pkg/image/api/v1/conversion_test.go b/pkg/image/api/v1/conversion_test.go index ea919c1aef96..feb8165410cd 100644 --- a/pkg/image/api/v1/conversion_test.go +++ b/pkg/image/api/v1/conversion_test.go @@ -4,9 +4,10 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" newer "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/v1" @@ -22,7 +23,7 @@ func TestRoundTripVersionedObject(t *testing.T) { }, } i := &newer.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, DockerImageLayers: []newer.ImageLayer{{Name: "foo", LayerSize: 10}}, DockerImageMetadata: *d, diff --git a/pkg/image/api/v1/defaults.go b/pkg/image/api/v1/defaults.go index 3f957bc051b5..1bd77295d8c1 100644 --- a/pkg/image/api/v1/defaults.go +++ b/pkg/image/api/v1/defaults.go @@ -2,8 +2,8 @@ package v1 import ( newer "github.com/openshift/origin/pkg/image/api" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" ) func SetDefaults_ImageImportSpec(obj *ImageImportSpec) { diff --git a/pkg/image/api/v1/register.go b/pkg/image/api/v1/register.go index c1128f7c396e..e391f2e44be5 100644 --- a/pkg/image/api/v1/register.go +++ b/pkg/image/api/v1/register.go @@ -1,10 +1,10 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/watch/versioned" "github.com/openshift/origin/pkg/image/api/docker10" @@ -17,8 +17,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs, docker10.AddToSchemeInCoreGroup, dockerpre012.AddToSchemeInCoreGroup) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -61,11 +61,11 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, &kapiv1.SecretList{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/image/api/v1/types.go b/pkg/image/api/v1/types.go index 5f143c537ae1..81aa38b522a9 100644 --- a/pkg/image/api/v1/types.go +++ b/pkg/image/api/v1/types.go @@ -1,16 +1,16 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" ) // ImageList is a list of Image objects. type ImageList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of images Items []Image `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -21,9 +21,9 @@ type ImageList struct { // Image is an immutable representation of a Docker image and metadata at a point in time. type Image struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // DockerImageReference is the string that can be used to pull this image. DockerImageReference string `json:"dockerImageReference,omitempty" protobuf:"bytes,2,opt,name=dockerImageReference"` @@ -61,9 +61,9 @@ type ImageLayer struct { // Mandatory fields should be parsed by clients doing image verification. The others are parsed from // signature's content by the server. They serve just an informative purpose. type ImageSignature struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Required: Describes a type of stored blob. Type string `json:"type" protobuf:"bytes,2,opt,name=type"` @@ -81,7 +81,7 @@ type ImageSignature struct { // Contains claims from the signature. SignedClaims map[string]string `json:"signedClaims,omitempty" protobuf:"bytes,6,rep,name=signedClaims"` // If specified, it is the time of signature's creation. - Created *unversioned.Time `json:"created,omitempty" protobuf:"bytes,7,opt,name=created"` + Created *metav1.Time `json:"created,omitempty" protobuf:"bytes,7,opt,name=created"` // If specified, it holds information about an issuer of signing certificate or key (a person or entity // who signed the signing certificate or key). IssuedBy *SignatureIssuer `json:"issuedBy,omitempty" protobuf:"bytes,8,opt,name=issuedBy"` @@ -100,9 +100,9 @@ type SignatureCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` // Last time the condition was checked. - LastProbeTime unversioned.Time `json:"lastProbeTime,omitempty" protobuf:"bytes,3,opt,name=lastProbeTime"` + LastProbeTime metav1.Time `json:"lastProbeTime,omitempty" protobuf:"bytes,3,opt,name=lastProbeTime"` // Last time the condition transit from one status to another. - LastTransitionTime unversioned.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` // (brief) reason for the condition's last transition. Reason string `json:"reason,omitempty" protobuf:"bytes,5,opt,name=reason"` // Human readable message indicating details about last transition. @@ -134,9 +134,9 @@ type SignatureSubject struct { // ImageStreamList is a list of ImageStream objects. type ImageStreamList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of imageStreams Items []ImageStream `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -146,9 +146,9 @@ type ImageStreamList struct { // when images are tagged in a stream, and an optional reference to a Docker image // repository on a registry. type ImageStream struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec describes the desired state of this stream Spec ImageStreamSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -243,7 +243,7 @@ type NamedTagEventList struct { // TagEvent is used by ImageStreamStatus to keep a historical record of images associated with a tag. type TagEvent struct { // Created holds the time the TagEvent was created - Created unversioned.Time `json:"created" protobuf:"bytes,1,opt,name=created"` + Created metav1.Time `json:"created" protobuf:"bytes,1,opt,name=created"` // DockerImageReference is the string that can be used to pull this image DockerImageReference string `json:"dockerImageReference" protobuf:"bytes,2,opt,name=dockerImageReference"` // Image is the image @@ -267,7 +267,7 @@ type TagEventCondition struct { // Status of the condition, one of True, False, Unknown. Status kapi.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` // LastTransitionTIme is the time the condition transitioned from one status to another. - LastTransitionTime unversioned.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` // Reason is a brief machine readable explanation for the condition's last transition. Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` // Message is a human readable description of the details about last transition, complementing reason. @@ -279,9 +279,9 @@ type TagEventCondition struct { // ImageStreamMapping represents a mapping from a single tag to a Docker image as // well as the reference to the Docker image stream the image came from. type ImageStreamMapping struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Image is a Docker image. Image Image `json:"image" protobuf:"bytes,2,opt,name=image"` @@ -291,9 +291,9 @@ type ImageStreamMapping struct { // ImageStreamTag represents an Image that is retrieved by tag name from an ImageStream. type ImageStreamTag struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Tag is the spec tag associated with this image stream tag, and it may be null // if only pushes have occurred to this image stream. @@ -314,9 +314,9 @@ type ImageStreamTag struct { // ImageStreamTagList is a list of ImageStreamTag objects. type ImageStreamTagList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of image stream tags Items []ImageStreamTag `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -324,9 +324,9 @@ type ImageStreamTagList struct { // ImageStreamImage represents an Image that is retrieved by image name from an ImageStream. type ImageStreamImage struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Image associated with the ImageStream and image name. Image Image `json:"image" protobuf:"bytes,2,opt,name=image"` @@ -355,9 +355,9 @@ type DockerImageReference struct { // (for instance, to generate an application from it). Clients that know the desired image can continue // to create spec.tags directly into their image streams. type ImageStreamImport struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec is a description of the images that the user wishes to import Spec ImageStreamImportSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -403,7 +403,7 @@ type RepositoryImportSpec struct { // RepositoryImportStatus describes the result of an image repository import type RepositoryImportStatus struct { // Status reflects whether any failure occurred during import - Status unversioned.Status `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"` + Status metav1.Status `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"` // Images is a list of images successfully retrieved by the import of the repository. Images []ImageImportStatus `json:"images,omitempty" protobuf:"bytes,2,rep,name=images"` // AdditionalTags are tags that exist in the repository but were not imported because @@ -429,7 +429,7 @@ type ImageImportSpec struct { // ImageImportStatus describes the result of an image import. type ImageImportStatus struct { // Status is the status of the image import, including errors encountered while retrieving the image - Status unversioned.Status `json:"status" protobuf:"bytes,1,opt,name=status"` + Status metav1.Status `json:"status" protobuf:"bytes,1,opt,name=status"` // Image is the metadata of that image, if the image was located Image *Image `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"` // Tag is the tag this image was located under, if any diff --git a/pkg/image/api/v1/zz_generated.conversion.go b/pkg/image/api/v1/zz_generated.conversion.go index 076882337d33..a18385c4443e 100644 --- a/pkg/image/api/v1/zz_generated.conversion.go +++ b/pkg/image/api/v1/zz_generated.conversion.go @@ -5,13 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/image/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { @@ -330,7 +330,7 @@ func autoConvert_v1_ImageSignature_To_api_ImageSignature(in *ImageSignature, out out.Conditions = *(*[]api.SignatureCondition)(unsafe.Pointer(&in.Conditions)) out.ImageIdentity = in.ImageIdentity out.SignedClaims = *(*map[string]string)(unsafe.Pointer(&in.SignedClaims)) - out.Created = (*unversioned.Time)(unsafe.Pointer(in.Created)) + out.Created = (*metav1.Time)(unsafe.Pointer(in.Created)) out.IssuedBy = (*api.SignatureIssuer)(unsafe.Pointer(in.IssuedBy)) out.IssuedTo = (*api.SignatureSubject)(unsafe.Pointer(in.IssuedTo)) return nil @@ -349,7 +349,7 @@ func autoConvert_api_ImageSignature_To_v1_ImageSignature(in *api.ImageSignature, out.Conditions = *(*[]SignatureCondition)(unsafe.Pointer(&in.Conditions)) out.ImageIdentity = in.ImageIdentity out.SignedClaims = *(*map[string]string)(unsafe.Pointer(&in.SignedClaims)) - out.Created = (*unversioned.Time)(unsafe.Pointer(in.Created)) + out.Created = (*metav1.Time)(unsafe.Pointer(in.Created)) out.IssuedBy = (*SignatureIssuer)(unsafe.Pointer(in.IssuedBy)) out.IssuedTo = (*SignatureSubject)(unsafe.Pointer(in.IssuedTo)) return nil diff --git a/pkg/image/api/v1/zz_generated.deepcopy.go b/pkg/image/api/v1/zz_generated.deepcopy.go index 307de27d88af..28a7110e82e6 100644 --- a/pkg/image/api/v1/zz_generated.deepcopy.go +++ b/pkg/image/api/v1/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -142,7 +142,7 @@ func DeepCopy_v1_ImageImportStatus(in interface{}, out interface{}, c *conversio { in := in.(*ImageImportStatus) out := out.(*ImageImportStatus) - if err := unversioned.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { + if err := metav1.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { return err } if in.Image != nil { @@ -230,7 +230,7 @@ func DeepCopy_v1_ImageSignature(in interface{}, out interface{}, c *conversion.C } if in.Created != nil { in, out := &in.Created, &out.Created - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.Created = nil @@ -549,7 +549,7 @@ func DeepCopy_v1_RepositoryImportStatus(in interface{}, out interface{}, c *conv { in := in.(*RepositoryImportStatus) out := out.(*RepositoryImportStatus) - if err := unversioned.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { + if err := metav1.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { return err } if in.Images != nil { diff --git a/pkg/image/api/v1/zz_generated.defaults.go b/pkg/image/api/v1/zz_generated.defaults.go index 0af0ec286cbb..d821ae5cd637 100644 --- a/pkg/image/api/v1/zz_generated.defaults.go +++ b/pkg/image/api/v1/zz_generated.defaults.go @@ -5,7 +5,7 @@ package v1 import ( - runtime "k8s.io/kubernetes/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/image/api/validation/validation.go b/pkg/image/api/validation/validation.go index ac965e284429..64186ed12510 100644 --- a/pkg/image/api/validation/validation.go +++ b/pkg/image/api/validation/validation.go @@ -9,11 +9,11 @@ import ( "github.com/docker/distribution/reference" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/validation/field" serverapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/image/api" diff --git a/pkg/image/api/validation/validation_test.go b/pkg/image/api/validation/validation_test.go index 8e712d6129da..b70363949476 100644 --- a/pkg/image/api/validation/validation_test.go +++ b/pkg/image/api/validation/validation_test.go @@ -6,16 +6,17 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/image/api" ) func TestValidateImageOK(t *testing.T) { errs := ValidateImage(&api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, DockerImageReference: "openshift/ruby-19-centos", }) if len(errs) > 0 { @@ -35,17 +36,17 @@ func TestValidateImageMissingFields(t *testing.T) { "metadata.name", }, "no slash in Name": { - api.Image{ObjectMeta: kapi.ObjectMeta{Name: "foo/bar"}}, + api.Image{ObjectMeta: metav1.ObjectMeta{Name: "foo/bar"}}, field.ErrorTypeInvalid, "metadata.name", }, "no percent in Name": { - api.Image{ObjectMeta: kapi.ObjectMeta{Name: "foo%%bar"}}, + api.Image{ObjectMeta: metav1.ObjectMeta{Name: "foo%%bar"}}, field.ErrorTypeInvalid, "metadata.name", }, "missing DockerImageReference": { - api.Image{ObjectMeta: kapi.ObjectMeta{Name: "foo"}}, + api.Image{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, field.ErrorTypeRequired, "dockerImageReference", }, @@ -79,7 +80,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "valid", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "imgname@valid", }, Type: "valid", @@ -91,7 +92,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "valid trusted", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "imgname@trusted", }, Type: "valid", @@ -114,7 +115,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "valid untrusted", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "imgname@untrusted", }, Type: "valid", @@ -142,7 +143,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "invalid name and missing type", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{Name: "notype"}, + ObjectMeta: metav1.ObjectMeta{Name: "notype"}, Content: []byte("blob"), }, expected: field.ErrorList{ @@ -154,7 +155,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "missing content", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{Name: "img@nocontent"}, + ObjectMeta: metav1.ObjectMeta{Name: "img@nocontent"}, Type: "invalid", }, expected: field.ErrorList{ @@ -165,7 +166,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "missing ForImage condition", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{Name: "img@noforimage"}, + ObjectMeta: metav1.ObjectMeta{Name: "img@noforimage"}, Type: "invalid", Content: []byte("blob"), Conditions: []api.SignatureCondition{ @@ -189,7 +190,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "adding labels and anotations", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "img@annotated", Annotations: map[string]string{"key": "value"}, Labels: map[string]string{"label": "value"}, @@ -206,7 +207,7 @@ func TestValidateImageSignature(t *testing.T) { { name: "filled metadata for unknown signature state", signature: api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{Name: "img@metadatafilled"}, + ObjectMeta: metav1.ObjectMeta{Name: "img@metadatafilled"}, Type: "invalid", Content: []byte("blob"), Conditions: []api.SignatureCondition{ @@ -252,12 +253,12 @@ func TestValidateImageStreamMappingNotOK(t *testing.T) { }{ "missing DockerImageRepository": { api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, Tag: api.DefaultImageTag, Image: api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "default", }, @@ -269,12 +270,12 @@ func TestValidateImageStreamMappingNotOK(t *testing.T) { }, "missing Name": { api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, Tag: api.DefaultImageTag, Image: api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "default", }, @@ -286,12 +287,12 @@ func TestValidateImageStreamMappingNotOK(t *testing.T) { }, "missing Tag": { api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, DockerImageRepository: "openshift/ruby-19-centos", Image: api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "default", }, @@ -303,7 +304,7 @@ func TestValidateImageStreamMappingNotOK(t *testing.T) { }, "missing image name": { api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, DockerImageRepository: "openshift/ruby-19-centos", @@ -317,13 +318,13 @@ func TestValidateImageStreamMappingNotOK(t *testing.T) { }, "invalid repository pull spec": { api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, DockerImageRepository: "registry/extra/openshift//ruby-19-centos", Tag: api.DefaultImageTag, Image: api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "default", }, @@ -581,7 +582,7 @@ func TestValidateImageStream(t *testing.T) { for name, test := range tests { stream := api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: test.namespace, Name: test.name, }, @@ -603,7 +604,7 @@ func TestValidateImageStream(t *testing.T) { func TestValidateISTUpdate(t *testing.T) { old := &api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, Tag: &api.TagReference{ From: &kapi.ObjectReference{Kind: "DockerImage", Name: "some/other:system"}, }, @@ -611,7 +612,7 @@ func TestValidateISTUpdate(t *testing.T) { errs := ValidateImageStreamTagUpdate( &api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two", "three": "four"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two", "three": "four"}}, }, old, ) @@ -626,14 +627,14 @@ func TestValidateISTUpdate(t *testing.T) { }{ "changedLabel": { A: api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}, Labels: map[string]string{"a": "b"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}, Labels: map[string]string{"a": "b"}}, }, T: field.ErrorTypeInvalid, F: "metadata", }, "mismatchedAnnotations": { A: api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, Tag: &api.TagReference{ From: &kapi.ObjectReference{Kind: "DockerImage", Name: "some/other:system"}, Annotations: map[string]string{"one": "three"}, @@ -645,7 +646,7 @@ func TestValidateISTUpdate(t *testing.T) { }, "tagToNameRequired": { A: api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, Tag: &api.TagReference{ From: &kapi.ObjectReference{Kind: "DockerImage", Name: ""}, ReferencePolicy: api.TagReferencePolicy{Type: api.SourceTagReferencePolicy}, @@ -656,7 +657,7 @@ func TestValidateISTUpdate(t *testing.T) { }, "tagToKindRequired": { A: api.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: kapi.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo:bar", ResourceVersion: "1", Annotations: map[string]string{"one": "two"}}, Tag: &api.TagReference{ From: &kapi.ObjectReference{Kind: "", Name: "foo/bar:biz"}, ReferencePolicy: api.TagReferencePolicy{Type: api.SourceTagReferencePolicy}, @@ -691,7 +692,7 @@ func TestValidateImageStreamImport(t *testing.T) { missingNameErr := field.Required(field.NewPath("metadata", "name"), "") missingNameErr.Detail = "name or generateName is required" - validMeta := kapi.ObjectMeta{Namespace: "foo", Name: "foo"} + validMeta := metav1.ObjectMeta{Namespace: "foo", Name: "foo"} validSpec := api.ImageStreamImportSpec{Repository: &api.RepositoryImportSpec{From: kapi.ObjectReference{Kind: "DockerImage", Name: "redis"}}} repoFn := func(spec string) api.ImageStreamImportSpec { return api.ImageStreamImportSpec{Repository: &api.RepositoryImportSpec{From: kapi.ObjectReference{Kind: "DockerImage", Name: spec}}} @@ -708,35 +709,35 @@ func TestValidateImageStreamImport(t *testing.T) { statusTags map[string]api.TagEventList }{ "missing name": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Namespace: "foo"}, Spec: validSpec}, expected: field.ErrorList{missingNameErr}, }, "no slash in Name": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "foo/bar"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "foo/bar"}, Spec: validSpec}, expected: field.ErrorList{ field.Invalid(field.NewPath("metadata", "name"), "foo/bar", `may not contain '/'`), }, }, "no percent in Name": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "foo%%bar"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "foo%%bar"}, Spec: validSpec}, expected: field.ErrorList{ field.Invalid(field.NewPath("metadata", "name"), "foo%%bar", `may not contain '%'`), }, }, "other invalid name": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "foo bar"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "foo bar"}, Spec: validSpec}, expected: field.ErrorList{ field.Invalid(field.NewPath("metadata", "name"), "foo bar", `must match "[a-z0-9]+(?:[._-][a-z0-9]+)*"`), }, }, "missing namespace": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Name: "foo"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: validSpec}, expected: field.ErrorList{ field.Required(field.NewPath("metadata", "namespace"), ""), }, }, "invalid namespace": { - isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "!$", Name: "foo"}, Spec: validSpec}, + isi: &api.ImageStreamImport{ObjectMeta: metav1.ObjectMeta{Namespace: "!$", Name: "foo"}, Spec: validSpec}, expected: field.ErrorList{ field.Invalid(field.NewPath("metadata", "namespace"), "!$", `must match the regex [a-z0-9]([-a-z0-9]*[a-z0-9])? (e.g. 'my-name' or '123-abc')`), }, diff --git a/pkg/image/api/zz_generated.deepcopy.go b/pkg/image/api/zz_generated.deepcopy.go index 2910ae62e327..27626d0a0382 100644 --- a/pkg/image/api/zz_generated.deepcopy.go +++ b/pkg/image/api/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { @@ -479,7 +479,7 @@ func DeepCopy_api_ImageImportStatus(in interface{}, out interface{}, c *conversi in := in.(*ImageImportStatus) out := out.(*ImageImportStatus) out.Tag = in.Tag - if err := unversioned.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { + if err := metav1.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { return err } if in.Image != nil { @@ -566,7 +566,7 @@ func DeepCopy_api_ImageSignature(in interface{}, out interface{}, c *conversion. } if in.Created != nil { in, out := &in.Created, &out.Created - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.Created = nil @@ -859,7 +859,7 @@ func DeepCopy_api_RepositoryImportStatus(in interface{}, out interface{}, c *con { in := in.(*RepositoryImportStatus) out := out.(*RepositoryImportStatus) - if err := unversioned.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { + if err := metav1.DeepCopy_unversioned_Status(&in.Status, &out.Status, c); err != nil { return err } if in.Images != nil { diff --git a/pkg/image/client/clientset_generated/internalclientset/clientset.go b/pkg/image/client/clientset_generated/internalclientset/clientset.go index bb8f655bde4d..647d80f74f65 100644 --- a/pkg/image/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/image/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/image/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/image/client/clientset_generated/internalclientset/fake/clientset_generated.go index f9d978a2722e..e7ddcd0a2348 100644 --- a/pkg/image/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/image/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/image/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index 8ae55c0ac57e..06b74c896953 100644 --- a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { ImagesGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index e8f7736845dc..04bdd957dabd 100644 --- a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_image.go b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_image.go index f2f37a4ba176..fa14031ae61a 100644 --- a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_image.go +++ b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_image.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/image/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeImages implements ImageInterface @@ -15,7 +15,7 @@ type FakeImages struct { ns string } -var imagesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "images"} +var imagesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "images"} func (c *FakeImages) Create(image *api.Image) (result *api.Image, err error) { obj, err := c.Fake. diff --git a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/image.go b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/image.go index 1b163b107f17..cbe1a7a100d2 100644 --- a/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/image.go +++ b/pkg/image/client/clientset_generated/internalclientset/typed/core/internalversion/image.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/image/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ImagesGetter has a method to return a ImageInterface. diff --git a/pkg/image/client/clientset_generated/release_v1_5/clientset.go b/pkg/image/client/clientset_generated/release_v1_5/clientset.go index 7ad2edd24bb9..082c2cbc4a93 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/image/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/image/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/image/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 5d3c5a62a605..cb3997f6e637 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/image/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/image/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index ae0bad45185f..d1e8109f8910 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { ImagesGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 096622255166..b81f19a7b82a 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_image.go b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_image.go index 7112ab1a08ab..0f74d681157e 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_image.go +++ b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_image.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/image/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeImages implements ImageInterface @@ -16,7 +16,7 @@ type FakeImages struct { ns string } -var imagesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "images"} +var imagesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "images"} func (c *FakeImages) Create(image *v1.Image) (result *v1.Image, err error) { obj, err := c.Fake. diff --git a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/image.go b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/image.go index d20dac74d5a8..6b47c31b7776 100644 --- a/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/image.go +++ b/pkg/image/client/clientset_generated/release_v1_5/typed/core/v1/image.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/image/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ImagesGetter has a method to return a ImageInterface. diff --git a/pkg/image/controller/controller.go b/pkg/image/controller/controller.go index 9a48fc23e3fd..0ceb60cb394c 100644 --- a/pkg/image/controller/controller.go +++ b/pkg/image/controller/controller.go @@ -5,8 +5,9 @@ import ( "github.com/golang/glog" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/image/api" @@ -133,7 +134,7 @@ func (c *ImportController) Next(stream *api.ImageStream, notifier Notifier) erro } isi := &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: stream.Name, Namespace: stream.Namespace, ResourceVersion: stream.ResourceVersion, @@ -172,7 +173,7 @@ func (c *ImportController) Next(stream *api.ImageStream, notifier Notifier) erro } func (c *ImportController) NextTimedByName(namespace, name string) error { - stream, err := c.streams.ImageStreams(namespace).Get(name) + stream, err := c.streams.ImageStreams(namespace).Get(name, metav1.GetOptions{}) if err != nil { if apierrs.IsNotFound(err) { return ErrNotImportable diff --git a/pkg/image/controller/controller_test.go b/pkg/image/controller/controller_test.go index b316a0afc0fc..87a379e5fda0 100644 --- a/pkg/image/controller/controller_test.go +++ b/pkg/image/controller/controller_test.go @@ -5,12 +5,12 @@ import ( "testing" "time" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" client "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/dockerregistry" @@ -90,8 +90,8 @@ func TestControllerStart(t *testing.T) { }{ { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ - Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: unversioned.Now().UTC().Format(time.RFC3339)}, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: metav1.Now().UTC().Format(time.RFC3339)}, Name: "test", Namespace: "other", }, @@ -99,8 +99,8 @@ func TestControllerStart(t *testing.T) { }, { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ - Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: unversioned.Now().UTC().Format(time.RFC3339)}, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: metav1.Now().UTC().Format(time.RFC3339)}, Name: "test", Namespace: "other", }, @@ -111,7 +111,7 @@ func TestControllerStart(t *testing.T) { }, { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: "a random error"}, Name: "test", Namespace: "other", @@ -125,7 +125,7 @@ func TestControllerStart(t *testing.T) { // references are ignored { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamSpec{ Tags: map[string]api.TagReference{ "latest": { @@ -138,7 +138,7 @@ func TestControllerStart(t *testing.T) { }, { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamSpec{ Tags: map[string]api.TagReference{ "latest": { @@ -154,7 +154,7 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamSpec{ Tags: map[string]api.TagReference{ "latest": { @@ -168,7 +168,7 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamSpec{ Tags: map[string]api.TagReference{ "latest": { @@ -183,7 +183,7 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamSpec{ Tags: map[string]api.TagReference{ "latest": { @@ -200,8 +200,8 @@ func TestControllerStart(t *testing.T) { // spec tag with generation with status condition error and equal generation will not be imported { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ - Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: unversioned.Now().UTC().Format(time.RFC3339)}, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: metav1.Now().UTC().Format(time.RFC3339)}, Name: "test", Namespace: "other", }, @@ -228,8 +228,8 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ - Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: unversioned.Now().UTC().Format(time.RFC3339)}, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: metav1.Now().UTC().Format(time.RFC3339)}, Name: "test", Namespace: "other", }, @@ -256,8 +256,8 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ - Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: unversioned.Now().UTC().Format(time.RFC3339)}, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: metav1.Now().UTC().Format(time.RFC3339)}, Name: "test", Namespace: "other", }, @@ -278,7 +278,7 @@ func TestControllerStart(t *testing.T) { { run: true, stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "other", }, @@ -333,7 +333,7 @@ func TestScheduledImport(t *testing.T) { one := int64(1) stream := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "other", UID: "1", ResourceVersion: "1", Annotations: map[string]string{api.DockerImageRepositoryCheckAnnotation: "done"}, Generation: 1, @@ -354,14 +354,14 @@ func TestScheduledImport(t *testing.T) { }, } successfulImport := &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{Name: "test", Namespace: "other"}, + ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "other"}, Spec: api.ImageStreamImportSpec{ Import: true, Images: []api.ImageImportSpec{{From: kapi.ObjectReference{Kind: "DockerImage", Name: "mysql:latest"}}}, }, Status: api.ImageStreamImportStatus{ Images: []api.ImageImportStatus{{ - Status: unversioned.Status{Status: unversioned.StatusSuccess}, + Status: metav1.Status{Status: metav1.StatusSuccess}, Image: &api.Image{}, }}, }, @@ -396,7 +396,7 @@ func TestScheduledImport(t *testing.T) { // encountering a not found error for image streams should drop the controller fake = &client.Fake{} - fake.AddReactor("*", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fake.AddReactor("*", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, kerrors.NewNotFound(api.Resource("imagestreams"), "test") }) b.controller.streams = fake diff --git a/pkg/image/controller/factory.go b/pkg/image/controller/factory.go index 7b8f0ee874aa..8782ee98ad90 100644 --- a/pkg/image/controller/factory.go +++ b/pkg/image/controller/factory.go @@ -5,12 +5,13 @@ import ( "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/controller" @@ -29,11 +30,11 @@ type ImportControllerFactory struct { // Create creates an ImportController. func (f *ImportControllerFactory) Create() (controller.RunnableController, controller.StoppableController) { lw := &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return f.Client.ImageStreams(kapi.NamespaceAll).List(options) + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { + return f.Client.ImageStreams(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return f.Client.ImageStreams(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { + return f.Client.ImageStreams(metav1.NamespaceAll).Watch(options) }, } q := cache.NewResyncableFIFO(cache.MetaNamespaceKeyFunc) diff --git a/pkg/image/graph/nodes/nodes.go b/pkg/image/graph/nodes/nodes.go index c78dca0a5651..e2e3381b5471 100644 --- a/pkg/image/graph/nodes/nodes.go +++ b/pkg/image/graph/nodes/nodes.go @@ -3,7 +3,7 @@ package nodes import ( "github.com/gonum/graph" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" osgraph "github.com/openshift/origin/pkg/api/graph" imageapi "github.com/openshift/origin/pkg/image/api" @@ -37,7 +37,7 @@ func EnsureAllImageStreamTagNodes(g osgraph.MutableUniqueGraph, is *imageapi.Ima } func FindImage(g osgraph.MutableUniqueGraph, imageName string) graph.Node { - return g.Find(ImageNodeName(&imageapi.Image{ObjectMeta: kapi.ObjectMeta{Name: imageName}})) + return g.Find(ImageNodeName(&imageapi.Image{ObjectMeta: metav1.ObjectMeta{Name: imageName}})) } // EnsureDockerRepositoryNode adds the named Docker repository tag reference to the graph if it does @@ -65,7 +65,7 @@ func EnsureDockerRepositoryNode(g osgraph.MutableUniqueGraph, name, tag string) // based on a full IST object. This can be used to properly initialize the graph without having to retrieve all ISTs func MakeImageStreamTagObjectMeta(namespace, name, tag string) *imageapi.ImageStreamTag { return &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: imageapi.JoinImageStreamTag(name, tag), }, @@ -76,7 +76,7 @@ func MakeImageStreamTagObjectMeta(namespace, name, tag string) *imageapi.ImageSt // based on a full IST object. This can be used to properly initialize the graph without having to retrieve all ISTs func MakeImageStreamTagObjectMeta2(namespace, name string) *imageapi.ImageStreamTag { return &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -107,7 +107,7 @@ func FindOrCreateSyntheticImageStreamTagNode(g osgraph.MutableUniqueGraph, ist * // based on a full ISI object. This can be used to properly initialize the graph without having to retrieve all ISIs func MakeImageStreamImageObjectMeta(namespace, name string) *imageapi.ImageStreamImage { return &imageapi.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -118,7 +118,7 @@ func MakeImageStreamImageObjectMeta(namespace, name string) *imageapi.ImageStrea // does not already exist. func EnsureImageStreamImageNode(g osgraph.MutableUniqueGraph, namespace, name string) graph.Node { isi := &imageapi.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, diff --git a/pkg/image/importer/client.go b/pkg/image/importer/client.go index a7a572795d11..8ac7f3c8b9e7 100644 --- a/pkg/image/importer/client.go +++ b/pkg/image/importer/client.go @@ -23,6 +23,7 @@ import ( "github.com/docker/distribution/registry/client/auth" "github.com/docker/distribution/registry/client/transport" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/openshift/origin/pkg/dockerregistry" @@ -177,7 +178,7 @@ func schema1ToImage(manifest *schema1.SignedManifest, d digest.Digest) (*api.Ima dockerImage.ID = digest.FromBytes(manifest.Canonical).String() } image := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dockerImage.ID, }, DockerImageMetadata: *dockerImage, @@ -206,7 +207,7 @@ func schema2ToImage(manifest *schema2.DeserializedManifest, imageConfig []byte, } image := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dockerImage.ID, }, DockerImageMetadata: *dockerImage, @@ -226,7 +227,7 @@ func schema0ToImage(dockerImage *dockerregistry.Image, id string) (*api.Image, e } image := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: dockerImage.ID, }, DockerImageMetadata: baseImage, diff --git a/pkg/image/importer/credentials_test.go b/pkg/image/importer/credentials_test.go index 2cb6635dbf53..d71c2cfc671d 100644 --- a/pkg/image/importer/credentials_test.go +++ b/pkg/image/importer/credentials_test.go @@ -6,9 +6,9 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/credentialprovider" - "k8s.io/kubernetes/pkg/runtime" _ "github.com/openshift/origin/pkg/api/install" ) diff --git a/pkg/image/importer/importer.go b/pkg/image/importer/importer.go index c0fd2b8bd9ff..771109e33524 100644 --- a/pkg/image/importer/importer.go +++ b/pkg/image/importer/importer.go @@ -16,11 +16,11 @@ import ( "github.com/docker/distribution/registry/api/errcode" "github.com/docker/distribution/registry/api/v2" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/flowcontrol" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/client-go/util/flowcontrol" "github.com/openshift/origin/pkg/dockerregistry" "github.com/openshift/origin/pkg/image/api" @@ -185,7 +185,7 @@ func (i *ImageStreamImporter) importImages(ctx gocontext.Context, retriever Repo copied.DockerImageReference = ref.MostSpecific().Exact() image.Tag = tag.Name image.Image = &copied - image.Status.Status = unversioned.StatusSuccess + image.Status.Status = metav1.StatusSuccess } } for _, digest := range repo.Digests { @@ -205,7 +205,7 @@ func (i *ImageStreamImporter) importImages(ctx gocontext.Context, retriever Repo ref.Tag, ref.ID = "", copied.Name copied.DockerImageReference = ref.MostSpecific().Exact() image.Image = &copied - image.Status.Status = unversioned.StatusSuccess + image.Status.Status = metav1.StatusSuccess } } } @@ -278,7 +278,7 @@ func (i *ImageStreamImporter) importFromRepository(ctx gocontext.Context, retrie status.AdditionalTags = additional failures := 0 - status.Status.Status = unversioned.StatusSuccess + status.Status.Status = metav1.StatusSuccess status.Images = make([]api.ImageImportStatus, len(repo.Tags)) for i, tag := range repo.Tags { status.Images[i].Tag = tag.Name @@ -287,7 +287,7 @@ func (i *ImageStreamImporter) importFromRepository(ctx gocontext.Context, retrie status.Images[i].Status = imageImportStatus(tag.Err, "", "repository") continue } - status.Images[i].Status.Status = unversioned.StatusSuccess + status.Images[i].Status.Status = metav1.StatusSuccess copied := *tag.Image ref.Tag, ref.ID = tag.Name, copied.Name @@ -295,8 +295,8 @@ func (i *ImageStreamImporter) importFromRepository(ctx gocontext.Context, retrie status.Images[i].Image = &copied } if failures > 0 { - status.Status.Status = unversioned.StatusFailure - status.Status.Reason = unversioned.StatusReason("ImportFailed") + status.Status.Status = metav1.StatusFailure + status.Status.Reason = metav1.StatusReason("ImportFailed") switch failures { case 1: status.Status.Message = "one of the images from this repository failed to import" @@ -701,7 +701,7 @@ type manifestKey struct { value string } -func imageImportStatus(err error, kind, position string) unversioned.Status { +func imageImportStatus(err error, kind, position string) metav1.Status { switch t := err.(type) { case kapierrors.APIStatus: return t.Status() @@ -717,6 +717,6 @@ func setImageImportStatus(images *api.ImageStreamImport, i int, tag string, err images.Status.Images[i].Status = imageImportStatus(err, "", "") } -func invalidStatus(position string, errs ...*field.Error) unversioned.Status { +func invalidStatus(position string, errs ...*field.Error) metav1.Status { return kapierrors.NewInvalid(api.LegacyKind(""), position, errs).ErrStatus } diff --git a/pkg/image/importer/importer_test.go b/pkg/image/importer/importer_test.go index 1c9697e5c24c..b6efd482f811 100644 --- a/pkg/image/importer/importer_test.go +++ b/pkg/image/importer/importer_test.go @@ -12,8 +12,8 @@ import ( "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "github.com/openshift/origin/pkg/image/api" ) @@ -27,8 +27,8 @@ func TestImportNothing(t *testing.T) { } } -func expectStatusError(status unversioned.Status, message string) bool { - if status.Status != unversioned.StatusFailure || status.Message != message { +func expectStatusError(status metav1.Status, message string) bool { + if status.Status != metav1.StatusFailure || status.Message != message { return false } return true @@ -135,7 +135,7 @@ func TestImport(t *testing.T) { if len(isi.Status.Repository.Images) != 0 { t.Errorf("unexpected number of images: %#v", isi.Status.Repository.Images) } - if isi.Status.Repository.Status.Status != unversioned.StatusFailure || isi.Status.Repository.Status.Message != "Internal error occurred: error" { + if isi.Status.Repository.Status.Status != metav1.StatusFailure || isi.Status.Repository.Status.Message != "Internal error occurred: error" { t.Errorf("unexpected status: %#v", isi.Status.Repository.Status) } }, @@ -156,7 +156,7 @@ func TestImport(t *testing.T) { } expectedTags := []string{"", "tag"} for i, image := range isi.Status.Images { - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Errorf("unexpected status %d: %#v", i, image.Status) } // the image name is always the sha256, and size is calculated @@ -196,7 +196,7 @@ func TestImport(t *testing.T) { t.Errorf("unexpected number of images: %#v", isi.Status.Repository.Images) } image := isi.Status.Images[0] - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Errorf("unexpected status: %#v", image.Status) } // the image name is always the sha256, and size is calculated @@ -247,7 +247,7 @@ func TestImport(t *testing.T) { } expectedTags := []string{"3.1", "3", "abc", "other", "v1"} for i, image := range isi.Status.Repository.Images { - if image.Status.Status != unversioned.StatusFailure || image.Status.Message != "Internal error occurred: no such manifest tag" { + if image.Status.Status != metav1.StatusFailure || image.Status.Message != "Internal error occurred: no such manifest tag" { t.Errorf("unexpected status %d: %#v", i, isi.Status.Repository.Images) } if image.Tag != expectedTags[i] { diff --git a/pkg/image/prune/prune.go b/pkg/image/prune/prune.go index ae23fd211182..ca192992cdd4 100644 --- a/pkg/image/prune/prune.go +++ b/pkg/image/prune/prune.go @@ -12,11 +12,11 @@ import ( "github.com/golang/glog" gonum "github.com/gonum/graph" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -321,7 +321,7 @@ func addImagesToGraph(g graph.Graph, images *imageapi.ImageList, algorithm prune } } - age := unversioned.Now().Sub(image.CreationTimestamp.Time) + age := metav1.Now().Sub(image.CreationTimestamp.Time) if !algorithm.pruneOverSizeLimit && age < algorithm.keepYoungerThan { glog.V(4).Infof("Image %q is younger than minimum pruning age, skipping (age=%v)", image.Name, age) continue @@ -367,7 +367,7 @@ func addImageStreamsToGraph(g graph.Graph, streams *imageapi.ImageStreamList, li // use a weak reference for old image revisions by default oldImageRevisionReferenceKind := WeakReferencedImageEdgeKind - age := unversioned.Now().Sub(stream.CreationTimestamp.Time) + age := metav1.Now().Sub(stream.CreationTimestamp.Time) if !algorithm.pruneOverSizeLimit && age < algorithm.keepYoungerThan { // stream's age is below threshold - use a strong reference for old image revisions instead oldImageRevisionReferenceKind = ReferencedImageEdgeKind @@ -479,7 +479,7 @@ func addPodsToGraph(g graph.Graph, pods *kapi.PodList, algorithm pruneAlgorithm) glog.V(4).Infof("Examining pod %s/%s", pod.Namespace, pod.Name) if pod.Status.Phase != kapi.PodRunning && pod.Status.Phase != kapi.PodPending { - age := unversioned.Now().Sub(pod.CreationTimestamp.Time) + age := metav1.Now().Sub(pod.CreationTimestamp.Time) if age >= algorithm.keepYoungerThan { glog.V(4).Infof("Pod %s/%s is not running or pending and age is at least minimum pruning age - skipping", pod.Namespace, pod.Name) // not pending or running, age is at least minimum pruning age, skip diff --git a/pkg/image/prune/prune_test.go b/pkg/image/prune/prune_test.go index a6371959c830..9e0d3940a718 100644 --- a/pkg/image/prune/prune_test.go +++ b/pkg/image/prune/prune_test.go @@ -14,13 +14,13 @@ import ( "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/rest/fake" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/graph" buildapi "github.com/openshift/origin/pkg/build/api" @@ -63,7 +63,7 @@ func agedImage(id, ref string, ageInMinutes int64) imageapi.Image { image := imageWithLayers(id, ref, nil, layer1, layer2, layer3, layer4, layer5) if ageInMinutes >= 0 { - image.CreationTimestamp = unversioned.NewTime(unversioned.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) + image.CreationTimestamp = metav1.NewTime(metav1.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) } return image @@ -71,7 +71,7 @@ func agedImage(id, ref string, ageInMinutes int64) imageapi.Image { func sizedImage(id, ref string, size int64, configName *string) imageapi.Image { image := imageWithLayers(id, ref, configName, layer1, layer2, layer3, layer4, layer5) - image.CreationTimestamp = unversioned.NewTime(unversioned.Now().Add(time.Duration(-1) * time.Minute)) + image.CreationTimestamp = metav1.NewTime(metav1.Now().Add(time.Duration(-1) * time.Minute)) image.DockerImageMetadata.Size = size return image @@ -83,7 +83,7 @@ func image(id, ref string) imageapi.Image { func imageWithLayers(id, ref string, configName *string, layers ...string) imageapi.Image { image := imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: id, Annotations: map[string]string{ imageapi.ManagedByOpenShiftAnnotation: "true", @@ -132,7 +132,7 @@ func pod(namespace, name string, phase kapi.PodPhase, containerImages ...string) func agedPod(namespace, name string, phase kapi.PodPhase, ageInMinutes int64, containerImages ...string) kapi.Pod { pod := kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -143,7 +143,7 @@ func agedPod(namespace, name string, phase kapi.PodPhase, ageInMinutes int64, co } if ageInMinutes >= 0 { - pod.CreationTimestamp = unversioned.NewTime(unversioned.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) + pod.CreationTimestamp = metav1.NewTime(metav1.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) } return pod @@ -174,7 +174,7 @@ func stream(registry, namespace, name string, tags map[string]imageapi.TagEventL func agedStream(registry, namespace, name string, ageInMinutes int64, tags map[string]imageapi.TagEventList) imageapi.ImageStream { stream := imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -185,7 +185,7 @@ func agedStream(registry, namespace, name string, ageInMinutes int64, tags map[s } if ageInMinutes >= 0 { - stream.CreationTimestamp = unversioned.NewTime(unversioned.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) + stream.CreationTimestamp = metav1.NewTime(metav1.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) } return stream @@ -233,7 +233,7 @@ func rcList(rcs ...kapi.ReplicationController) kapi.ReplicationControllerList { func rc(namespace, name string, containerImages ...string) kapi.ReplicationController { return kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -253,7 +253,7 @@ func dcList(dcs ...deployapi.DeploymentConfig) deployapi.DeploymentConfigList { func dc(namespace, name string, containerImages ...string) deployapi.DeploymentConfig { return deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -273,7 +273,7 @@ func bcList(bcs ...buildapi.BuildConfig) buildapi.BuildConfigList { func bc(namespace, name, strategyType, fromKind, fromNamespace, fromName string) buildapi.BuildConfig { return buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -291,7 +291,7 @@ func buildList(builds ...buildapi.Build) buildapi.BuildList { func build(namespace, name, strategyType, fromKind, fromNamespace, fromName string) buildapi.Build { return buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, @@ -974,11 +974,11 @@ func TestImageDeleter(t *testing.T) { for name, test := range tests { imageClient := testclient.Fake{} - imageClient.AddReactor("delete", "images", func(action core.Action) (handled bool, ret runtime.Object, err error) { + imageClient.AddReactor("delete", "images", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, test.imageDeletionError }) imageDeleter := NewImageDeleter(imageClient.Images()) - err := imageDeleter.DeleteImage(&imageapi.Image{ObjectMeta: kapi.ObjectMeta{Name: "sha256:0000000000000000000000000000000000000000000000000000000000000002"}}) + err := imageDeleter.DeleteImage(&imageapi.Image{ObjectMeta: metav1.ObjectMeta{Name: "sha256:0000000000000000000000000000000000000000000000000000000000000002"}}) if test.imageDeletionError != nil { if e, a := test.imageDeletionError, err; e != a { t.Errorf("%s: err: expected %v, got %v", name, e, a) diff --git a/pkg/image/registry/image/etcd/etcd.go b/pkg/image/registry/image/etcd/etcd.go index 5174d8a98b5d..52f8d12b8bb8 100644 --- a/pkg/image/registry/image/etcd/etcd.go +++ b/pkg/image/registry/image/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/registry/image" diff --git a/pkg/image/registry/image/etcd/etcd_test.go b/pkg/image/registry/image/etcd/etcd_test.go index b682b42b07b8..5153e7c25ab6 100644 --- a/pkg/image/registry/image/etcd/etcd_test.go +++ b/pkg/image/registry/image/etcd/etcd_test.go @@ -3,13 +3,15 @@ package etcd import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/api/latest" "github.com/openshift/origin/pkg/image/api" @@ -36,7 +38,7 @@ func TestStorage(t *testing.T) { func validImage() *api.Image { return &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", GenerateName: "foo", }, @@ -107,7 +109,7 @@ func TestDelete(t *testing.T) { defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store).ClusterScope() image := validImage() - image.ObjectMeta = kapi.ObjectMeta{GenerateName: "foo"} + image.ObjectMeta = metav1.ObjectMeta{GenerateName: "foo"} test.TestDelete( validImage(), ) @@ -231,7 +233,7 @@ func TestCreateSetsMetadata(t *testing.T) { }{ { image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, DockerImageReference: "openshift/ruby-19-centos", }, }, @@ -248,7 +250,7 @@ func TestCreateSetsMetadata(t *testing.T) { return true }, image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, DockerImageReference: "openshift/ruby-19-centos", DockerImageManifest: etcdManifest, }, @@ -260,7 +262,7 @@ func TestCreateSetsMetadata(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() - obj, err := storage.Create(kapi.NewDefaultContext(), test.image) + obj, err := storage.Create(apirequest.NewDefaultContext(), test.image) if obj == nil { t.Errorf("%d: Expected nil obj, got %v", i, obj) continue @@ -316,13 +318,13 @@ func TestUpdateResetsMetadata(t *testing.T) { return true }, existing: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "1"}, DockerImageReference: "openshift/ruby-19-centos-2", DockerImageLayers: []api.ImageLayer{{Name: "test", LayerSize: 10}}, DockerImageMetadata: api.DockerImage{ID: "foo"}, }, image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "1", Labels: map[string]string{"a": "b"}}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "1", Labels: map[string]string{"a": "b"}}, DockerImageReference: "openshift/ruby-19-centos", DockerImageManifest: etcdManifest, }, @@ -353,13 +355,13 @@ func TestUpdateResetsMetadata(t *testing.T) { return true }, existing: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "1"}, DockerImageReference: "openshift/ruby-19-centos-2", DockerImageLayers: []api.ImageLayer{}, DockerImageManifest: etcdManifest, }, image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "1"}, DockerImageReference: "openshift/ruby-19-centos", DockerImageMetadata: api.DockerImage{ID: "foo"}, }, @@ -390,13 +392,13 @@ func TestUpdateResetsMetadata(t *testing.T) { return true }, existing: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "sha256:958608f8ecc1dc62c93b6c610f3a834dae4220c9642e6e8b4e0f2b3ad7cbd238", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:958608f8ecc1dc62c93b6c610f3a834dae4220c9642e6e8b4e0f2b3ad7cbd238", ResourceVersion: "1"}, DockerImageReference: "openshift/ruby-19-centos-2", DockerImageLayers: []api.ImageLayer{}, DockerImageManifest: etcdManifestNoSignature, }, image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "sha256:958608f8ecc1dc62c93b6c610f3a834dae4220c9642e6e8b4e0f2b3ad7cbd238", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:958608f8ecc1dc62c93b6c610f3a834dae4220c9642e6e8b4e0f2b3ad7cbd238", ResourceVersion: "1"}, DockerImageReference: "openshift/ruby-19-centos", DockerImageMetadata: api.DockerImage{ID: "foo"}, DockerImageManifest: etcdManifest, @@ -410,7 +412,7 @@ func TestUpdateResetsMetadata(t *testing.T) { // Clear the resource version before creating test.existing.ResourceVersion = "" - created, err := storage.Create(kapi.NewDefaultContext(), test.existing) + created, err := storage.Create(apirequest.NewDefaultContext(), test.existing) if err != nil { t.Errorf("%d: Unexpected non-nil error: %#v", i, err) continue @@ -418,7 +420,7 @@ func TestUpdateResetsMetadata(t *testing.T) { // Copy the resource version into our update object test.image.ResourceVersion = created.(*api.Image).ResourceVersion - obj, _, err := storage.Update(kapi.NewDefaultContext(), test.image.Name, rest.DefaultUpdatedObjectInfo(test.image, kapi.Scheme)) + obj, _, err := storage.Update(apirequest.NewDefaultContext(), test.image.Name, rest.DefaultUpdatedObjectInfo(test.image, kapi.Scheme)) if err != nil { t.Errorf("%d: Unexpected non-nil error: %#v", i, err) continue diff --git a/pkg/image/registry/image/registry.go b/pkg/image/registry/image/registry.go index 96a94f41f99b..499cf21cad72 100644 --- a/pkg/image/registry/image/registry.go +++ b/pkg/image/registry/image/registry.go @@ -1,10 +1,13 @@ package image import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/image/api" ) @@ -12,17 +15,17 @@ import ( // Registry is an interface for things that know how to store Image objects. type Registry interface { // ListImages obtains a list of images that match a selector. - ListImages(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageList, error) + ListImages(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageList, error) // GetImage retrieves a specific image. - GetImage(ctx kapi.Context, id string) (*api.Image, error) + GetImage(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.Image, error) // CreateImage creates a new image. - CreateImage(ctx kapi.Context, image *api.Image) error + CreateImage(ctx apirequest.Context, image *api.Image) error // DeleteImage deletes an image. - DeleteImage(ctx kapi.Context, id string) error + DeleteImage(ctx apirequest.Context, id string) error // WatchImages watches for new or deleted images. - WatchImages(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchImages(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) // UpdateImage updates given image. - UpdateImage(ctx kapi.Context, image *api.Image) (*api.Image, error) + UpdateImage(ctx apirequest.Context, image *api.Image) (*api.Image, error) } // Storage is an interface for a standard REST Storage backend @@ -32,8 +35,8 @@ type Storage interface { rest.Getter rest.Watcher - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) - Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) + Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) } // storage puts strong typing around storage calls @@ -47,7 +50,7 @@ func NewRegistry(s Storage) Registry { return &storage{Storage: s} } -func (s *storage) ListImages(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageList, error) { +func (s *storage) ListImages(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -55,20 +58,20 @@ func (s *storage) ListImages(ctx kapi.Context, options *kapi.ListOptions) (*api. return obj.(*api.ImageList), nil } -func (s *storage) GetImage(ctx kapi.Context, imageID string) (*api.Image, error) { - obj, err := s.Get(ctx, imageID) +func (s *storage) GetImage(ctx apirequest.Context, imageID string, options *metav1.GetOptions) (*api.Image, error) { + obj, err := s.Get(ctx, imageID, options) if err != nil { return nil, err } return obj.(*api.Image), nil } -func (s *storage) CreateImage(ctx kapi.Context, image *api.Image) error { +func (s *storage) CreateImage(ctx apirequest.Context, image *api.Image) error { _, err := s.Create(ctx, image) return err } -func (s *storage) UpdateImage(ctx kapi.Context, image *api.Image) (*api.Image, error) { +func (s *storage) UpdateImage(ctx apirequest.Context, image *api.Image) (*api.Image, error) { obj, _, err := s.Update(ctx, image.Name, rest.DefaultUpdatedObjectInfo(image, kapi.Scheme)) if err != nil { return nil, err @@ -76,11 +79,11 @@ func (s *storage) UpdateImage(ctx kapi.Context, image *api.Image) (*api.Image, e return obj.(*api.Image), nil } -func (s *storage) DeleteImage(ctx kapi.Context, imageID string) error { - _, err := s.Delete(ctx, imageID, nil) +func (s *storage) DeleteImage(ctx apirequest.Context, imageID string) error { + _, _, err := s.Delete(ctx, imageID, nil) return err } -func (s *storage) WatchImages(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchImages(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } diff --git a/pkg/image/registry/image/strategy.go b/pkg/image/registry/image/strategy.go index f5933e51d562..f1ec84c7ab06 100644 --- a/pkg/image/registry/image/strategy.go +++ b/pkg/image/registry/image/strategy.go @@ -3,14 +3,16 @@ package image import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic" + kstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/registry/generic" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/validation" @@ -19,12 +21,12 @@ import ( // imageStrategy implements behavior for Images. type imageStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating // Image objects via the REST API. -var Strategy = imageStrategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = imageStrategy{kapi.Scheme, names.SimpleNameGenerator} // NamespaceScoped is false for images. func (imageStrategy) NamespaceScoped() bool { @@ -33,7 +35,7 @@ func (imageStrategy) NamespaceScoped() bool { // PrepareForCreate clears fields that are not allowed to be set by end users on creation. // It extracts the latest information from the manifest (if available) and sets that onto the object. -func (s imageStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s imageStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { newImage := obj.(*api.Image) // ignore errors, change in place if err := api.ImageWithMetadata(newImage); err != nil { @@ -45,7 +47,7 @@ func (s imageStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { } // Validate validates a new image. -func (imageStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (imageStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { image := obj.(*api.Image) return validation.ValidateImage(image) } @@ -67,7 +69,7 @@ func (imageStrategy) Canonicalize(obj runtime.Object) { // It extracts the latest info from the manifest and sets that on the object. It allows a user // to update the manifest so that it matches the digest (in case an older server stored a manifest // that was malformed, it can always be corrected). -func (s imageStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s imageStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newImage := obj.(*api.Image) oldImage := old.(*api.Image) @@ -121,7 +123,7 @@ func (s imageStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Objec } // ValidateUpdate is the default update validation for an end user. -func (imageStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (imageStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateImageUpdate(old.(*api.Image), obj.(*api.Image)) } diff --git a/pkg/image/registry/image/strategy_test.go b/pkg/image/registry/image/strategy_test.go index 295c6584f962..4dd3cf3e366b 100644 --- a/pkg/image/registry/image/strategy_test.go +++ b/pkg/image/registry/image/strategy_test.go @@ -7,17 +7,18 @@ import ( "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/meta" + apitesting "k8s.io/apimachinery/pkg/api/testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - apitesting "k8s.io/kubernetes/pkg/api/testing" - "k8s.io/kubernetes/pkg/util/diff" - "github.com/openshift/origin/pkg/api/v1" "github.com/openshift/origin/pkg/image/api" ) func fuzzImage(t *testing.T, image *api.Image, seed int64) *api.Image { - f := apitesting.FuzzerFor(t, v1.SchemeGroupVersion, rand.NewSource(seed)) + f := apitesting.FuzzerFor(apitesting.GenericFuzzerFuncs(t, kapi.Codecs), rand.NewSource(seed)) f.Funcs( func(j *api.Image, c fuzz.Continue) { c.FuzzNoCustom(j) @@ -56,10 +57,10 @@ func fuzzImage(t *testing.T, image *api.Image, seed int64) *api.Image { } func TestStrategyPrepareForCreate(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() original := api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, } diff --git a/pkg/image/registry/imagesecret/rest.go b/pkg/image/registry/imagesecret/rest.go index ed27f2d58df4..d13eda37034a 100644 --- a/pkg/image/registry/imagesecret/rest.go +++ b/pkg/image/registry/imagesecret/rest.go @@ -3,9 +3,11 @@ package imagesecret import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/image/api" ) @@ -25,21 +27,25 @@ func (r *REST) New() runtime.Object { } func (r *REST) NewGetOptions() (runtime.Object, bool, string) { - return &kapi.ListOptions{}, false, "" + return &metav1.ListOptions{}, false, "" } // Get retrieves all pull type secrets in the current namespace. Name is currently ignored and // reserved for future use. -func (r *REST) Get(ctx kapi.Context, _ string, options runtime.Object) (runtime.Object, error) { - listOptions, ok := options.(*kapi.ListOptions) +func (r *REST) Get(ctx apirequest.Context, _ string, options runtime.Object) (runtime.Object, error) { + listOptions, ok := options.(*metav1.ListOptions) if !ok { - return nil, fmt.Errorf("unexpected options: %v", listOptions) + return nil, fmt.Errorf("unexpected options: %T", options) } - ns, ok := kapi.NamespaceFrom(ctx) + var opts metav1.ListOptions + if listOptions != nil { + opts = *listOptions + } + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { - ns = kapi.NamespaceAll + ns = metav1.NamespaceAll } - secrets, err := r.secrets.Secrets(ns).List(*listOptions) + secrets, err := r.secrets.Secrets(ns).List(opts) if err != nil { return nil, err } diff --git a/pkg/image/registry/imagesecret/rest_test.go b/pkg/image/registry/imagesecret/rest_test.go index 86715d30f2a0..4acb28270000 100644 --- a/pkg/image/registry/imagesecret/rest_test.go +++ b/pkg/image/registry/imagesecret/rest_test.go @@ -3,6 +3,8 @@ package imagesecret import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" @@ -13,30 +15,30 @@ func TestGetSecrets(t *testing.T) { fake := fake.NewSimpleClientset(&kapi.SecretList{ Items: []kapi.Secret{ { - ObjectMeta: kapi.ObjectMeta{Name: "secret-1", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "secret-1", Namespace: "default"}, Type: kapi.SecretTypeDockercfg, }, { - ObjectMeta: kapi.ObjectMeta{Name: "secret-2", Annotations: map[string]string{api.ExcludeImageSecretAnnotation: "true"}, Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "secret-2", Annotations: map[string]string{api.ExcludeImageSecretAnnotation: "true"}, Namespace: "default"}, Type: kapi.SecretTypeDockercfg, }, { - ObjectMeta: kapi.ObjectMeta{Name: "secret-3", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "secret-3", Namespace: "default"}, Type: kapi.SecretTypeOpaque, }, { - ObjectMeta: kapi.ObjectMeta{Name: "secret-4", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "secret-4", Namespace: "default"}, Type: kapi.SecretTypeServiceAccountToken, }, { - ObjectMeta: kapi.ObjectMeta{Name: "secret-5", Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: "secret-5", Namespace: "default"}, Type: kapi.SecretTypeDockerConfigJson, }, }, }) rest := NewREST(fake.Core()) opts, _, _ := rest.NewGetOptions() - obj, err := rest.Get(kapi.NewDefaultContext(), "", opts) + obj, err := rest.Get(apirequest.NewDefaultContext(), "", opts) if err != nil { t.Fatal(err) } diff --git a/pkg/image/registry/imagesignature/rest.go b/pkg/image/registry/imagesignature/rest.go index a9d1dbf1a642..be902f549d4c 100644 --- a/pkg/image/registry/imagesignature/rest.go +++ b/pkg/image/registry/imagesignature/rest.go @@ -3,11 +3,11 @@ package imagesignature import ( "errors" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "github.com/openshift/origin/pkg/client" imageapi "github.com/openshift/origin/pkg/image/api" @@ -28,7 +28,7 @@ func (r *REST) New() runtime.Object { return &imageapi.ImageSignature{} } -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { signature := obj.(*imageapi.ImageSignature) if err := rest.BeforeCreate(Strategy, ctx, obj); err != nil { @@ -40,7 +40,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return nil, kapierrors.NewBadRequest(err.Error()) } - image, err := r.imageClient.Get(imageName) + image, err := r.imageClient.Get(imageName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -65,13 +65,13 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return &image.Signatures[byName], nil } -func (r *REST) Delete(ctx kapi.Context, name string) (runtime.Object, error) { +func (r *REST) Delete(ctx apirequest.Context, name string) (runtime.Object, error) { imageName, _, err := imageapi.SplitImageSignatureName(name) if err != nil { return nil, kapierrors.NewBadRequest("ImageSignatures must be accessed with @") } - image, err := r.imageClient.Get(imageName) + image, err := r.imageClient.Get(imageName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -89,5 +89,5 @@ func (r *REST) Delete(ctx kapi.Context, name string) (runtime.Object, error) { return nil, err } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, nil } diff --git a/pkg/image/registry/imagesignature/strategy.go b/pkg/image/registry/imagesignature/strategy.go index 28f714e64d86..76ca055a668d 100644 --- a/pkg/image/registry/imagesignature/strategy.go +++ b/pkg/image/registry/imagesignature/strategy.go @@ -1,9 +1,10 @@ package imagesignature import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" imageapi "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/validation" @@ -22,7 +23,7 @@ func (s *strategy) NamespaceScoped() bool { return false } -func (s *strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s *strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { signature := obj.(*imageapi.ImageSignature) signature.Conditions = nil @@ -37,7 +38,7 @@ func (s *strategy) GenerateName(base string) string { return base } -func (s *strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s *strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { signature := obj.(*imageapi.ImageSignature) return validation.ValidateImageSignature(signature) diff --git a/pkg/image/registry/imagesignature/strategy_test.go b/pkg/image/registry/imagesignature/strategy_test.go index 3686cba7ff5c..4ea293b3b818 100644 --- a/pkg/image/registry/imagesignature/strategy_test.go +++ b/pkg/image/registry/imagesignature/strategy_test.go @@ -7,16 +7,17 @@ import ( "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/meta" + apitesting "k8s.io/apimachinery/pkg/api/testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - apitesting "k8s.io/kubernetes/pkg/api/testing" - "github.com/openshift/origin/pkg/api/v1" "github.com/openshift/origin/pkg/image/api" ) func fuzzImageSignature(t *testing.T, signature *api.ImageSignature, seed int64) *api.ImageSignature { - f := apitesting.FuzzerFor(t, v1.SchemeGroupVersion, rand.NewSource(seed)) + f := apitesting.FuzzerFor(apitesting.GenericFuzzerFuncs(t, kapi.Codecs), rand.NewSource(seed)) f.Funcs( func(j *api.ImageSignature, c fuzz.Continue) { c.FuzzNoCustom(j) @@ -55,9 +56,9 @@ func fuzzImageSignature(t *testing.T, signature *api.ImageSignature, seed int64) } func TestStrategyPrepareForCreate(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() signature := &api.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, } diff --git a/pkg/image/registry/imagestream/etcd/etcd.go b/pkg/image/registry/imagestream/etcd/etcd.go index 9ca790b6aaa2..77d4c821040a 100644 --- a/pkg/image/registry/imagestream/etcd/etcd.go +++ b/pkg/image/registry/imagestream/etcd/etcd.go @@ -1,11 +1,12 @@ package etcd import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" imageadmission "github.com/openshift/origin/pkg/image/admission" @@ -77,12 +78,12 @@ func (r *StatusREST) New() runtime.Object { } // Get retrieves the object from the storage. It is required to support Patch. -func (r *StatusREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - return r.store.Get(ctx, name) +func (r *StatusREST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + return r.store.Get(ctx, name, options) } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *StatusREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } @@ -96,11 +97,11 @@ func (r *InternalREST) New() runtime.Object { } // Create alters both the spec and status of the object. -func (r *InternalREST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *InternalREST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { return r.store.Create(ctx, obj) } // Update alters both the spec and status of the object. -func (r *InternalREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *InternalREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } diff --git a/pkg/image/registry/imagestream/etcd/etcd_test.go b/pkg/image/registry/imagestream/etcd/etcd_test.go index 01f405c2ad18..e899921e7936 100644 --- a/pkg/image/registry/imagestream/etcd/etcd_test.go +++ b/pkg/image/registry/imagestream/etcd/etcd_test.go @@ -3,11 +3,13 @@ package etcd import ( "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/registry/registrytest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/api/latest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -38,9 +40,9 @@ type fakeSubjectAccessReviewRegistry struct { var _ subjectaccessreview.Registry = &fakeSubjectAccessReviewRegistry{} -func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { +func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { f.request = subjectAccessReview - f.requestNamespace = kapi.NamespaceValue(ctx) + f.requestNamespace = apirequest.NamespaceValue(ctx) return &authorizationapi.SubjectAccessReviewResponse{Allowed: f.allow}, f.err } @@ -55,14 +57,14 @@ func newStorage(t *testing.T) (*REST, *StatusREST, *InternalREST, *etcdtesting.E func validImageStream() *api.ImageStream { return &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, } } func create(t *testing.T, storage *REST, obj *api.ImageStream) *api.ImageStream { - ctx := kapi.WithUser(kapi.NewDefaultContext(), &fakeUser{}) + ctx := apirequest.WithUser(apirequest.NewDefaultContext(), &fakeUser{}) newObj, err := storage.Create(ctx, obj) if err != nil { t.Fatalf("Unexpected error: %v", err) @@ -95,7 +97,7 @@ func TestGetImageStreamError(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() - image, err := storage.Get(kapi.NewDefaultContext(), "image1") + image, err := storage.Get(apirequest.NewDefaultContext(), "image1", &metav1.GetOptions{}) if !errors.IsNotFound(err) { t.Errorf("Expected not-found error, got %v", err) } @@ -111,7 +113,7 @@ func TestGetImageStreamOK(t *testing.T) { image := create(t, storage, validImageStream()) - obj, err := storage.Get(kapi.NewDefaultContext(), name) + obj, err := storage.Get(apirequest.NewDefaultContext(), name, &metav1.GetOptions{}) if err != nil { t.Errorf("Unexpected error: %#v", err) } diff --git a/pkg/image/registry/imagestream/registry.go b/pkg/image/registry/imagestream/registry.go index 948ccd5d29b4..55104b42645f 100644 --- a/pkg/image/registry/imagestream/registry.go +++ b/pkg/image/registry/imagestream/registry.go @@ -1,11 +1,13 @@ package imagestream import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/image/api" ) @@ -13,21 +15,21 @@ import ( // Registry is an interface for things that know how to store ImageStream objects. type Registry interface { // ListImageStreams obtains a list of image streams that match a selector. - ListImageStreams(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageStreamList, error) + ListImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageStreamList, error) // GetImageStream retrieves a specific image stream. - GetImageStream(ctx kapi.Context, id string) (*api.ImageStream, error) + GetImageStream(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) // CreateImageStream creates a new image stream. - CreateImageStream(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) + CreateImageStream(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) // UpdateImageStream updates an image stream. - UpdateImageStream(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) + UpdateImageStream(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) // UpdateImageStreamSpec updates an image stream's spec. - UpdateImageStreamSpec(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) + UpdateImageStreamSpec(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) // UpdateImageStreamStatus updates an image stream's status. - UpdateImageStreamStatus(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) + UpdateImageStreamStatus(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) // DeleteImageStream deletes an image stream. - DeleteImageStream(ctx kapi.Context, id string) (*unversioned.Status, error) + DeleteImageStream(ctx apirequest.Context, id string) (*metav1.Status, error) // WatchImageStreams watches for new/changed/deleted image streams. - WatchImageStreams(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // Storage is an interface for a standard REST Storage backend @@ -37,8 +39,8 @@ type Storage interface { rest.Getter rest.Watcher - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) - Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) + Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) } // storage puts strong typing around storage calls @@ -54,7 +56,7 @@ func NewRegistry(s Storage, status, internal rest.Updater) Registry { return &storage{Storage: s, status: status, internal: internal} } -func (s *storage) ListImageStreams(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageStreamList, error) { +func (s *storage) ListImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageStreamList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -62,15 +64,15 @@ func (s *storage) ListImageStreams(ctx kapi.Context, options *kapi.ListOptions) return obj.(*api.ImageStreamList), nil } -func (s *storage) GetImageStream(ctx kapi.Context, imageStreamID string) (*api.ImageStream, error) { - obj, err := s.Get(ctx, imageStreamID) +func (s *storage) GetImageStream(ctx apirequest.Context, imageStreamID string, options *metav1.GetOptions) (*api.ImageStream, error) { + obj, err := s.Get(ctx, imageStreamID, options) if err != nil { return nil, err } return obj.(*api.ImageStream), nil } -func (s *storage) CreateImageStream(ctx kapi.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { +func (s *storage) CreateImageStream(ctx apirequest.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { obj, err := s.Create(ctx, imageStream) if err != nil { return nil, err @@ -78,7 +80,7 @@ func (s *storage) CreateImageStream(ctx kapi.Context, imageStream *api.ImageStre return obj.(*api.ImageStream), nil } -func (s *storage) UpdateImageStream(ctx kapi.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { +func (s *storage) UpdateImageStream(ctx apirequest.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { obj, _, err := s.internal.Update(ctx, imageStream.Name, rest.DefaultUpdatedObjectInfo(imageStream, kapi.Scheme)) if err != nil { return nil, err @@ -86,7 +88,7 @@ func (s *storage) UpdateImageStream(ctx kapi.Context, imageStream *api.ImageStre return obj.(*api.ImageStream), nil } -func (s *storage) UpdateImageStreamSpec(ctx kapi.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { +func (s *storage) UpdateImageStreamSpec(ctx apirequest.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { obj, _, err := s.Update(ctx, imageStream.Name, rest.DefaultUpdatedObjectInfo(imageStream, kapi.Scheme)) if err != nil { return nil, err @@ -94,7 +96,7 @@ func (s *storage) UpdateImageStreamSpec(ctx kapi.Context, imageStream *api.Image return obj.(*api.ImageStream), nil } -func (s *storage) UpdateImageStreamStatus(ctx kapi.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { +func (s *storage) UpdateImageStreamStatus(ctx apirequest.Context, imageStream *api.ImageStream) (*api.ImageStream, error) { obj, _, err := s.status.Update(ctx, imageStream.Name, rest.DefaultUpdatedObjectInfo(imageStream, kapi.Scheme)) if err != nil { return nil, err @@ -102,14 +104,14 @@ func (s *storage) UpdateImageStreamStatus(ctx kapi.Context, imageStream *api.Ima return obj.(*api.ImageStream), nil } -func (s *storage) DeleteImageStream(ctx kapi.Context, imageStreamID string) (*unversioned.Status, error) { - obj, err := s.Delete(ctx, imageStreamID, nil) +func (s *storage) DeleteImageStream(ctx apirequest.Context, imageStreamID string) (*metav1.Status, error) { + obj, _, err := s.Delete(ctx, imageStreamID, nil) if err != nil { return nil, err } - return obj.(*unversioned.Status), nil + return obj.(*metav1.Status), nil } -func (s *storage) WatchImageStreams(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } diff --git a/pkg/image/registry/imagestream/strategy.go b/pkg/image/registry/imagestream/strategy.go index 5b003ed0f781..b5e086de7f9c 100644 --- a/pkg/image/registry/imagestream/strategy.go +++ b/pkg/image/registry/imagestream/strategy.go @@ -5,15 +5,18 @@ import ( "strings" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" @@ -23,13 +26,13 @@ import ( ) type ResourceGetter interface { - Get(kapi.Context, string) (runtime.Object, error) + Get(apirequest.Context, string, *metav1.GetOptions) (runtime.Object, error) } // Strategy implements behavior for ImageStreams. type Strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator defaultRegistry api.DefaultRegistry tagVerifier *TagVerifier limitVerifier imageadmission.LimitVerifier @@ -41,7 +44,7 @@ type Strategy struct { func NewStrategy(defaultRegistry api.DefaultRegistry, subjectAccessReviewClient subjectaccessreview.Registry, limitVerifier imageadmission.LimitVerifier, imageStreamGetter ResourceGetter) Strategy { return Strategy{ ObjectTyper: kapi.Scheme, - NameGenerator: kapi.SimpleNameGenerator, + NameGenerator: names.SimpleNameGenerator, defaultRegistry: defaultRegistry, tagVerifier: &TagVerifier{subjectAccessReviewClient}, limitVerifier: limitVerifier, @@ -55,7 +58,7 @@ func (s Strategy) NamespaceScoped() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s Strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s Strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { stream := obj.(*api.ImageStream) stream.Status = api.ImageStreamStatus{ DockerImageRepository: s.dockerImageRepository(stream), @@ -70,7 +73,7 @@ func (s Strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { // Validate validates a new image stream and verifies the current user is // authorized to access any image streams newly referenced in spec.tags. -func (s Strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s Strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { stream := obj.(*api.ImageStream) var errs field.ErrorList if err := s.validateTagsAndLimits(ctx, nil, stream); err != nil { @@ -80,19 +83,19 @@ func (s Strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList return errs } -func (s Strategy) validateTagsAndLimits(ctx kapi.Context, oldStream, newStream *api.ImageStream) error { - user, ok := kapi.UserFrom(ctx) +func (s Strategy) validateTagsAndLimits(ctx apirequest.Context, oldStream, newStream *api.ImageStream) error { + user, ok := apirequest.UserFrom(ctx) if !ok { - return kerrors.NewForbidden(unversioned.GroupResource{Resource: "imagestreams"}, newStream.Name, fmt.Errorf("no user context available")) + return kerrors.NewForbidden(schema.GroupResource{Resource: "imagestreams"}, newStream.Name, fmt.Errorf("no user context available")) } errs := s.tagVerifier.Verify(oldStream, newStream, user) errs = append(errs, s.tagsChanged(oldStream, newStream)...) if len(errs) > 0 { - return kerrors.NewInvalid(unversioned.GroupKind{Kind: "imagestreams"}, newStream.Name, errs) + return kerrors.NewInvalid(schema.GroupKind{Kind: "imagestreams"}, newStream.Name, errs) } - ns, ok := kapi.NamespaceFrom(ctx) + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { ns = newStream.Namespace } @@ -119,7 +122,7 @@ func (s Strategy) dockerImageRepository(stream *api.ImageStream) string { } if len(stream.Namespace) == 0 { - stream.Namespace = kapi.NamespaceDefault + stream.Namespace = metav1.NamespaceDefault } ref := api.DockerImageReference{ Registry: registry, @@ -209,7 +212,7 @@ func (s Strategy) tagsChanged(old, stream *api.ImageStream) field.ErrorList { streamRefNamespace = stream.Namespace } if streamRefNamespace != stream.Namespace || tagRefStreamName != stream.Name { - obj, err := s.imageStreamGetter.Get(kapi.WithNamespace(kapi.NewContext(), streamRefNamespace), tagRefStreamName) + obj, err := s.imageStreamGetter.Get(apirequest.WithNamespace(apirequest.NewContext(), streamRefNamespace), tagRefStreamName, &metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { errs = append(errs, field.NotFound(fromPath.Child("name"), tagRef.From.Name)) @@ -271,7 +274,7 @@ func tagReferenceToTagEvent(stream *api.ImageStream, tagRef api.TagReference, ta switch tagRef.From.Kind { case "DockerImage": event = &api.TagEvent{ - Created: unversioned.Now(), + Created: metav1.Now(), DockerImageReference: tagRef.From.Name, } @@ -449,7 +452,7 @@ func (v *TagVerifier) Verify(old, stream *api.ImageStream, user user.Info) field ResourceName: streamName, }, }) - ctx := kapi.WithNamespace(kapi.WithUser(kapi.NewContext(), user), tagRef.From.Namespace) + ctx := apirequest.WithNamespace(apirequest.WithUser(apirequest.NewContext(), user), tagRef.From.Namespace) glog.V(4).Infof("Performing SubjectAccessReview for user=%s, groups=%v to %s/%s", user.GetName(), user.GetGroups(), tagRef.From.Namespace, streamName) resp, err := v.subjectAccessReviewClient.CreateSubjectAccessReview(ctx, subjectAccessReview) if err != nil || resp == nil || (resp != nil && !resp.Allowed) { @@ -496,12 +499,12 @@ func (s Strategy) prepareForUpdate(obj, old runtime.Object, resetStatus bool) { ensureSpecTagGenerationsAreSet(stream, oldStream) } -func (s Strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s Strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { s.prepareForUpdate(obj, old, true) } // ValidateUpdate is the default update validation for an end user. -func (s Strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s Strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { stream := obj.(*api.ImageStream) oldStream := old.(*api.ImageStream) var errs field.ErrorList @@ -543,7 +546,7 @@ func NewStatusStrategy(strategy Strategy) StatusStrategy { func (StatusStrategy) Canonicalize(obj runtime.Object) { } -func (StatusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (StatusStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { oldStream := old.(*api.ImageStream) stream := obj.(*api.ImageStream) @@ -553,11 +556,11 @@ func (StatusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object updateObservedGenerationForStatusUpdate(stream, oldStream) } -func (s StatusStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s StatusStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { newIS := obj.(*api.ImageStream) errs := field.ErrorList{} - ns, ok := kapi.NamespaceFrom(ctx) + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { ns = newIS.Namespace } @@ -610,7 +613,7 @@ func NewInternalStrategy(strategy Strategy) InternalStrategy { func (InternalStrategy) Canonicalize(obj runtime.Object) { } -func (s InternalStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s InternalStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { stream := obj.(*api.ImageStream) stream.Status.DockerImageRepository = s.dockerImageRepository(stream) @@ -621,6 +624,6 @@ func (s InternalStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) } } -func (s InternalStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s InternalStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { s.prepareForUpdate(obj, old, false) } diff --git a/pkg/image/registry/imagestream/strategy_test.go b/pkg/image/registry/imagestream/strategy_test.go index c2f022dd7ccb..d0e3ebdc7cd4 100644 --- a/pkg/image/registry/imagestream/strategy_test.go +++ b/pkg/image/registry/imagestream/strategy_test.go @@ -8,15 +8,17 @@ import ( "strings" "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/auth/user" kquota "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" @@ -65,9 +67,9 @@ type fakeSubjectAccessReviewRegistry struct { var _ subjectaccessreview.Registry = &fakeSubjectAccessReviewRegistry{} -func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { +func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { f.request = subjectAccessReview - f.requestNamespace = kapi.NamespaceValue(ctx) + f.requestNamespace = apirequest.NamespaceValue(ctx) return &authorizationapi.SubjectAccessReviewResponse{Allowed: f.allow}, f.err } @@ -79,7 +81,7 @@ func TestDockerImageRepository(t *testing.T) { }{ "DockerImageRepository set on stream": { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", }, Spec: api.ImageStreamSpec{ @@ -90,7 +92,7 @@ func TestDockerImageRepository(t *testing.T) { }, "DockerImageRepository set on stream with default registry": { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "somerepo", }, @@ -103,7 +105,7 @@ func TestDockerImageRepository(t *testing.T) { }, "default namespace": { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", }, }, @@ -112,7 +114,7 @@ func TestDockerImageRepository(t *testing.T) { }, "nondefault namespace": { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", Namespace: "somens", }, @@ -122,7 +124,7 @@ func TestDockerImageRepository(t *testing.T) { }, "missing default registry": { stream: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", Namespace: "somens", }, @@ -290,7 +292,7 @@ func TestTagVerifier(t *testing.T) { } stream := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "stream", }, @@ -372,7 +374,7 @@ func TestLimitVerifier(t *testing.T) { { name: "no limit", is: api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -394,7 +396,7 @@ func TestLimitVerifier(t *testing.T) { { name: "below limit", is: api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -417,7 +419,7 @@ func TestLimitVerifier(t *testing.T) { { name: "exceed images", is: api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -449,7 +451,7 @@ func TestLimitVerifier(t *testing.T) { { name: "exceed tags", is: api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -475,7 +477,7 @@ func TestLimitVerifier(t *testing.T) { { name: "exceed images and tags", is: api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -525,7 +527,7 @@ func TestLimitVerifier(t *testing.T) { defaultRegistry: &fakeDefaultRegistry{}, } - ctx := kapi.WithUser(kapi.NewDefaultContext(), &fakeUser{}) + ctx := apirequest.WithUser(apirequest.NewDefaultContext(), &fakeUser{}) err := s.Validate(ctx, &tc.is) if e, a := tc.expected, err; !reflect.DeepEqual(e, a) { t.Errorf("%s: unexpected validation errors: %s", tc.name, diff.ObjectReflectDiff(e, a)) @@ -534,7 +536,7 @@ func TestLimitVerifier(t *testing.T) { // Update must fail the exact same way tc.is.ResourceVersion = "1" old := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", ResourceVersion: "1", @@ -551,7 +553,7 @@ type fakeImageStreamGetter struct { stream *api.ImageStream } -func (f *fakeImageStreamGetter) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (f *fakeImageStreamGetter) Get(ctx apirequest.Context, name string, opts *metav1.GetOptions) (runtime.Object, error) { return f.stream, nil } @@ -1045,7 +1047,7 @@ func TestTagsChanged(t *testing.T) { for testName, test := range tests { stream := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "stream", }, Spec: api.ImageStreamSpec{ @@ -1063,7 +1065,7 @@ func TestTagsChanged(t *testing.T) { previousTagHistory, _ = obj.(map[string]api.TagEventList) } previousStream := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "stream", }, Spec: api.ImageStreamSpec{ diff --git a/pkg/image/registry/imagestreamimage/registry.go b/pkg/image/registry/imagestreamimage/registry.go index 7eb83cc68b7b..f8da377dd480 100644 --- a/pkg/image/registry/imagestreamimage/registry.go +++ b/pkg/image/registry/imagestreamimage/registry.go @@ -2,13 +2,14 @@ package imagestreamimage import ( "github.com/openshift/origin/pkg/image/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" ) // Registry is an interface for things that know how to store ImageStreamImage objects. type Registry interface { - GetImageStreamImage(ctx kapi.Context, nameAndTag string) (*api.ImageStreamImage, error) + GetImageStreamImage(ctx apirequest.Context, nameAndTag string, options *metav1.GetOptions) (*api.ImageStreamImage, error) } // Storage is an interface for a standard REST Storage backend @@ -27,8 +28,8 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) GetImageStreamImage(ctx kapi.Context, name string) (*api.ImageStreamImage, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetImageStreamImage(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.ImageStreamImage, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } diff --git a/pkg/image/registry/imagestreamimage/rest.go b/pkg/image/registry/imagestreamimage/rest.go index fb8dac5d6e89..d1ba2163f0da 100644 --- a/pkg/image/registry/imagestreamimage/rest.go +++ b/pkg/image/registry/imagestreamimage/rest.go @@ -1,9 +1,10 @@ package imagestreamimage import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/registry/image" @@ -41,13 +42,13 @@ func parseNameAndID(input string) (name string, id string, err error) { // Get retrieves an image by ID that has previously been tagged into an image stream. // `id` is of the form @. -func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) { +func (r *REST) Get(ctx apirequest.Context, id string, options *metav1.GetOptions) (runtime.Object, error) { name, imageID, err := parseNameAndID(id) if err != nil { return nil, err } - repo, err := r.imageStreamRegistry.GetImageStream(ctx, name) + repo, err := r.imageStreamRegistry.GetImageStream(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -62,7 +63,7 @@ func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) { } imageName := event.Image - image, err := r.imageRegistry.GetImage(ctx, imageName) + image, err := r.imageRegistry.GetImage(ctx, imageName, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -73,8 +74,8 @@ func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) { image.DockerImageConfig = "" isi := api.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{ - Namespace: kapi.NamespaceValue(ctx), + ObjectMeta: metav1.ObjectMeta{ + Namespace: apirequest.NamespaceValue(ctx), Name: api.MakeImageStreamImageName(name, imageID), CreationTimestamp: image.ObjectMeta.CreationTimestamp, Annotations: repo.Annotations, diff --git a/pkg/image/registry/imagestreamimage/rest_test.go b/pkg/image/registry/imagestreamimage/rest_test.go index d36e6c097ba7..60a48210d249 100644 --- a/pkg/image/registry/imagestreamimage/rest_test.go +++ b/pkg/image/registry/imagestreamimage/rest_test.go @@ -6,12 +6,14 @@ import ( etcd "github.com/coreos/etcd/clientv3" "golang.org/x/net/context" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/etcd/etcdtest" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage/etcd/etcdtest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" @@ -33,7 +35,7 @@ type fakeSubjectAccessReviewRegistry struct { var _ subjectaccessreview.Registry = &fakeSubjectAccessReviewRegistry{} -func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { +func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { return nil, nil } @@ -113,7 +115,7 @@ func TestGet(t *testing.T) { "happy path": { input: "repo@id", repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns", Name: "repo", }, @@ -130,7 +132,7 @@ func TestGet(t *testing.T) { }, }, image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "id", }, DockerImageManifest: `{ @@ -199,9 +201,9 @@ func TestGet(t *testing.T) { client, server, storage := setup(t) defer server.Terminate(t) - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() if test.repo != nil { - ctx = kapi.WithNamespace(kapi.NewContext(), test.repo.Namespace) + ctx = apirequest.WithNamespace(apirequest.NewContext(), test.repo.Namespace) _, err := client.Put( context.TODO(), etcdtest.AddPrefix("/imagestreams/"+test.repo.Namespace+"/"+test.repo.Name), @@ -224,7 +226,7 @@ func TestGet(t *testing.T) { } } - obj, err := storage.Get(ctx, test.input) + obj, err := storage.Get(ctx, test.input, &metav1.GetOptions{}) gotError := err != nil if e, a := test.expectError, gotError; e != a { t.Errorf("%s: expected error=%t, got=%t: %s", name, e, a, err) diff --git a/pkg/image/registry/imagestreamimport/rest.go b/pkg/image/registry/imagestreamimport/rest.go index 14501c21f332..3393a20c1e80 100644 --- a/pkg/image/registry/imagestreamimport/rest.go +++ b/pkg/image/registry/imagestreamimport/rest.go @@ -8,14 +8,15 @@ import ( "github.com/golang/glog" gocontext "golang.org/x/net/context" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -79,7 +80,7 @@ func (r *REST) New() runtime.Object { return &api.ImageStreamImport{} } -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { isi, ok := obj.(*api.ImageStreamImport) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("obj is not an ImageStreamImport: %#v", obj)) @@ -95,7 +96,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // In case the user is allowed to create them, do not validate the ImageStreamImport // registry location against the registry whitelist, but instead allow to create any // image from any registry. - user, ok := kapi.UserFrom(ctx) + user, ok := apirequest.UserFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("unable to get user from context") } @@ -133,20 +134,20 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } } - namespace, ok := kapi.NamespaceFrom(ctx) + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("a namespace must be specified to import images") } if r.clientFn != nil { if client := r.clientFn(); client != nil { - ctx = kapi.WithValue(ctx, importer.ContextKeyV1RegistryClient, client) + ctx = apirequest.WithValue(ctx, importer.ContextKeyV1RegistryClient, client) } } // only load secrets if we need them credentials := importer.NewLazyCredentialsForSecrets(func() ([]kapi.Secret, error) { - secrets, err := r.secrets.ImageStreamSecrets(namespace).Secrets(isi.Name, kapi.ListOptions{}) + secrets, err := r.secrets.ImageStreamSecrets(namespace).Secrets(isi.Name, metav1.ListOptions{}) if err != nil { return nil, err } @@ -164,13 +165,13 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if err := credentials.Err(); err != nil { for i, image := range isi.Status.Images { switch image.Status.Reason { - case unversioned.StatusReasonUnauthorized, unversioned.StatusReasonForbidden: + case metav1.StatusReasonUnauthorized, metav1.StatusReasonForbidden: isi.Status.Images[i].Status.Message = fmt.Sprintf("Unable to load secrets for this image: %v; (%s)", err, image.Status.Message) } } if r := isi.Status.Repository; r != nil { switch r.Status.Reason { - case unversioned.StatusReasonUnauthorized, unversioned.StatusReasonForbidden: + case metav1.StatusReasonUnauthorized, metav1.StatusReasonForbidden: r.Status.Message = fmt.Sprintf("Unable to load secrets for this repository: %v; (%s)", err, r.Status.Message) } } @@ -184,7 +185,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } create := false - stream, err := r.streams.GetImageStream(ctx, isi.Name) + stream, err := r.streams.GetImageStream(ctx, isi.Name, &metav1.GetOptions{}) if err != nil { if !kapierrors.IsNotFound(err) { return nil, err @@ -195,7 +196,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } create = true stream = &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: isi.Name, Namespace: namespace, Generation: 0, @@ -215,7 +216,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if stream.Annotations == nil { stream.Annotations = make(map[string]string) } - now := unversioned.Now() + now := metav1.Now() _, hasAnnotation := stream.Annotations[api.DockerImageRepositoryCheckAnnotation] nextGeneration := stream.Generation + 1 @@ -344,7 +345,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } // recordLimitExceededStatus adds the limit err to any new tag. -func recordLimitExceededStatus(originalStream *api.ImageStream, newStream *api.ImageStream, err error, now unversioned.Time, nextGeneration int64) { +func recordLimitExceededStatus(originalStream *api.ImageStream, newStream *api.ImageStream, err error, now metav1.Time, nextGeneration int64) { for tag := range newStream.Status.Tags { if _, ok := originalStream.Status.Tags[tag]; !ok { api.SetTagConditions(originalStream, tag, newImportFailedCondition(err, nextGeneration, now)) @@ -352,8 +353,8 @@ func recordLimitExceededStatus(originalStream *api.ImageStream, newStream *api.I } } -func checkImportFailure(status api.ImageImportStatus, stream *api.ImageStream, tag string, nextGeneration int64, now unversioned.Time) bool { - if status.Image != nil && status.Status.Status == unversioned.StatusSuccess { +func checkImportFailure(status api.ImageImportStatus, stream *api.ImageStream, tag string, nextGeneration int64, now metav1.Time) bool { + if status.Image != nil && status.Status.Status == metav1.StatusSuccess { return false } message := status.Status.Message @@ -420,8 +421,8 @@ func ensureSpecTag(stream *api.ImageStream, tag, from string, importPolicy api.T // same image), and a failure to persist the image will be summarized before we update the stream. If an image was imported by this // operation, it *replaces* the imported image (from the remote repository) with the updated image. func (r *REST) importSuccessful( - ctx kapi.Context, - image *api.Image, stream *api.ImageStream, tag string, from string, nextGeneration int64, now unversioned.Time, + ctx apirequest.Context, + image *api.Image, stream *api.ImageStream, tag string, from string, nextGeneration int64, now metav1.Time, importPolicy api.TagImportPolicy, referencePolicy api.TagReferencePolicy, importedImages map[string]error, updatedImages map[string]*api.Image, ) (*api.Image, bool) { @@ -506,7 +507,7 @@ func clearManifests(isi *api.ImageStreamImport) { } } -func newImportFailedCondition(err error, gen int64, now unversioned.Time) api.TagEventCondition { +func newImportFailedCondition(err error, gen int64, now metav1.Time) api.TagEventCondition { c := api.TagEventCondition{ Type: api.ImportSuccess, Status: kapi.ConditionFalse, @@ -522,6 +523,6 @@ func newImportFailedCondition(err error, gen int64, now unversioned.Time) api.Ta return c } -func invalidStatus(kind, position string, errs ...*field.Error) unversioned.Status { +func invalidStatus(kind, position string, errs ...*field.Error) metav1.Status { return kapierrors.NewInvalid(api.Kind(kind), position, errs).ErrStatus } diff --git a/pkg/image/registry/imagestreamimport/rest_test.go b/pkg/image/registry/imagestreamimport/rest_test.go index 1d2b802e8b6a..8ae012c5e7f0 100644 --- a/pkg/image/registry/imagestreamimport/rest_test.go +++ b/pkg/image/registry/imagestreamimport/rest_test.go @@ -3,9 +3,10 @@ package imagestreamimport import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/image/api" ) @@ -16,14 +17,14 @@ func (_ fakeImageCreater) New() runtime.Object { return nil } -func (_ fakeImageCreater) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (_ fakeImageCreater) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { return obj, nil } func TestImportSuccessful(t *testing.T) { one := int64(1) two := int64(2) - now := unversioned.Now() + now := metav1.Now() tests := map[string]struct { image *api.Image stream *api.ImageStream @@ -31,7 +32,7 @@ func TestImportSuccessful(t *testing.T) { }{ "reference differs": { image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, DockerImageReference: "registry.com/namespace/image:mytag", @@ -69,7 +70,7 @@ func TestImportSuccessful(t *testing.T) { }, "image differs": { image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, DockerImageReference: "registry.com/namespace/image:mytag", @@ -108,7 +109,7 @@ func TestImportSuccessful(t *testing.T) { }, "empty status": { image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, DockerImageReference: "registry.com/namespace/image:mytag", @@ -138,7 +139,7 @@ func TestImportSuccessful(t *testing.T) { // https://github.com/openshift/origin/issues/10402: "only generation differ": { image: &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image", }, DockerImageReference: "registry.com/namespace/image:mytag", @@ -188,7 +189,7 @@ func TestImportSuccessful(t *testing.T) { importedImages := make(map[string]error) updatedImages := make(map[string]*api.Image) storage := REST{images: fakeImageCreater{}} - _, ok := storage.importSuccessful(kapi.NewDefaultContext(), test.image, test.stream, + _, ok := storage.importSuccessful(apirequest.NewDefaultContext(), test.image, test.stream, ref.Tag, ref.Exact(), two, now, importPolicy, referencePolicy, importedImages, updatedImages) if !ok { t.Errorf("%s: expected success, didn't get one", name) diff --git a/pkg/image/registry/imagestreamimport/strategy.go b/pkg/image/registry/imagestreamimport/strategy.go index 5bd67b1bab3c..fbb661ed5ec3 100644 --- a/pkg/image/registry/imagestreamimport/strategy.go +++ b/pkg/image/registry/imagestreamimport/strategy.go @@ -1,9 +1,10 @@ package imagestreamimport import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" configapi "github.com/openshift/origin/pkg/cmd/server/api" serverapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -64,7 +65,7 @@ func (s *strategy) ValidateAllowedRegistries(isi *api.ImageStreamImport) field.E return errs } -func (s *strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s *strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { newIST := obj.(*api.ImageStreamImport) newIST.Status = api.ImageStreamImportStatus{} } @@ -80,7 +81,7 @@ func (s *strategy) PrepareImageForCreate(obj runtime.Object) { image.DockerImageConfig = "" } -func (s *strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s *strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { isi := obj.(*api.ImageStreamImport) return validation.ValidateImageStreamImport(isi) } diff --git a/pkg/image/registry/imagestreammapping/registry.go b/pkg/image/registry/imagestreammapping/registry.go index f97223020e37..0296e895b240 100644 --- a/pkg/image/registry/imagestreammapping/registry.go +++ b/pkg/image/registry/imagestreammapping/registry.go @@ -1,9 +1,9 @@ package imagestreammapping import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/image/api" ) @@ -11,12 +11,12 @@ import ( // Registry is an interface for things that know how to store ImageStreamMapping objects. type Registry interface { // CreateImageStreamMapping creates a new image stream mapping. - CreateImageStreamMapping(ctx kapi.Context, mapping *api.ImageStreamMapping) (*unversioned.Status, error) + CreateImageStreamMapping(ctx apirequest.Context, mapping *api.ImageStreamMapping) (*metav1.Status, error) } // Storage is an interface for a standard REST Storage backend type Storage interface { - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) } // storage puts strong typing around storage calls @@ -31,10 +31,10 @@ func NewRegistry(s Storage) Registry { } // CreateImageStreamMapping will create an image stream mapping. -func (s *storage) CreateImageStreamMapping(ctx kapi.Context, mapping *api.ImageStreamMapping) (*unversioned.Status, error) { +func (s *storage) CreateImageStreamMapping(ctx apirequest.Context, mapping *api.ImageStreamMapping) (*metav1.Status, error) { obj, err := s.Create(ctx, mapping) if err != nil { return nil, err } - return obj.(*unversioned.Status), nil + return obj.(*metav1.Status), nil } diff --git a/pkg/image/registry/imagestreammapping/rest.go b/pkg/image/registry/imagestreammapping/rest.go index 82320d603376..6c03fd1d3ae6 100644 --- a/pkg/image/registry/imagestreammapping/rest.go +++ b/pkg/image/registry/imagestreammapping/rest.go @@ -3,13 +3,15 @@ package imagestreammapping import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/wait" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/registry/image" @@ -48,7 +50,7 @@ func (r *REST) New() runtime.Object { // with a resource conflict, the update will be retried if the newer // ImageStream has no tag diffs from the previous state. If tag diffs are // detected, the conflict error is returned. -func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { if err := rest.BeforeCreate(s.strategy, ctx, obj); err != nil { return nil, err } @@ -85,7 +87,7 @@ func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } next := api.TagEvent{ - Created: unversioned.Now(), + Created: metav1.Now(), DockerImageReference: ref, Image: image.Name, } @@ -138,16 +140,16 @@ func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if err != nil { return nil, err } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, nil } // findStreamForMapping retrieves an ImageStream whose DockerImageRepository matches dockerRepo. -func (s *REST) findStreamForMapping(ctx kapi.Context, mapping *api.ImageStreamMapping) (*api.ImageStream, error) { +func (s *REST) findStreamForMapping(ctx apirequest.Context, mapping *api.ImageStreamMapping) (*api.ImageStream, error) { if len(mapping.Name) > 0 { - return s.imageStreamRegistry.GetImageStream(ctx, mapping.Name) + return s.imageStreamRegistry.GetImageStream(ctx, mapping.Name, &metav1.GetOptions{}) } if len(mapping.DockerImageRepository) != 0 { - list, err := s.imageStreamRegistry.ListImageStreams(ctx, &kapi.ListOptions{}) + list, err := s.imageStreamRegistry.ListImageStreams(ctx, &metainternal.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/image/registry/imagestreammapping/rest_test.go b/pkg/image/registry/imagestreammapping/rest_test.go index fe1ff8106f3f..2e83f521cdba 100644 --- a/pkg/image/registry/imagestreammapping/rest_test.go +++ b/pkg/image/registry/imagestreammapping/rest_test.go @@ -10,16 +10,18 @@ import ( etcd "github.com/coreos/etcd/clientv3" "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/etcd/etcdtest" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage/etcd/etcdtest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" @@ -43,7 +45,7 @@ type fakeSubjectAccessReviewRegistry struct { var _ subjectaccessreview.Registry = &fakeSubjectAccessReviewRegistry{} -func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { +func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { return nil, nil } @@ -70,7 +72,7 @@ func setup(t *testing.T) (etcd.KV, *etcdtesting.EtcdTestServer, *REST) { func validImageStream() *api.ImageStream { return &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, } @@ -80,12 +82,12 @@ const testImageID = "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a func validNewMappingWithName() *api.ImageStreamMapping { return &api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "somerepo", }, Image: api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: testImageID, Annotations: map[string]string{api.ManagedByOpenShiftAnnotation: "true"}, }, @@ -112,7 +114,7 @@ func TestCreateConflictingNamespace(t *testing.T) { mapping := validNewMappingWithName() mapping.Namespace = "some-value" - ch, err := storage.Create(kapi.WithNamespace(kapi.NewContext(), "legal-name"), mapping) + ch, err := storage.Create(apirequest.WithNamespace(apirequest.NewContext(), "legal-name"), mapping) if ch != nil { t.Error("Expected a nil obj, but we got a value") } @@ -129,7 +131,7 @@ func TestCreateImageStreamNotFoundWithName(t *testing.T) { _, server, storage := setup(t) defer server.Terminate(t) - obj, err := storage.Create(kapi.NewDefaultContext(), validNewMappingWithName()) + obj, err := storage.Create(apirequest.NewDefaultContext(), validNewMappingWithName()) if obj != nil { t.Errorf("Unexpected non-nil obj %#v", obj) } @@ -156,7 +158,7 @@ func TestCreateSuccessWithName(t *testing.T) { defer server.Terminate(t) initialRepo := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "somerepo"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "somerepo"}, } _, err := client.Put( @@ -168,7 +170,7 @@ func TestCreateSuccessWithName(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - ctx := kapi.WithUser(kapi.NewDefaultContext(), &user.DefaultInfo{}) + ctx := apirequest.WithUser(apirequest.NewDefaultContext(), &user.DefaultInfo{}) mapping := validNewMappingWithName() _, err = storage.Create(ctx, mapping) @@ -176,7 +178,7 @@ func TestCreateSuccessWithName(t *testing.T) { t.Fatalf("Unexpected error creating mapping: %#v", err) } - image, err := storage.imageRegistry.GetImage(ctx, testImageID) + image, err := storage.imageRegistry.GetImage(ctx, testImageID, &metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error retrieving image: %#v", err) } @@ -187,7 +189,7 @@ func TestCreateSuccessWithName(t *testing.T) { t.Errorf("Expected %#v, got %#v", mapping.Image, image) } - repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "somerepo") + repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "somerepo", &metav1.GetOptions{}) if err != nil { t.Errorf("Unexpected non-nil err: %#v", err) } @@ -199,7 +201,7 @@ func TestCreateSuccessWithName(t *testing.T) { func TestAddExistingImageWithNewTag(t *testing.T) { imageID := "sha256:8d812da98d6dd61620343f1a5bf6585b34ad6ed16e5c5f7c7216a525d6aeb772" existingRepo := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", Namespace: "default", }, @@ -214,7 +216,7 @@ func TestAddExistingImageWithNewTag(t *testing.T) { } existingImage := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imageID, }, DockerImageReference: "localhost:5000/somens/somerepo@" + imageID, @@ -251,19 +253,19 @@ func TestAddExistingImageWithNewTag(t *testing.T) { } mapping := api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", }, Image: *existingImage, Tag: "latest", } - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() _, err = storage.Create(ctx, &mapping) if err != nil { t.Errorf("Unexpected error creating image stream mapping%v", err) } - image, err := storage.imageRegistry.GetImage(ctx, imageID) + image, err := storage.imageRegistry.GetImage(ctx, imageID, &metav1.GetOptions{}) if err != nil { t.Errorf("Unexpected error retrieving image: %#v", err) } @@ -274,7 +276,7 @@ func TestAddExistingImageWithNewTag(t *testing.T) { t.Errorf("Expected %#v, got %#v", mapping.Image, image) } - repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "somerepo") + repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "somerepo", &metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected non-nil err: %#v", err) } @@ -298,7 +300,7 @@ func TestAddExistingImageWithNewTag(t *testing.T) { func TestAddExistingImageOverridingDockerImageReference(t *testing.T) { imageID := "sha256:8d812da98d6dd61620343f1a5bf6585b34ad6ed16e5c5f7c7216a525d6aeb772" newRepo := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "newrepo", }, @@ -310,7 +312,7 @@ func TestAddExistingImageOverridingDockerImageReference(t *testing.T) { }, } existingImage := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imageID, Annotations: map[string]string{api.ManagedByOpenShiftAnnotation: "true"}, }, @@ -347,19 +349,19 @@ func TestAddExistingImageOverridingDockerImageReference(t *testing.T) { } mapping := api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "newrepo", }, Image: *existingImage, Tag: "latest", } - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() _, err = storage.Create(ctx, &mapping) if err != nil { t.Fatalf("Unexpected error creating mapping: %#v", err) } - image, err := storage.imageRegistry.GetImage(ctx, imageID) + image, err := storage.imageRegistry.GetImage(ctx, imageID, &metav1.GetOptions{}) if err != nil { t.Errorf("Unexpected error retrieving image: %#v", err) } @@ -370,7 +372,7 @@ func TestAddExistingImageOverridingDockerImageReference(t *testing.T) { t.Errorf("Expected %#v, got %#v", mapping.Image, image) } - repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "newrepo") + repo, err := storage.imageStreamRegistry.GetImageStream(ctx, "newrepo", &metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected non-nil err: %#v", err) } @@ -396,7 +398,7 @@ func TestAddExistingImageOverridingDockerImageReference(t *testing.T) { func TestAddExistingImageAndTag(t *testing.T) { existingRepo := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerepo", Namespace: "default", }, @@ -416,7 +418,7 @@ func TestAddExistingImageAndTag(t *testing.T) { } existingImage := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "existingImage", Namespace: "default", }, @@ -458,7 +460,7 @@ func TestAddExistingImageAndTag(t *testing.T) { Image: *existingImage, Tag: "existingTag", } - _, err = storage.Create(kapi.NewDefaultContext(), &mapping) + _, err = storage.Create(apirequest.NewDefaultContext(), &mapping) if !errors.IsInvalid(err) { t.Fatalf("Unexpected non-error creating mapping: %#v", err) } @@ -469,7 +471,7 @@ func TestTrackingTags(t *testing.T) { defer server.Terminate(t) stream := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "stream", }, @@ -529,14 +531,14 @@ func TestTrackingTags(t *testing.T) { } image := &api.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "sha256:503c75e8121369581e5e5abe57b5a3f12db859052b217a8ea16eb86f4b5561a1", }, DockerImageReference: "foo/bar@sha256:503c75e8121369581e5e5abe57b5a3f12db859052b217a8ea16eb86f4b5561a1", } mapping := api.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "stream", }, @@ -544,14 +546,14 @@ func TestTrackingTags(t *testing.T) { Tag: "2.0", } - ctx := kapi.WithUser(kapi.NewDefaultContext(), &user.DefaultInfo{}) + ctx := apirequest.WithUser(apirequest.NewDefaultContext(), &user.DefaultInfo{}) _, err = storage.Create(ctx, &mapping) if err != nil { t.Fatalf("Unexpected error creating mapping: %v", err) } - stream, err = storage.imageStreamRegistry.GetImageStream(kapi.NewDefaultContext(), "stream") + stream, err = storage.imageStreamRegistry.GetImageStream(apirequest.NewDefaultContext(), "stream", &metav1.GetOptions{}) if err != nil { t.Fatalf("error extracting updated stream: %v", err) } @@ -589,24 +591,24 @@ func TestCreateRetryUnrecoverable(t *testing.T) { rest := &REST{ strategy: NewStrategy(testDefaultRegistry), imageRegistry: &fakeImageRegistry{ - createImage: func(ctx kapi.Context, image *api.Image) error { + createImage: func(ctx apirequest.Context, image *api.Image) error { return nil }, }, imageStreamRegistry: &fakeImageStreamRegistry{ - getImageStream: func(ctx kapi.Context, id string) (*api.ImageStream, error) { + getImageStream: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) { return validImageStream(), nil }, - listImageStreams: func(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageStreamList, error) { + listImageStreams: func(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageStreamList, error) { s := validImageStream() return &api.ImageStreamList{Items: []api.ImageStream{*s}}, nil }, - updateImageStreamStatus: func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { + updateImageStreamStatus: func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { return nil, errors.NewServiceUnavailable("unrecoverable error") }, }, } - obj, err := rest.Create(kapi.NewDefaultContext(), validNewMappingWithName()) + obj, err := rest.Create(apirequest.NewDefaultContext(), validNewMappingWithName()) if err == nil { t.Errorf("expected an error") } @@ -623,12 +625,12 @@ func TestCreateRetryConflictNoTagDiff(t *testing.T) { rest := &REST{ strategy: NewStrategy(testDefaultRegistry), imageRegistry: &fakeImageRegistry{ - createImage: func(ctx kapi.Context, image *api.Image) error { + createImage: func(ctx apirequest.Context, image *api.Image) error { return nil }, }, imageStreamRegistry: &fakeImageStreamRegistry{ - getImageStream: func(ctx kapi.Context, id string) (*api.ImageStream, error) { + getImageStream: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) { stream := validImageStream() stream.Status = api.ImageStreamStatus{ Tags: map[string]api.TagEventList{ @@ -637,7 +639,7 @@ func TestCreateRetryConflictNoTagDiff(t *testing.T) { } return stream, nil }, - updateImageStreamStatus: func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { + updateImageStreamStatus: func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { // For the first update call, return a conflict to cause a retry of an // image stream whose tags haven't changed. if firstUpdate { @@ -648,7 +650,7 @@ func TestCreateRetryConflictNoTagDiff(t *testing.T) { }, }, } - obj, err := rest.Create(kapi.NewDefaultContext(), validNewMappingWithName()) + obj, err := rest.Create(apirequest.NewDefaultContext(), validNewMappingWithName()) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -666,12 +668,12 @@ func TestCreateRetryConflictTagDiff(t *testing.T) { rest := &REST{ strategy: NewStrategy(testDefaultRegistry), imageRegistry: &fakeImageRegistry{ - createImage: func(ctx kapi.Context, image *api.Image) error { + createImage: func(ctx apirequest.Context, image *api.Image) error { return nil }, }, imageStreamRegistry: &fakeImageStreamRegistry{ - getImageStream: func(ctx kapi.Context, id string) (*api.ImageStream, error) { + getImageStream: func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) { // For the first get, return a stream with a latest tag pointing to "original" if firstGet { firstGet = false @@ -692,7 +694,7 @@ func TestCreateRetryConflictTagDiff(t *testing.T) { } return stream, nil }, - updateImageStreamStatus: func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { + updateImageStreamStatus: func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { // For the first update, return a conflict so that the stream // get/compare is retried. if firstUpdate { @@ -703,7 +705,7 @@ func TestCreateRetryConflictTagDiff(t *testing.T) { }, }, } - obj, err := rest.Create(kapi.NewDefaultContext(), validNewMappingWithName()) + obj, err := rest.Create(apirequest.NewDefaultContext(), validNewMappingWithName()) if err == nil { t.Fatalf("expected an error") } @@ -716,65 +718,65 @@ func TestCreateRetryConflictTagDiff(t *testing.T) { } type fakeImageRegistry struct { - listImages func(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageList, error) - getImage func(ctx kapi.Context, id string) (*api.Image, error) - createImage func(ctx kapi.Context, image *api.Image) error - deleteImage func(ctx kapi.Context, id string) error - watchImages func(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) - updateImage func(ctx kapi.Context, image *api.Image) (*api.Image, error) + listImages func(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageList, error) + getImage func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.Image, error) + createImage func(ctx apirequest.Context, image *api.Image) error + deleteImage func(ctx apirequest.Context, id string) error + watchImages func(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) + updateImage func(ctx apirequest.Context, image *api.Image) (*api.Image, error) } -func (f *fakeImageRegistry) ListImages(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageList, error) { +func (f *fakeImageRegistry) ListImages(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageList, error) { return f.listImages(ctx, options) } -func (f *fakeImageRegistry) GetImage(ctx kapi.Context, id string) (*api.Image, error) { - return f.getImage(ctx, id) +func (f *fakeImageRegistry) GetImage(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.Image, error) { + return f.getImage(ctx, id, options) } -func (f *fakeImageRegistry) CreateImage(ctx kapi.Context, image *api.Image) error { +func (f *fakeImageRegistry) CreateImage(ctx apirequest.Context, image *api.Image) error { return f.createImage(ctx, image) } -func (f *fakeImageRegistry) DeleteImage(ctx kapi.Context, id string) error { +func (f *fakeImageRegistry) DeleteImage(ctx apirequest.Context, id string) error { return f.deleteImage(ctx, id) } -func (f *fakeImageRegistry) WatchImages(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (f *fakeImageRegistry) WatchImages(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return f.watchImages(ctx, options) } -func (f *fakeImageRegistry) UpdateImage(ctx kapi.Context, image *api.Image) (*api.Image, error) { +func (f *fakeImageRegistry) UpdateImage(ctx apirequest.Context, image *api.Image) (*api.Image, error) { return f.updateImage(ctx, image) } type fakeImageStreamRegistry struct { - listImageStreams func(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageStreamList, error) - getImageStream func(ctx kapi.Context, id string) (*api.ImageStream, error) - createImageStream func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) - updateImageStream func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) - updateImageStreamSpec func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) - updateImageStreamStatus func(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) - deleteImageStream func(ctx kapi.Context, id string) (*unversioned.Status, error) - watchImageStreams func(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + listImageStreams func(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageStreamList, error) + getImageStream func(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) + createImageStream func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) + updateImageStream func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) + updateImageStreamSpec func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) + updateImageStreamStatus func(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) + deleteImageStream func(ctx apirequest.Context, id string) (*metav1.Status, error) + watchImageStreams func(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } -func (f *fakeImageStreamRegistry) ListImageStreams(ctx kapi.Context, options *kapi.ListOptions) (*api.ImageStreamList, error) { +func (f *fakeImageStreamRegistry) ListImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (*api.ImageStreamList, error) { return f.listImageStreams(ctx, options) } -func (f *fakeImageStreamRegistry) GetImageStream(ctx kapi.Context, id string) (*api.ImageStream, error) { - return f.getImageStream(ctx, id) +func (f *fakeImageStreamRegistry) GetImageStream(ctx apirequest.Context, id string, options *metav1.GetOptions) (*api.ImageStream, error) { + return f.getImageStream(ctx, id, options) } -func (f *fakeImageStreamRegistry) CreateImageStream(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { +func (f *fakeImageStreamRegistry) CreateImageStream(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { return f.createImageStream(ctx, repo) } -func (f *fakeImageStreamRegistry) UpdateImageStream(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { +func (f *fakeImageStreamRegistry) UpdateImageStream(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { return f.updateImageStream(ctx, repo) } -func (f *fakeImageStreamRegistry) UpdateImageStreamSpec(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { +func (f *fakeImageStreamRegistry) UpdateImageStreamSpec(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { return f.updateImageStreamSpec(ctx, repo) } -func (f *fakeImageStreamRegistry) UpdateImageStreamStatus(ctx kapi.Context, repo *api.ImageStream) (*api.ImageStream, error) { +func (f *fakeImageStreamRegistry) UpdateImageStreamStatus(ctx apirequest.Context, repo *api.ImageStream) (*api.ImageStream, error) { return f.updateImageStreamStatus(ctx, repo) } -func (f *fakeImageStreamRegistry) DeleteImageStream(ctx kapi.Context, id string) (*unversioned.Status, error) { +func (f *fakeImageStreamRegistry) DeleteImageStream(ctx apirequest.Context, id string) (*metav1.Status, error) { return f.deleteImageStream(ctx, id) } -func (f *fakeImageStreamRegistry) WatchImageStreams(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (f *fakeImageStreamRegistry) WatchImageStreams(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return f.watchImageStreams(ctx, options) } diff --git a/pkg/image/registry/imagestreammapping/strategy.go b/pkg/image/registry/imagestreammapping/strategy.go index c121325b7f37..055f4785bd96 100644 --- a/pkg/image/registry/imagestreammapping/strategy.go +++ b/pkg/image/registry/imagestreammapping/strategy.go @@ -1,9 +1,11 @@ package imagestreammapping import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/validation" @@ -12,7 +14,7 @@ import ( // Strategy implements behavior for image stream mappings. type Strategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator defaultRegistry api.DefaultRegistry } @@ -22,7 +24,7 @@ type Strategy struct { func NewStrategy(defaultRegistry api.DefaultRegistry) Strategy { return Strategy{ kapi.Scheme, - kapi.SimpleNameGenerator, + names.SimpleNameGenerator, defaultRegistry, } } @@ -33,7 +35,7 @@ func (s Strategy) NamespaceScoped() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s Strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s Strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { ism := obj.(*api.ImageStreamMapping) if len(ism.Image.DockerImageReference) == 0 { internalRegistry, ok := s.defaultRegistry.DefaultRegistry() @@ -56,7 +58,7 @@ func (s Strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new ImageStreamMapping. -func (s Strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s Strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { mapping := obj.(*api.ImageStreamMapping) return validation.ValidateImageStreamMapping(mapping) } diff --git a/pkg/image/registry/imagestreamtag/registry.go b/pkg/image/registry/imagestreamtag/registry.go index ef69400714b9..17e2c974779c 100644 --- a/pkg/image/registry/imagestreamtag/registry.go +++ b/pkg/image/registry/imagestreamtag/registry.go @@ -1,17 +1,17 @@ package imagestreamtag import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "github.com/openshift/origin/pkg/image/api" ) // Registry is an interface for things that know how to store ImageStreamTag objects. type Registry interface { - GetImageStreamTag(ctx kapi.Context, nameAndTag string) (*api.ImageStreamTag, error) - DeleteImageStreamTag(ctx kapi.Context, nameAndTag string) (*unversioned.Status, error) + GetImageStreamTag(ctx apirequest.Context, nameAndTag string, options *metav1.GetOptions) (*api.ImageStreamTag, error) + DeleteImageStreamTag(ctx apirequest.Context, nameAndTag string) (*metav1.Status, error) } // Storage is an interface for a standard REST Storage backend @@ -31,18 +31,18 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) GetImageStreamTag(ctx kapi.Context, nameAndTag string) (*api.ImageStreamTag, error) { - obj, err := s.Get(ctx, nameAndTag) +func (s *storage) GetImageStreamTag(ctx apirequest.Context, nameAndTag string, options *metav1.GetOptions) (*api.ImageStreamTag, error) { + obj, err := s.Get(ctx, nameAndTag, options) if err != nil { return nil, err } return obj.(*api.ImageStreamTag), nil } -func (s *storage) DeleteImageStreamTag(ctx kapi.Context, nameAndTag string) (*unversioned.Status, error) { +func (s *storage) DeleteImageStreamTag(ctx apirequest.Context, nameAndTag string) (*metav1.Status, error) { obj, err := s.Delete(ctx, nameAndTag) if err != nil { return nil, err } - return obj.(*unversioned.Status), err + return obj.(*metav1.Status), err } diff --git a/pkg/image/registry/imagestreamtag/rest.go b/pkg/image/registry/imagestreamtag/rest.go index 39ebf8af386f..ffe108b4fb22 100644 --- a/pkg/image/registry/imagestreamtag/rest.go +++ b/pkg/image/registry/imagestreamtag/rest.go @@ -3,11 +3,12 @@ package imagestreamtag import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" oapi "github.com/openshift/origin/pkg/api" imageapi "github.com/openshift/origin/pkg/image/api" @@ -53,13 +54,13 @@ func nameAndTag(id string) (name string, tag string, err error) { return } -func (r *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { +func (r *REST) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { imageStreams, err := r.imageStreamRegistry.ListImageStreams(ctx, options) if err != nil { return nil, err } - matcher := MatchImageStreamTag(oapi.ListOptionsToSelectors(options)) + matcher := MatchImageStreamTag(oapi.InternalListOptionsToSelectors(options)) list := &imageapi.ImageStreamTagList{} for _, currIS := range imageStreams.Items { @@ -86,13 +87,13 @@ func (r *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object } // Get retrieves an image that has been tagged by stream and tag. `id` is of the format :. -func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) { +func (r *REST) Get(ctx apirequest.Context, id string, options *metav1.GetOptions) (runtime.Object, error) { name, tag, err := nameAndTag(id) if err != nil { return nil, err } - imageStream, err := r.imageStreamRegistry.GetImageStream(ctx, name) + imageStream, err := r.imageStreamRegistry.GetImageStream(ctx, name, options) if err != nil { return nil, err } @@ -105,7 +106,7 @@ func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) { return newISTag(tag, imageStream, image, false) } -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { istag, ok := obj.(*imageapi.ImageStreamTag) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("obj is not an ImageStreamTag: %#v", obj)) @@ -113,7 +114,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if err := rest.BeforeCreate(Strategy, ctx, obj); err != nil { return nil, err } - namespace, ok := kapi.NamespaceFrom(ctx) + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("a namespace must be specified to import images") } @@ -123,7 +124,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return nil, fmt.Errorf("%q must be of the form :", istag.Name) } - target, err := r.imageStreamRegistry.GetImageStream(ctx, imageStreamName) + target, err := r.imageStreamRegistry.GetImageStream(ctx, imageStreamName, &metav1.GetOptions{}) if err != nil { if !kapierrors.IsNotFound(err) { return nil, err @@ -131,7 +132,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // try to create the target if it doesn't exist target = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imageStreamName, Namespace: namespace, }, @@ -163,29 +164,29 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return istag, nil } -func (r *REST) Update(ctx kapi.Context, tagName string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *REST) Update(ctx apirequest.Context, tagName string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { name, tag, err := nameAndTag(tagName) if err != nil { return nil, false, err } create := false - imageStream, err := r.imageStreamRegistry.GetImageStream(ctx, name) + imageStream, err := r.imageStreamRegistry.GetImageStream(ctx, name, &metav1.GetOptions{}) if err != nil { if !kapierrors.IsNotFound(err) { return nil, false, err } - namespace, ok := kapi.NamespaceFrom(ctx) + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, false, kapierrors.NewBadRequest("namespace is required on ImageStreamTags") } imageStream = &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, } - kapi.FillObjectMetaSystemFields(ctx, &imageStream.ObjectMeta) + rest.FillObjectMetaSystemFields(ctx, &imageStream.ObjectMeta) create = true } @@ -266,13 +267,13 @@ func (r *REST) Update(ctx kapi.Context, tagName string, objInfo rest.UpdatedObje // Delete removes a tag from a stream. `id` is of the format :. // The associated image that the tag points to is *not* deleted. // The tag history remains intact and is not deleted. -func (r *REST) Delete(ctx kapi.Context, id string) (runtime.Object, error) { +func (r *REST) Delete(ctx apirequest.Context, id string) (runtime.Object, error) { name, tag, err := nameAndTag(id) if err != nil { return nil, err } - stream, err := r.imageStreamRegistry.GetImageStream(ctx, name) + stream, err := r.imageStreamRegistry.GetImageStream(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -299,17 +300,17 @@ func (r *REST) Delete(ctx kapi.Context, id string) (runtime.Object, error) { return nil, fmt.Errorf("cannot remove tag from image stream: %v", err) } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, nil } // imageFor retrieves the most recent image for a tag in a given imageStreem. -func (r *REST) imageFor(ctx kapi.Context, tag string, imageStream *imageapi.ImageStream) (*imageapi.Image, error) { +func (r *REST) imageFor(ctx apirequest.Context, tag string, imageStream *imageapi.ImageStream) (*imageapi.Image, error) { event := imageapi.LatestTaggedImage(imageStream, tag) if event == nil || len(event.Image) == 0 { return nil, kapierrors.NewNotFound(imageapi.Resource("imagestreamtags"), imageapi.JoinImageStreamTag(imageStream.Name, tag)) } - return r.imageRegistry.GetImage(ctx, event.Image) + return r.imageRegistry.GetImage(ctx, event.Image, &metav1.GetOptions{}) } // newISTag initializes an image stream tag from an image stream and image. The allowEmptyEvent will create a tag even @@ -328,7 +329,7 @@ func newISTag(tag string, imageStream *imageapi.ImageStream, image *imageapi.Ima } ist := &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: imageStream.Namespace, Name: istagName, CreationTimestamp: event.Created, diff --git a/pkg/image/registry/imagestreamtag/rest_test.go b/pkg/image/registry/imagestreamtag/rest_test.go index 523ec411b8fb..f6f351784ddf 100644 --- a/pkg/image/registry/imagestreamtag/rest_test.go +++ b/pkg/image/registry/imagestreamtag/rest_test.go @@ -8,15 +8,16 @@ import ( etcd "github.com/coreos/etcd/clientv3" "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/etcd/etcdtest" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage/etcd/etcdtest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/registry/subjectaccessreview" @@ -38,7 +39,7 @@ type fakeSubjectAccessReviewRegistry struct { var _ subjectaccessreview.Registry = &fakeSubjectAccessReviewRegistry{} -func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { +func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx apirequest.Context, subjectAccessReview *authorizationapi.SubjectAccessReview) (*authorizationapi.SubjectAccessReviewResponse, error) { return nil, nil } @@ -85,7 +86,7 @@ func setup(t *testing.T) (etcd.KV, *etcdtesting.EtcdTestServer, *REST) { } type statusError interface { - Status() unversioned.Status + Status() metav1.Status } func TestGetImageStreamTag(t *testing.T) { @@ -97,9 +98,9 @@ func TestGetImageStreamTag(t *testing.T) { errorTargetID string }{ "happy path": { - image: &api.Image{ObjectMeta: kapi.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz"}, + image: &api.Image{ObjectMeta: metav1.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz"}, repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "test", }, @@ -118,7 +119,7 @@ func TestGetImageStreamTag(t *testing.T) { "latest": { Items: []api.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: "test", Image: "10", }, @@ -130,7 +131,7 @@ func TestGetImageStreamTag(t *testing.T) { }, "image = ''": { repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Status: api.ImageStreamStatus{ Tags: map[string]api.TagEventList{ "latest": {Items: []api.TagEvent{{DockerImageReference: "test", Image: ""}}}, @@ -156,9 +157,9 @@ func TestGetImageStreamTag(t *testing.T) { errorTargetID: "test", }, "missing tag": { - image: &api.Image{ObjectMeta: kapi.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz"}, + image: &api.Image{ObjectMeta: metav1.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz"}, repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Status: api.ImageStreamStatus{ Tags: map[string]api.TagEventList{ "other": {Items: []api.TagEvent{{DockerImageReference: "test", Image: "10"}}}, @@ -190,7 +191,7 @@ func TestGetImageStreamTag(t *testing.T) { ) } - obj, err := storage.Get(kapi.NewDefaultContext(), "test:latest") + obj, err := storage.Get(apirequest.NewDefaultContext(), "test:latest", &metav1.GetOptions{}) gotErr := err != nil if e, a := testCase.expectError, gotErr; e != a { t.Errorf("%s: Expected err=%v: got %v: %v", name, e, a, err) @@ -217,7 +218,7 @@ func TestGetImageStreamTag(t *testing.T) { if e, a := map[string]string{"size": "large", "color": "blue"}, actual.Image.Annotations; !reflect.DeepEqual(e, a) { t.Errorf("%s: annotations: expected %v, got %v", name, e, a) } - if e, a := unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), actual.CreationTimestamp; !a.Equal(e) { + if e, a := metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), actual.CreationTimestamp; !a.Equal(e) { t.Errorf("%s: timestamp: expected %v, got %v", name, e, a) } } @@ -227,9 +228,9 @@ func TestGetImageStreamTag(t *testing.T) { func TestGetImageStreamTagDIR(t *testing.T) { expDockerImageReference := "foo/bar/baz:latest" - image := &api.Image{ObjectMeta: kapi.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz:different"} + image := &api.Image{ObjectMeta: metav1.ObjectMeta{Name: "10"}, DockerImageReference: "foo/bar/baz:different"} repo := &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "test", }, @@ -238,7 +239,7 @@ func TestGetImageStreamTagDIR(t *testing.T) { "latest": { Items: []api.TagEvent{ { - Created: unversioned.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), + Created: metav1.Date(2015, 3, 24, 9, 38, 0, 0, time.UTC), DockerImageReference: expDockerImageReference, Image: "10", }, @@ -260,7 +261,7 @@ func TestGetImageStreamTagDIR(t *testing.T) { etcdtest.AddPrefix("/imagestreams/default/test"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), repo), ) - obj, err := storage.Get(kapi.NewDefaultContext(), "test:latest") + obj, err := storage.Get(apirequest.NewDefaultContext(), "test:latest", &metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -280,7 +281,7 @@ func TestDeleteImageStreamTag(t *testing.T) { }, "nil tag map": { repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "test", }, @@ -289,7 +290,7 @@ func TestDeleteImageStreamTag(t *testing.T) { }, "missing tag": { repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "test", }, @@ -308,7 +309,7 @@ func TestDeleteImageStreamTag(t *testing.T) { }, "happy path": { repo: &api.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", Name: "test", Generation: 2, @@ -387,7 +388,7 @@ func TestDeleteImageStreamTag(t *testing.T) { ) } - ctx := kapi.WithUser(kapi.NewDefaultContext(), &fakeUser{}) + ctx := apirequest.WithUser(apirequest.NewDefaultContext(), &fakeUser{}) obj, err := storage.Delete(ctx, "test:latest") gotError := err != nil if e, a := testCase.expectError, gotError; e != a { @@ -400,12 +401,12 @@ func TestDeleteImageStreamTag(t *testing.T) { if obj == nil { t.Fatalf("%s: unexpected nil response", name) } - expectedStatus := &unversioned.Status{Status: unversioned.StatusSuccess} + expectedStatus := &metav1.Status{Status: metav1.StatusSuccess} if e, a := expectedStatus, obj; !reflect.DeepEqual(e, a) { t.Errorf("%s:\nexpect=%#v\nactual=%#v", name, e, a) } - updatedRepo, err := storage.imageStreamRegistry.GetImageStream(kapi.NewDefaultContext(), "test") + updatedRepo, err := storage.imageStreamRegistry.GetImageStream(apirequest.NewDefaultContext(), "test", &metav1.GetOptions{}) if err != nil { t.Fatalf("%s: error retrieving updated repo: %s", name, err) } diff --git a/pkg/image/registry/imagestreamtag/strategy.go b/pkg/image/registry/imagestreamtag/strategy.go index 60ad5182958f..f88a31ee0e20 100644 --- a/pkg/image/registry/imagestreamtag/strategy.go +++ b/pkg/image/registry/imagestreamtag/strategy.go @@ -3,13 +3,14 @@ package imagestreamtag import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/registry/generic" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/image/api" "github.com/openshift/origin/pkg/image/api/validation" @@ -28,7 +29,7 @@ func (s *strategy) NamespaceScoped() bool { return true } -func (s *strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s *strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { newIST := obj.(*api.ImageStreamTag) newIST.Conditions = nil @@ -39,7 +40,7 @@ func (s *strategy) GenerateName(base string) string { return base } -func (s *strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s *strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { istag := obj.(*api.ImageStreamTag) return validation.ValidateImageStreamTag(istag) @@ -57,7 +58,7 @@ func (*strategy) AllowUnconditionalUpdate() bool { func (strategy) Canonicalize(obj runtime.Object) { } -func (s *strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s *strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newIST := obj.(*api.ImageStreamTag) oldIST := old.(*api.ImageStreamTag) @@ -71,7 +72,7 @@ func (s *strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { newIST.Image = oldIST.Image } -func (s *strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s *strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { newIST := obj.(*api.ImageStreamTag) oldIST := old.(*api.ImageStreamTag) diff --git a/pkg/image/util/resolve_test.go b/pkg/image/util/resolve_test.go index c332f4ef832d..4e4accdf9df4 100644 --- a/pkg/image/util/resolve_test.go +++ b/pkg/image/util/resolve_test.go @@ -3,7 +3,7 @@ package util import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/client/testclient" imageapi "github.com/openshift/origin/pkg/image/api" @@ -11,7 +11,7 @@ import ( func image(pullSpec string) *imageapi.Image { return &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"}, + ObjectMeta: metav1.ObjectMeta{Name: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"}, DockerImageReference: pullSpec, } } @@ -19,7 +19,7 @@ func image(pullSpec string) *imageapi.Image { func isimage(name, pullSpec string) *imageapi.ImageStreamImage { i := image(pullSpec) return &imageapi.ImageStreamImage{ - ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: "default"}, + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: "default"}, Image: *i, } } @@ -27,7 +27,7 @@ func isimage(name, pullSpec string) *imageapi.ImageStreamImage { func istag(name, namespace, pullSpec string) *imageapi.ImageStreamTag { i := image(pullSpec) return &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: namespace}, + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, Image: *i, } } diff --git a/pkg/ingress/admission/api/install/install.go b/pkg/ingress/admission/api/install/install.go index 0c42f21dacac..6ba9cf768cb5 100644 --- a/pkg/ingress/admission/api/install/install.go +++ b/pkg/ingress/admission/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/ingress/admission/api" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/scheduler/admission/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most perferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we hae moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/ingress/admission/api/register.go b/pkg/ingress/admission/api/register.go index 71f8defda1e5..2aa6ee809d92 100644 --- a/pkg/ingress/admission/api/register.go +++ b/pkg/ingress/admission/api/register.go @@ -1,20 +1,20 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -30,4 +30,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *IngressAdmissionConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *IngressAdmissionConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/ingress/admission/api/types.go b/pkg/ingress/admission/api/types.go index cf7437b5026d..1a9132e16ea2 100644 --- a/pkg/ingress/admission/api/types.go +++ b/pkg/ingress/admission/api/types.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // IngressAdmissionConfig is the configuration for the the ingress @@ -10,7 +10,7 @@ import ( // *NOTE* This has security implications in the router when handling // ingress objects type IngressAdmissionConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // AllowHostnameChanges when false or unset openshift does not // allow changing or adding hostnames to ingress objects. If set diff --git a/pkg/ingress/admission/api/v1/defaults_test.go b/pkg/ingress/admission/api/v1/defaults_test.go index 5894e9383f58..c55b4463638d 100644 --- a/pkg/ingress/admission/api/v1/defaults_test.go +++ b/pkg/ingress/admission/api/v1/defaults_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" configapi "github.com/openshift/origin/pkg/cmd/server/api" v1 "github.com/openshift/origin/pkg/cmd/server/api/v1" diff --git a/pkg/ingress/admission/api/v1/register.go b/pkg/ingress/admission/api/v1/register.go index 95f290113a23..e8dc39f3206f 100644 --- a/pkg/ingress/admission/api/v1/register.go +++ b/pkg/ingress/admission/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -20,4 +20,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *IngressAdmissionConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *IngressAdmissionConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/ingress/admission/api/v1/types.go b/pkg/ingress/admission/api/v1/types.go index 2d98534c3649..a802753924ac 100644 --- a/pkg/ingress/admission/api/v1/types.go +++ b/pkg/ingress/admission/api/v1/types.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // IngressAdmissionConfig is the configuration for the the ingress @@ -10,7 +10,7 @@ import ( // *NOTE* This has security implications in the router when handling // ingress objects type IngressAdmissionConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // AllowHostnameChanges when false or unset openshift does not // allow changing or adding hostnames to ingress objects. If set diff --git a/pkg/ingress/admission/ingress_admission.go b/pkg/ingress/admission/ingress_admission.go index c6c88920b190..22815178f612 100644 --- a/pkg/ingress/admission/ingress_admission.go +++ b/pkg/ingress/admission/ingress_admission.go @@ -7,10 +7,9 @@ import ( "io" "reflect" - "k8s.io/client-go/pkg/util/sets" - kadmission "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/admission" kextensions "k8s.io/kubernetes/pkg/apis/extensions" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" configlatest "github.com/openshift/origin/pkg/cmd/server/api/latest" "github.com/openshift/origin/pkg/ingress/admission/api" @@ -31,13 +30,13 @@ func init() { } type ingressAdmission struct { - *kadmission.Handler + *admission.Handler config *api.IngressAdmissionConfig } func NewIngressAdmission(config *api.IngressAdmissionConfig) *ingressAdmission { return &ingressAdmission{ - Handler: kadmission.NewHandler(kadmission.Create, kadmission.Update), + Handler: admission.NewHandler(admission.Create, admission.Update), config: config, } } @@ -61,8 +60,8 @@ func readConfig(reader io.Reader) (*api.IngressAdmissionConfig, error) { return config, nil } -func (r *ingressAdmission) Admit(a kadmission.Attributes) error { - if a.GetResource().GroupResource() == kextensions.Resource("ingresses") && a.GetOperation() == kadmission.Update { +func (r *ingressAdmission) Admit(a admission.Attributes) error { + if a.GetResource().GroupResource() == kextensions.Resource("ingresses") && a.GetOperation() == admission.Update { if r.config == nil || r.config.AllowHostnameChanges == false { oldIngress, ok := a.GetOldObject().(*kextensions.Ingress) if !ok { diff --git a/pkg/ingress/admission/ingress_admission_test.go b/pkg/ingress/admission/ingress_admission_test.go index cf7068793250..bfa88f674881 100644 --- a/pkg/ingress/admission/ingress_admission_test.go +++ b/pkg/ingress/admission/ingress_admission_test.go @@ -3,8 +3,8 @@ package admission import ( "testing" - "k8s.io/kubernetes/pkg/admission" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/admission" kextensions "k8s.io/kubernetes/pkg/apis/extensions" "github.com/openshift/origin/pkg/ingress/admission/api" @@ -78,7 +78,7 @@ func TestAdmission(t *testing.T) { for _, test := range tests { if len(test.newHost) > 0 { newIngress = &kextensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: kextensions.IngressSpec{ Rules: []kextensions.IngressRule{ { @@ -90,7 +90,7 @@ func TestAdmission(t *testing.T) { } else { //Used to test deleting a hostname newIngress = &kextensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, } } handler := NewIngressAdmission(test.config) @@ -98,7 +98,7 @@ func TestAdmission(t *testing.T) { if len(test.oldHost) > 0 { //Provides the previous state of an ingress object oldIngress = &kextensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: kextensions.IngressSpec{ Rules: []kextensions.IngressRule{ { diff --git a/pkg/ipfailover/keepalived/generator.go b/pkg/ipfailover/keepalived/generator.go index adb91459a579..17f765786cc6 100644 --- a/pkg/ipfailover/keepalived/generator.go +++ b/pkg/ipfailover/keepalived/generator.go @@ -4,6 +4,7 @@ import ( "fmt" "strconv" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" dapi "github.com/openshift/origin/pkg/deploy/api" @@ -138,7 +139,7 @@ func GenerateDeploymentConfig(name string, options *ipfailover.IPFailoverConfigC "ipfailover": name, } podTemplate := &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: labels, }, Spec: kapi.PodSpec{ @@ -152,7 +153,7 @@ func GenerateDeploymentConfig(name string, options *ipfailover.IPFailoverConfigC }, } return &dapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: labels, }, diff --git a/pkg/ipfailover/keepalived/plugin.go b/pkg/ipfailover/keepalived/plugin.go index bc07cee01772..fb86e584f743 100644 --- a/pkg/ipfailover/keepalived/plugin.go +++ b/pkg/ipfailover/keepalived/plugin.go @@ -5,9 +5,10 @@ import ( "strings" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/cmd/util/clientcmd" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -94,7 +95,7 @@ func (p *KeepalivedPlugin) GetDeploymentConfig() (*deployapi.DeploymentConfig, e return nil, fmt.Errorf("error getting namespace: %v", err) } - dc, err := osClient.DeploymentConfigs(namespace).Get(p.Name) + dc, err := osClient.DeploymentConfigs(namespace).Get(p.Name, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { glog.V(4).Infof("KeepAlived IP Failover DeploymentConfig: %s not found", p.Name) diff --git a/pkg/oauth/api/fields.go b/pkg/oauth/api/fields.go index 1b44ee353cf4..6ef469ca53b2 100644 --- a/pkg/oauth/api/fields.go +++ b/pkg/oauth/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // OAuthAccessTokenToSelectableFields returns a label set that represents the object func OAuthAccessTokenToSelectableFields(obj *OAuthAccessToken) fields.Set { diff --git a/pkg/oauth/api/install/apigroup.go b/pkg/oauth/api/install/apigroup.go index 030d7f3907d4..631ef45f6917 100644 --- a/pkg/oauth/api/install/apigroup.go +++ b/pkg/oauth/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/api/v1" diff --git a/pkg/oauth/api/install/install.go b/pkg/oauth/api/install/install.go index 5c1eac2708de..36101d385443 100644 --- a/pkg/oauth/api/install/install.go +++ b/pkg/oauth/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/oauth/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -51,7 +50,7 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("OAuthAccessToken", "OAuthAuthorizeToken", "OAuthClient", "OAuthClientAuthorization") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/oauth/api/register.go b/pkg/oauth/api/register.go index 262bb2994ed4..45a9138b3f9b 100644 --- a/pkg/oauth/api/register.go +++ b/pkg/oauth/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +25,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,12 +35,12 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -71,10 +71,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/oauth/api/types.go b/pkg/oauth/api/types.go index 109f6501c4b0..7431ec0530a0 100644 --- a/pkg/oauth/api/types.go +++ b/pkg/oauth/api/types.go @@ -1,13 +1,12 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) type OAuthAccessToken struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // ClientName references the client that created this token. ClientName string @@ -35,8 +34,8 @@ type OAuthAccessToken struct { } type OAuthAuthorizeToken struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // ClientName references the client that created this token. ClientName string @@ -70,8 +69,8 @@ type OAuthAuthorizeToken struct { // +genclient=true type OAuthClient struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Secret is the unique secret associated with a client Secret string @@ -127,8 +126,8 @@ type ClusterRoleScopeRestriction struct { } type OAuthClientAuthorization struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // ClientName references the client that created this authorization ClientName string @@ -145,32 +144,32 @@ type OAuthClientAuthorization struct { } type OAuthAccessTokenList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []OAuthAccessToken } type OAuthAuthorizeTokenList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []OAuthAuthorizeToken } type OAuthClientList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []OAuthClient } type OAuthClientAuthorizationList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []OAuthClientAuthorization } type OAuthRedirectReference struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Reference RedirectReference } diff --git a/pkg/oauth/api/v1/conversion.go b/pkg/oauth/api/v1/conversion.go index 031e670c4d53..30949a40b872 100644 --- a/pkg/oauth/api/v1/conversion.go +++ b/pkg/oauth/api/v1/conversion.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/oauth/api" diff --git a/pkg/oauth/api/v1/defaults.go b/pkg/oauth/api/v1/defaults.go index 32401aed76d7..a5802c3b297d 100644 --- a/pkg/oauth/api/v1/defaults.go +++ b/pkg/oauth/api/v1/defaults.go @@ -1,6 +1,6 @@ package v1 -import "k8s.io/kubernetes/pkg/runtime" +import "k8s.io/apimachinery/pkg/runtime" func SetDefaults_OAuthAuthorizeToken(obj *OAuthAuthorizeToken) { if len(obj.CodeChallenge) > 0 && len(obj.CodeChallengeMethod) == 0 { diff --git a/pkg/oauth/api/v1/register.go b/pkg/oauth/api/v1/register.go index 49c6b0aa467e..65c2073f9d22 100644 --- a/pkg/oauth/api/v1/register.go +++ b/pkg/oauth/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -39,10 +39,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/oauth/api/v1/types.go b/pkg/oauth/api/v1/types.go index d94627f63f22..ac6993a10774 100644 --- a/pkg/oauth/api/v1/types.go +++ b/pkg/oauth/api/v1/types.go @@ -1,15 +1,14 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - kapi "k8s.io/kubernetes/pkg/api/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // OAuthAccessToken describes an OAuth access token type OAuthAccessToken struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // ClientName references the client that created this token. ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` @@ -38,9 +37,9 @@ type OAuthAccessToken struct { // OAuthAuthorizeToken describes an OAuth authorization token type OAuthAuthorizeToken struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // ClientName references the client that created this token. ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` @@ -75,9 +74,9 @@ type OAuthAuthorizeToken struct { // OAuthClient describes an OAuth client type OAuthClient struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Secret is the unique secret associated with a client Secret string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` @@ -137,9 +136,9 @@ type ClusterRoleScopeRestriction struct { // OAuthClientAuthorization describes an authorization created by an OAuth client type OAuthClientAuthorization struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // ClientName references the client that created this authorization ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` @@ -157,45 +156,45 @@ type OAuthClientAuthorization struct { // OAuthAccessTokenList is a collection of OAuth access tokens type OAuthAccessTokenList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of OAuth access tokens Items []OAuthAccessToken `json:"items" protobuf:"bytes,2,rep,name=items"` } // OAuthAuthorizeTokenList is a collection of OAuth authorization tokens type OAuthAuthorizeTokenList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of OAuth authorization tokens Items []OAuthAuthorizeToken `json:"items" protobuf:"bytes,2,rep,name=items"` } // OAuthClientList is a collection of OAuth clients type OAuthClientList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of OAuth clients Items []OAuthClient `json:"items" protobuf:"bytes,2,rep,name=items"` } // OAuthClientAuthorizationList is a collection of OAuth client authorizations type OAuthClientAuthorizationList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of OAuth client authorizations Items []OAuthClientAuthorization `json:"items" protobuf:"bytes,2,rep,name=items"` } // OAuthRedirectReference is a reference to an OAuth redirect object. type OAuthRedirectReference struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // The reference to an redirect object in the current namespace. Reference RedirectReference `json:"reference,omitempty" protobuf:"bytes,2,opt,name=reference"` } diff --git a/pkg/oauth/api/v1/zz_generated.conversion.go b/pkg/oauth/api/v1/zz_generated.conversion.go index 853abed227d5..362bae6ffc22 100644 --- a/pkg/oauth/api/v1/zz_generated.conversion.go +++ b/pkg/oauth/api/v1/zz_generated.conversion.go @@ -5,11 +5,12 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/oauth/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { diff --git a/pkg/oauth/api/v1/zz_generated.deepcopy.go b/pkg/oauth/api/v1/zz_generated.deepcopy.go index c1e0a8bb4b6c..b3f4e346c881 100644 --- a/pkg/oauth/api/v1/zz_generated.deepcopy.go +++ b/pkg/oauth/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/oauth/api/v1/zz_generated.defaults.go b/pkg/oauth/api/v1/zz_generated.defaults.go index f93713b7f559..139ddc8e4afe 100644 --- a/pkg/oauth/api/v1/zz_generated.defaults.go +++ b/pkg/oauth/api/v1/zz_generated.defaults.go @@ -5,7 +5,7 @@ package v1 import ( - runtime "k8s.io/kubernetes/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/oauth/api/validation/validation.go b/pkg/oauth/api/validation/validation.go index bffa743696c5..9391a78bc430 100644 --- a/pkg/oauth/api/validation/validation.go +++ b/pkg/oauth/api/validation/validation.go @@ -6,10 +6,10 @@ import ( "regexp" "strings" + "k8s.io/apimachinery/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/serviceaccount" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/validation/field" authorizerscopes "github.com/openshift/origin/pkg/authorization/authorizer/scope" "github.com/openshift/origin/pkg/oauth/api" diff --git a/pkg/oauth/api/validation/validation_test.go b/pkg/oauth/api/validation/validation_test.go index 4eb3722e3a81..2f953de0c16d 100644 --- a/pkg/oauth/api/validation/validation_test.go +++ b/pkg/oauth/api/validation/validation_test.go @@ -3,8 +3,9 @@ package validation import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation/field" oapi "github.com/openshift/origin/pkg/oauth/api" ) @@ -88,7 +89,7 @@ func TestValidateRedirectURI(t *testing.T) { func TestValidateClientAuthorization(t *testing.T) { errs := ValidateClientAuthorization(&oapi.OAuthClientAuthorization{ - ObjectMeta: api.ObjectMeta{Name: "myusername:myclientname"}, + ObjectMeta: metav1.ObjectMeta{Name: "myusername:myclientname"}, ClientName: "myclientname", UserName: "myusername", UserUID: "myuseruid", @@ -113,7 +114,7 @@ func TestValidateClientAuthorization(t *testing.T) { }, "invalid name": { A: oapi.OAuthClientAuthorization{ - ObjectMeta: api.ObjectMeta{Name: "anotheruser:anotherclient"}, + ObjectMeta: metav1.ObjectMeta{Name: "anotheruser:anotherclient"}, ClientName: "myclientname", UserName: "myusername", UserUID: "myuseruid", @@ -123,7 +124,7 @@ func TestValidateClientAuthorization(t *testing.T) { }, "disallowed namespace": { A: oapi.OAuthClientAuthorization{ - ObjectMeta: api.ObjectMeta{Name: "myusername:myclientname", Namespace: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "myusername:myclientname", Namespace: "foo"}, ClientName: "myclientname", UserName: "myusername", UserUID: "myuseruid", @@ -133,7 +134,7 @@ func TestValidateClientAuthorization(t *testing.T) { }, "no scope handler": { A: oapi.OAuthClientAuthorization{ - ObjectMeta: api.ObjectMeta{Name: "myusername:myclientname"}, + ObjectMeta: metav1.ObjectMeta{Name: "myusername:myclientname"}, ClientName: "myclientname", UserName: "myusername", UserUID: "myuseruid", @@ -144,7 +145,7 @@ func TestValidateClientAuthorization(t *testing.T) { }, "bad scope": { A: oapi.OAuthClientAuthorization{ - ObjectMeta: api.ObjectMeta{Name: "myusername:myclientname"}, + ObjectMeta: metav1.ObjectMeta{Name: "myusername:myclientname"}, ClientName: "myclientname", UserName: "myusername", UserUID: "myuseruid", @@ -173,7 +174,7 @@ func TestValidateClientAuthorization(t *testing.T) { func TestValidateClient(t *testing.T) { errs := ValidateClient(&oapi.OAuthClient{ - ObjectMeta: api.ObjectMeta{Name: "client-name"}, + ObjectMeta: metav1.ObjectMeta{Name: "client-name"}, }) if len(errs) != 0 { t.Errorf("expected success: %v", errs) @@ -190,13 +191,13 @@ func TestValidateClient(t *testing.T) { F: "metadata.name", }, "disallowed namespace": { - Client: oapi.OAuthClient{ObjectMeta: api.ObjectMeta{Name: "name", Namespace: "foo"}}, + Client: oapi.OAuthClient{ObjectMeta: metav1.ObjectMeta{Name: "name", Namespace: "foo"}}, T: field.ErrorTypeForbidden, F: "metadata.namespace", }, "literal must have value": { Client: oapi.OAuthClient{ - ObjectMeta: api.ObjectMeta{Name: "client-name"}, + ObjectMeta: metav1.ObjectMeta{Name: "client-name"}, ScopeRestrictions: []oapi.ScopeRestriction{{ExactValues: []string{""}}}, }, T: field.ErrorTypeInvalid, @@ -204,7 +205,7 @@ func TestValidateClient(t *testing.T) { }, "must have role names": { Client: oapi.OAuthClient{ - ObjectMeta: api.ObjectMeta{Name: "client-name"}, + ObjectMeta: metav1.ObjectMeta{Name: "client-name"}, ScopeRestrictions: []oapi.ScopeRestriction{ { ClusterRole: &oapi.ClusterRoleScopeRestriction{Namespaces: []string{"b"}}, @@ -216,7 +217,7 @@ func TestValidateClient(t *testing.T) { }, "must have namespaces": { Client: oapi.OAuthClient{ - ObjectMeta: api.ObjectMeta{Name: "client-name"}, + ObjectMeta: metav1.ObjectMeta{Name: "client-name"}, ScopeRestrictions: []oapi.ScopeRestriction{ { ClusterRole: &oapi.ClusterRoleScopeRestriction{RoleNames: []string{"a"}}, @@ -246,7 +247,7 @@ func TestValidateClient(t *testing.T) { func TestValidateAccessTokens(t *testing.T) { errs := ValidateAccessToken(&oapi.OAuthAccessToken{ - ObjectMeta: api.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -271,7 +272,7 @@ func TestValidateAccessTokens(t *testing.T) { }, "disallowed namespace": { Token: oapi.OAuthAccessToken{ - ObjectMeta: api.ObjectMeta{Name: "accessTokenNameWithMinimumLength", Namespace: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "accessTokenNameWithMinimumLength", Namespace: "foo"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -281,7 +282,7 @@ func TestValidateAccessTokens(t *testing.T) { }, "no scope handler": { Token: oapi.OAuthAccessToken{ - ObjectMeta: api.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -292,7 +293,7 @@ func TestValidateAccessTokens(t *testing.T) { }, "bad scope": { Token: oapi.OAuthAccessToken{ - ObjectMeta: api.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "accessTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -321,7 +322,7 @@ func TestValidateAccessTokens(t *testing.T) { func TestValidateAuthorizeTokens(t *testing.T) { errs := ValidateAuthorizeToken(&oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -347,7 +348,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "zero-length client name": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, UserName: "myusername", UserUID: "myuseruid", }, @@ -356,7 +357,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "zero-length user name": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserUID: "myuseruid", }, @@ -365,7 +366,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "zero-length user uid": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", }, @@ -374,7 +375,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "disallowed namespace": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength", Namespace: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength", Namespace: "foo"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -384,7 +385,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "no scope handler": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -395,7 +396,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "bad scope": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -406,7 +407,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { }, "illegal character": { Token: oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -435,7 +436,7 @@ func TestValidateAuthorizeTokens(t *testing.T) { func TestValidateAccessTokensUpdate(t *testing.T) { valid := &oapi.OAuthAccessToken{ - ObjectMeta: api.ObjectMeta{Name: "accessTokenNameWithMinimumLength", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "accessTokenNameWithMinimumLength", ResourceVersion: "1"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", @@ -490,7 +491,7 @@ func TestValidateAccessTokensUpdate(t *testing.T) { func TestValidateAuthorizeTokensUpdate(t *testing.T) { valid := &oapi.OAuthAuthorizeToken{ - ObjectMeta: api.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "authorizeTokenNameWithMinimumLength", ResourceVersion: "1"}, ClientName: "myclient", UserName: "myusername", UserUID: "myuseruid", diff --git a/pkg/oauth/api/zz_generated.deepcopy.go b/pkg/oauth/api/zz_generated.deepcopy.go index 5850e1bea7c4..4f55e8a291c4 100644 --- a/pkg/oauth/api/zz_generated.deepcopy.go +++ b/pkg/oauth/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/oauth/client/clientset_generated/internalclientset/clientset.go b/pkg/oauth/client/clientset_generated/internalclientset/clientset.go index c47d3b46da22..cf6b99e1b78d 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/oauth/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/oauth/client/clientset_generated/internalclientset/fake/clientset_generated.go index aa0819ac3cde..b84417cfdc25 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/oauth/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index 982e94580f7c..9945c1c4818d 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { OAuthClientsGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index 6312c479a64c..e8aab32a992f 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_oauthclient.go b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_oauthclient.go index 3b5961db0330..33161c42b20e 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_oauthclient.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_oauthclient.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/oauth/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeOAuthClients implements OAuthClientInterface @@ -15,7 +15,7 @@ type FakeOAuthClients struct { ns string } -var oauthclientsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthclients"} +var oauthclientsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthclients"} func (c *FakeOAuthClients) Create(oAuthClient *api.OAuthClient) (result *api.OAuthClient, err error) { obj, err := c.Fake. diff --git a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/oauthclient.go b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/oauthclient.go index b57b93a51655..d71d1a9e3600 100644 --- a/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/oauthclient.go +++ b/pkg/oauth/client/clientset_generated/internalclientset/typed/core/internalversion/oauthclient.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/oauth/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // OAuthClientsGetter has a method to return a OAuthClientInterface. diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/clientset.go b/pkg/oauth/client/clientset_generated/release_v1_5/clientset.go index 3209a3067d36..a93ae453c596 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/oauth/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 9400ba8c7a90..bcde4954c9df 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/oauth/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 9adfadfc0b28..54db3b89dbfe 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { OAuthClientsGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 5eae9ec8ebd9..8d0c490f2046 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_oauthclient.go b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_oauthclient.go index 701731d842ee..d855cab74d25 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_oauthclient.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_oauthclient.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/oauth/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeOAuthClients implements OAuthClientInterface @@ -16,7 +16,7 @@ type FakeOAuthClients struct { ns string } -var oauthclientsResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "oauthclients"} +var oauthclientsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "oauthclients"} func (c *FakeOAuthClients) Create(oAuthClient *v1.OAuthClient) (result *v1.OAuthClient, err error) { obj, err := c.Fake. diff --git a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/oauthclient.go b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/oauthclient.go index 97ccca23de63..aa23211fce0a 100644 --- a/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/oauthclient.go +++ b/pkg/oauth/client/clientset_generated/release_v1_5/typed/core/v1/oauthclient.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/oauth/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // OAuthClientsGetter has a method to return a OAuthClientInterface. diff --git a/pkg/oauth/registry/oauthaccesstoken/etcd/etcd.go b/pkg/oauth/registry/oauthaccesstoken/etcd/etcd.go index 18e58e330102..f2af1cd569bf 100644 --- a/pkg/oauth/registry/oauthaccesstoken/etcd/etcd.go +++ b/pkg/oauth/registry/oauthaccesstoken/etcd/etcd.go @@ -3,10 +3,10 @@ package etcd import ( "time" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthaccesstoken" diff --git a/pkg/oauth/registry/oauthaccesstoken/registry.go b/pkg/oauth/registry/oauthaccesstoken/registry.go index 993fdda26264..6f2301c6f572 100644 --- a/pkg/oauth/registry/oauthaccesstoken/registry.go +++ b/pkg/oauth/registry/oauthaccesstoken/registry.go @@ -1,8 +1,10 @@ package oauthaccesstoken import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "github.com/openshift/origin/pkg/oauth/api" ) @@ -10,13 +12,13 @@ import ( // Registry is an interface for things that know how to store AccessToken objects. type Registry interface { // ListAccessTokens obtains a list of access tokens that match a selector. - ListAccessTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAccessTokenList, error) + ListAccessTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAccessTokenList, error) // GetAccessToken retrieves a specific access token. - GetAccessToken(ctx kapi.Context, name string) (*api.OAuthAccessToken, error) + GetAccessToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAccessToken, error) // CreateAccessToken creates a new access token. - CreateAccessToken(ctx kapi.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) + CreateAccessToken(ctx apirequest.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) // DeleteAccessToken deletes an access token. - DeleteAccessToken(ctx kapi.Context, name string) error + DeleteAccessToken(ctx apirequest.Context, name string) error } // Storage is an interface for a standard REST Storage backend @@ -38,7 +40,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListAccessTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAccessTokenList, error) { +func (s *storage) ListAccessTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAccessTokenList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -46,15 +48,15 @@ func (s *storage) ListAccessTokens(ctx kapi.Context, options *kapi.ListOptions) return obj.(*api.OAuthAccessTokenList), nil } -func (s *storage) GetAccessToken(ctx kapi.Context, name string) (*api.OAuthAccessToken, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetAccessToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAccessToken, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.OAuthAccessToken), nil } -func (s *storage) CreateAccessToken(ctx kapi.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) { +func (s *storage) CreateAccessToken(ctx apirequest.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) { obj, err := s.Create(ctx, token) if err != nil { return nil, err @@ -62,8 +64,8 @@ func (s *storage) CreateAccessToken(ctx kapi.Context, token *api.OAuthAccessToke return obj.(*api.OAuthAccessToken), nil } -func (s *storage) DeleteAccessToken(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteAccessToken(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) if err != nil { return err } diff --git a/pkg/oauth/registry/oauthaccesstoken/strategy.go b/pkg/oauth/registry/oauthaccesstoken/strategy.go index 50d9a139b370..da136816e47e 100644 --- a/pkg/oauth/registry/oauthaccesstoken/strategy.go +++ b/pkg/oauth/registry/oauthaccesstoken/strategy.go @@ -3,13 +3,15 @@ package oauthaccesstoken import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" "github.com/openshift/origin/pkg/oauth/api" @@ -31,7 +33,7 @@ func NewStrategy(clientGetter oauthclient.Getter) strategy { return strategy{ObjectTyper: kapi.Scheme, clientGetter: clientGetter} } -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for OAuth objects func (strategy) NamespaceScoped() bool { @@ -42,15 +44,15 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new token -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { token := obj.(*api.OAuthAccessToken) validationErrors := validation.ValidateAccessToken(token) - client, err := s.clientGetter.GetClient(ctx, token.ClientName) + client, err := s.clientGetter.GetClient(ctx, token.ClientName, &metav1.GetOptions{}) if err != nil { return append(validationErrors, field.InternalError(field.NewPath("clientName"), err)) } @@ -62,7 +64,7 @@ func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList } // ValidateUpdate validates an update -func (s strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { oldToken := old.(*api.OAuthAccessToken) newToken := obj.(*api.OAuthAccessToken) return validation.ValidateAccessTokenUpdate(newToken, oldToken) diff --git a/pkg/oauth/registry/oauthauthorizetoken/etcd/etcd.go b/pkg/oauth/registry/oauthauthorizetoken/etcd/etcd.go index 8723f5810aec..b4dc97994cf7 100644 --- a/pkg/oauth/registry/oauthauthorizetoken/etcd/etcd.go +++ b/pkg/oauth/registry/oauthauthorizetoken/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthauthorizetoken" diff --git a/pkg/oauth/registry/oauthauthorizetoken/registry.go b/pkg/oauth/registry/oauthauthorizetoken/registry.go index d3ce591b2b82..95a6683ef96d 100644 --- a/pkg/oauth/registry/oauthauthorizetoken/registry.go +++ b/pkg/oauth/registry/oauthauthorizetoken/registry.go @@ -1,8 +1,10 @@ package oauthauthorizetoken import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "github.com/openshift/origin/pkg/oauth/api" ) @@ -10,13 +12,13 @@ import ( // Registry is an interface for things that know how to store AuthorizeToken objects. type Registry interface { // ListAuthorizeTokens obtains a list of authorize tokens that match a selector. - ListAuthorizeTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAuthorizeTokenList, error) + ListAuthorizeTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAuthorizeTokenList, error) // GetAuthorizeToken retrieves a specific authorize token. - GetAuthorizeToken(ctx kapi.Context, name string) (*api.OAuthAuthorizeToken, error) + GetAuthorizeToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAuthorizeToken, error) // CreateAuthorizeToken creates a new authorize token. - CreateAuthorizeToken(ctx kapi.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) + CreateAuthorizeToken(ctx apirequest.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) // DeleteAuthorizeToken deletes an authorize token. - DeleteAuthorizeToken(ctx kapi.Context, name string) error + DeleteAuthorizeToken(ctx apirequest.Context, name string) error } // Storage is an interface for a standard REST Storage backend @@ -38,7 +40,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListAuthorizeTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAuthorizeTokenList, error) { +func (s *storage) ListAuthorizeTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAuthorizeTokenList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -46,15 +48,15 @@ func (s *storage) ListAuthorizeTokens(ctx kapi.Context, options *kapi.ListOption return obj.(*api.OAuthAuthorizeTokenList), nil } -func (s *storage) GetAuthorizeToken(ctx kapi.Context, name string) (*api.OAuthAuthorizeToken, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetAuthorizeToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAuthorizeToken, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.OAuthAuthorizeToken), nil } -func (s *storage) CreateAuthorizeToken(ctx kapi.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) { +func (s *storage) CreateAuthorizeToken(ctx apirequest.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) { obj, err := s.Create(ctx, token) if err != nil { return nil, err @@ -62,8 +64,8 @@ func (s *storage) CreateAuthorizeToken(ctx kapi.Context, token *api.OAuthAuthori return obj.(*api.OAuthAuthorizeToken), nil } -func (s *storage) DeleteAuthorizeToken(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteAuthorizeToken(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) if err != nil { return err } diff --git a/pkg/oauth/registry/oauthauthorizetoken/strategy.go b/pkg/oauth/registry/oauthauthorizetoken/strategy.go index dfac3b24f7b6..680198cbfb86 100644 --- a/pkg/oauth/registry/oauthauthorizetoken/strategy.go +++ b/pkg/oauth/registry/oauthauthorizetoken/strategy.go @@ -3,13 +3,15 @@ package oauthauthorizetoken import ( "fmt" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" "github.com/openshift/origin/pkg/oauth/api" @@ -31,7 +33,7 @@ func NewStrategy(clientGetter oauthclient.Getter) strategy { return strategy{ObjectTyper: kapi.Scheme, clientGetter: clientGetter} } -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for OAuth objects func (strategy) NamespaceScoped() bool { @@ -42,7 +44,7 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -50,11 +52,11 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new token -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { token := obj.(*api.OAuthAuthorizeToken) validationErrors := validation.ValidateAuthorizeToken(token) - client, err := s.clientGetter.GetClient(ctx, token.ClientName) + client, err := s.clientGetter.GetClient(ctx, token.ClientName, &metav1.GetOptions{}) if err != nil { return append(validationErrors, field.InternalError(field.NewPath("clientName"), err)) } @@ -66,7 +68,7 @@ func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList } // ValidateUpdate validates an update -func (s strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (s strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { oldToken := old.(*api.OAuthAuthorizeToken) newToken := obj.(*api.OAuthAuthorizeToken) return validation.ValidateAuthorizeTokenUpdate(newToken, oldToken) diff --git a/pkg/oauth/registry/oauthclient/etcd/etcd.go b/pkg/oauth/registry/oauthclient/etcd/etcd.go index c59e2f7f2e52..940c1dd15823 100644 --- a/pkg/oauth/registry/oauthclient/etcd/etcd.go +++ b/pkg/oauth/registry/oauthclient/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthclient" diff --git a/pkg/oauth/registry/oauthclient/registry.go b/pkg/oauth/registry/oauthclient/registry.go index ad0c5099723e..ec30a3a104c6 100644 --- a/pkg/oauth/registry/oauthclient/registry.go +++ b/pkg/oauth/registry/oauthclient/registry.go @@ -1,8 +1,11 @@ package oauthclient import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" "github.com/openshift/origin/pkg/oauth/api" ) @@ -10,21 +13,21 @@ import ( // Registry is an interface for things that know how to store OAuthClient objects. type Registry interface { // ListClients obtains a list of clients that match a selector. - ListClients(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientList, error) + ListClients(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientList, error) // GetClient retrieves a specific client. - GetClient(ctx kapi.Context, name string) (*api.OAuthClient, error) + GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClient, error) // CreateClient creates a new client. - CreateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) + CreateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) // UpdateClient updates a client. - UpdateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) + UpdateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) // DeleteClient deletes a client. - DeleteClient(ctx kapi.Context, name string) error + DeleteClient(ctx apirequest.Context, name string) error } // Getter exposes a way to get a specific client. This is useful for other registries to get scope limitations // on particular clients. This interface will make its easier to write a future cache on it type Getter interface { - GetClient(ctx kapi.Context, name string) (*api.OAuthClient, error) + GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClient, error) } // storage puts strong typing around storage calls @@ -38,7 +41,7 @@ func NewRegistry(s rest.StandardStorage) Registry { return &storage{s} } -func (s *storage) ListClients(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientList, error) { +func (s *storage) ListClients(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -46,15 +49,15 @@ func (s *storage) ListClients(ctx kapi.Context, options *kapi.ListOptions) (*api return obj.(*api.OAuthClientList), nil } -func (s *storage) GetClient(ctx kapi.Context, name string) (*api.OAuthClient, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClient, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.OAuthClient), nil } -func (s *storage) CreateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) { +func (s *storage) CreateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) { obj, err := s.Create(ctx, client) if err != nil { return nil, err @@ -62,7 +65,7 @@ func (s *storage) CreateClient(ctx kapi.Context, client *api.OAuthClient) (*api. return obj.(*api.OAuthClient), nil } -func (s *storage) UpdateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) { +func (s *storage) UpdateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) { obj, _, err := s.Update(ctx, client.Name, rest.DefaultUpdatedObjectInfo(client, kapi.Scheme)) if err != nil { return nil, err @@ -70,8 +73,8 @@ func (s *storage) UpdateClient(ctx kapi.Context, client *api.OAuthClient) (*api. return obj.(*api.OAuthClient), nil } -func (s *storage) DeleteClient(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteClient(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) if err != nil { return err } diff --git a/pkg/oauth/registry/oauthclient/strategy.go b/pkg/oauth/registry/oauthclient/strategy.go index e929e737ca72..5e108732f2fd 100644 --- a/pkg/oauth/registry/oauthclient/strategy.go +++ b/pkg/oauth/registry/oauthclient/strategy.go @@ -5,12 +5,13 @@ import ( "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/api/validation" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" ) // strategy implements behavior for OAuthClient objects @@ -22,7 +23,7 @@ type strategy struct { // objects via the REST API. var Strategy = strategy{kapi.Scheme} -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for OAuth objects func (strategy) NamespaceScoped() bool { @@ -33,7 +34,7 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -41,13 +42,13 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new client -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { token := obj.(*api.OAuthClient) return validation.ValidateClient(token) } // ValidateUpdate validates a client update -func (strategy) ValidateUpdate(ctx kapi.Context, obj runtime.Object, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj runtime.Object, old runtime.Object) field.ErrorList { client := obj.(*api.OAuthClient) oldClient := old.(*api.OAuthClient) return validation.ValidateClientUpdate(client, oldClient) diff --git a/pkg/oauth/registry/oauthclientauthorization/etcd/etcd.go b/pkg/oauth/registry/oauthclientauthorization/etcd/etcd.go index 82bdcdc8b6f3..a654647ab705 100644 --- a/pkg/oauth/registry/oauthclientauthorization/etcd/etcd.go +++ b/pkg/oauth/registry/oauthclientauthorization/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthclient" diff --git a/pkg/oauth/registry/oauthclientauthorization/registry.go b/pkg/oauth/registry/oauthclientauthorization/registry.go index ca05a5c91882..f4e5f2cb8f87 100644 --- a/pkg/oauth/registry/oauthclientauthorization/registry.go +++ b/pkg/oauth/registry/oauthclientauthorization/registry.go @@ -1,8 +1,11 @@ package oauthclientauthorization import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" "github.com/openshift/origin/pkg/oauth/api" ) @@ -12,15 +15,15 @@ type Registry interface { // ClientAuthorizationName returns the name of the OAuthClientAuthorization for the given user name and client name ClientAuthorizationName(userName, clientName string) string // ListClientAuthorizations obtains a list of client auths that match a selector. - ListClientAuthorizations(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientAuthorizationList, error) + ListClientAuthorizations(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientAuthorizationList, error) // GetClientAuthorization retrieves a specific client auth. - GetClientAuthorization(ctx kapi.Context, name string) (*api.OAuthClientAuthorization, error) + GetClientAuthorization(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClientAuthorization, error) // CreateClientAuthorization creates a new client auth. - CreateClientAuthorization(ctx kapi.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) + CreateClientAuthorization(ctx apirequest.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) // UpdateClientAuthorization updates a client auth. - UpdateClientAuthorization(ctx kapi.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) + UpdateClientAuthorization(ctx apirequest.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) // DeleteClientAuthorization deletes a client auth. - DeleteClientAuthorization(ctx kapi.Context, name string) error + DeleteClientAuthorization(ctx apirequest.Context, name string) error } // storage puts strong typing around storage calls @@ -38,7 +41,7 @@ func (s *storage) ClientAuthorizationName(userName, clientName string) string { return userName + ":" + clientName } -func (s *storage) ListClientAuthorizations(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientAuthorizationList, error) { +func (s *storage) ListClientAuthorizations(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientAuthorizationList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -46,15 +49,15 @@ func (s *storage) ListClientAuthorizations(ctx kapi.Context, options *kapi.ListO return obj.(*api.OAuthClientAuthorizationList), nil } -func (s *storage) GetClientAuthorization(ctx kapi.Context, name string) (*api.OAuthClientAuthorization, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetClientAuthorization(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClientAuthorization, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.OAuthClientAuthorization), nil } -func (s *storage) CreateClientAuthorization(ctx kapi.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { +func (s *storage) CreateClientAuthorization(ctx apirequest.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { obj, err := s.Create(ctx, client) if err != nil { return nil, err @@ -62,7 +65,7 @@ func (s *storage) CreateClientAuthorization(ctx kapi.Context, client *api.OAuthC return obj.(*api.OAuthClientAuthorization), nil } -func (s *storage) UpdateClientAuthorization(ctx kapi.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { +func (s *storage) UpdateClientAuthorization(ctx apirequest.Context, client *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { obj, _, err := s.Update(ctx, client.Name, rest.DefaultUpdatedObjectInfo(client, kapi.Scheme)) if err != nil { return nil, err @@ -70,8 +73,8 @@ func (s *storage) UpdateClientAuthorization(ctx kapi.Context, client *api.OAuthC return obj.(*api.OAuthClientAuthorization), nil } -func (s *storage) DeleteClientAuthorization(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteClientAuthorization(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) if err != nil { return err } diff --git a/pkg/oauth/registry/oauthclientauthorization/strategy.go b/pkg/oauth/registry/oauthclientauthorization/strategy.go index 69bd22fadca7..f16a0303f435 100644 --- a/pkg/oauth/registry/oauthclientauthorization/strategy.go +++ b/pkg/oauth/registry/oauthclientauthorization/strategy.go @@ -5,12 +5,14 @@ import ( "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/api/validation" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" "github.com/openshift/origin/pkg/oauth/registry/oauthclient" @@ -27,7 +29,7 @@ func NewStrategy(clientGetter oauthclient.Getter) strategy { return strategy{ObjectTyper: kapi.Scheme, clientGetter: clientGetter} } -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { auth := obj.(*api.OAuthClientAuthorization) auth.Name = fmt.Sprintf("%s:%s", auth.UserName, auth.ClientName) } @@ -41,7 +43,7 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { auth := obj.(*api.OAuthClientAuthorization) auth.Name = fmt.Sprintf("%s:%s", auth.UserName, auth.ClientName) } @@ -51,11 +53,11 @@ func (strategy) Canonicalize(obj runtime.Object) { } // Validate validates a new client -func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { auth := obj.(*api.OAuthClientAuthorization) validationErrors := validation.ValidateClientAuthorization(auth) - client, err := s.clientGetter.GetClient(ctx, auth.ClientName) + client, err := s.clientGetter.GetClient(ctx, auth.ClientName, &metav1.GetOptions{}) if err != nil { return append(validationErrors, field.InternalError(field.NewPath("clientName"), err)) } @@ -67,12 +69,12 @@ func (s strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList } // ValidateUpdate validates a client auth update -func (s strategy) ValidateUpdate(ctx kapi.Context, obj runtime.Object, old runtime.Object) field.ErrorList { +func (s strategy) ValidateUpdate(ctx apirequest.Context, obj runtime.Object, old runtime.Object) field.ErrorList { clientAuth := obj.(*api.OAuthClientAuthorization) oldClientAuth := old.(*api.OAuthClientAuthorization) validationErrors := validation.ValidateClientAuthorizationUpdate(clientAuth, oldClientAuth) - client, err := s.clientGetter.GetClient(ctx, clientAuth.ClientName) + client, err := s.clientGetter.GetClient(ctx, clientAuth.ClientName, &metav1.GetOptions{}) if err != nil { return append(validationErrors, field.InternalError(field.NewPath("clientName"), err)) } diff --git a/pkg/oauth/registry/test/accesstoken.go b/pkg/oauth/registry/test/accesstoken.go index 95e391b87757..6b011c830ea7 100644 --- a/pkg/oauth/registry/test/accesstoken.go +++ b/pkg/oauth/registry/test/accesstoken.go @@ -1,7 +1,9 @@ package test import ( - kapi "k8s.io/kubernetes/pkg/api" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,19 +15,19 @@ type AccessTokenRegistry struct { DeletedAccessTokenName string } -func (r *AccessTokenRegistry) ListAccessTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAccessTokenList, error) { +func (r *AccessTokenRegistry) ListAccessTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAccessTokenList, error) { return r.AccessTokens, r.Err } -func (r *AccessTokenRegistry) GetAccessToken(ctx kapi.Context, name string) (*api.OAuthAccessToken, error) { +func (r *AccessTokenRegistry) GetAccessToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAccessToken, error) { return r.AccessToken, r.Err } -func (r *AccessTokenRegistry) CreateAccessToken(ctx kapi.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) { +func (r *AccessTokenRegistry) CreateAccessToken(ctx apirequest.Context, token *api.OAuthAccessToken) (*api.OAuthAccessToken, error) { return r.AccessToken, r.Err } -func (r *AccessTokenRegistry) DeleteAccessToken(ctx kapi.Context, name string) error { +func (r *AccessTokenRegistry) DeleteAccessToken(ctx apirequest.Context, name string) error { r.DeletedAccessTokenName = name return r.Err } diff --git a/pkg/oauth/registry/test/authorizetoken.go b/pkg/oauth/registry/test/authorizetoken.go index bad2f3c4f79d..f6cd09e5b077 100644 --- a/pkg/oauth/registry/test/authorizetoken.go +++ b/pkg/oauth/registry/test/authorizetoken.go @@ -1,7 +1,9 @@ package test import ( - kapi "k8s.io/kubernetes/pkg/api" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,19 +15,19 @@ type AuthorizeTokenRegistry struct { DeletedAuthorizeTokenName string } -func (r *AuthorizeTokenRegistry) ListAuthorizeTokens(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthAuthorizeTokenList, error) { +func (r *AuthorizeTokenRegistry) ListAuthorizeTokens(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthAuthorizeTokenList, error) { return r.AuthorizeTokens, r.Err } -func (r *AuthorizeTokenRegistry) GetAuthorizeToken(ctx kapi.Context, name string) (*api.OAuthAuthorizeToken, error) { +func (r *AuthorizeTokenRegistry) GetAuthorizeToken(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthAuthorizeToken, error) { return r.AuthorizeToken, r.Err } -func (r *AuthorizeTokenRegistry) CreateAuthorizeToken(ctx kapi.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) { +func (r *AuthorizeTokenRegistry) CreateAuthorizeToken(ctx apirequest.Context, token *api.OAuthAuthorizeToken) (*api.OAuthAuthorizeToken, error) { return r.AuthorizeToken, r.Err } -func (r *AuthorizeTokenRegistry) DeleteAuthorizeToken(ctx kapi.Context, name string) error { +func (r *AuthorizeTokenRegistry) DeleteAuthorizeToken(ctx apirequest.Context, name string) error { r.DeletedAuthorizeTokenName = name return r.Err } diff --git a/pkg/oauth/registry/test/client.go b/pkg/oauth/registry/test/client.go index 94cc1f2f4b4d..f44a95f8b98f 100644 --- a/pkg/oauth/registry/test/client.go +++ b/pkg/oauth/registry/test/client.go @@ -1,7 +1,9 @@ package test import ( - kapi "k8s.io/kubernetes/pkg/api" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/oauth/api" ) @@ -13,23 +15,23 @@ type ClientRegistry struct { DeletedClientName string } -func (r *ClientRegistry) ListClients(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientList, error) { +func (r *ClientRegistry) ListClients(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientList, error) { return r.Clients, r.Err } -func (r *ClientRegistry) GetClient(ctx kapi.Context, name string) (*api.OAuthClient, error) { +func (r *ClientRegistry) GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClient, error) { return r.Client, r.Err } -func (r *ClientRegistry) CreateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) { +func (r *ClientRegistry) CreateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) { return r.Client, r.Err } -func (r *ClientRegistry) UpdateClient(ctx kapi.Context, client *api.OAuthClient) (*api.OAuthClient, error) { +func (r *ClientRegistry) UpdateClient(ctx apirequest.Context, client *api.OAuthClient) (*api.OAuthClient, error) { return r.Client, r.Err } -func (r *ClientRegistry) DeleteClient(ctx kapi.Context, name string) error { +func (r *ClientRegistry) DeleteClient(ctx apirequest.Context, name string) error { r.DeletedClientName = name return r.Err } diff --git a/pkg/oauth/registry/test/clientauthorization.go b/pkg/oauth/registry/test/clientauthorization.go index 64280be99184..81b93fb5cc62 100644 --- a/pkg/oauth/registry/test/clientauthorization.go +++ b/pkg/oauth/registry/test/clientauthorization.go @@ -3,7 +3,9 @@ package test import ( "fmt" - kapi "k8s.io/kubernetes/pkg/api" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/oauth/api" ) @@ -27,25 +29,25 @@ func (r *ClientAuthorizationRegistry) ClientAuthorizationName(userName, clientNa return fmt.Sprintf("%s:%s", userName, clientName) } -func (r *ClientAuthorizationRegistry) ListClientAuthorizations(ctx kapi.Context, options *kapi.ListOptions) (*api.OAuthClientAuthorizationList, error) { +func (r *ClientAuthorizationRegistry) ListClientAuthorizations(ctx apirequest.Context, options *metainternal.ListOptions) (*api.OAuthClientAuthorizationList, error) { return r.ClientAuthorizations, r.GetErr } -func (r *ClientAuthorizationRegistry) GetClientAuthorization(ctx kapi.Context, name string) (*api.OAuthClientAuthorization, error) { +func (r *ClientAuthorizationRegistry) GetClientAuthorization(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.OAuthClientAuthorization, error) { return r.ClientAuthorization, r.GetErr } -func (r *ClientAuthorizationRegistry) CreateClientAuthorization(ctx kapi.Context, grant *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { +func (r *ClientAuthorizationRegistry) CreateClientAuthorization(ctx apirequest.Context, grant *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { r.CreatedAuthorization = grant return r.ClientAuthorization, r.CreateErr } -func (r *ClientAuthorizationRegistry) UpdateClientAuthorization(ctx kapi.Context, grant *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { +func (r *ClientAuthorizationRegistry) UpdateClientAuthorization(ctx apirequest.Context, grant *api.OAuthClientAuthorization) (*api.OAuthClientAuthorization, error) { r.UpdatedAuthorization = grant return r.ClientAuthorization, r.UpdateErr } -func (r *ClientAuthorizationRegistry) DeleteClientAuthorization(ctx kapi.Context, name string) error { +func (r *ClientAuthorizationRegistry) DeleteClientAuthorization(ctx apirequest.Context, name string) error { r.DeletedClientAuthorizationName = name return r.DeleteErr } diff --git a/pkg/oauth/server/osinserver/osinserver.go b/pkg/oauth/server/osinserver/osinserver.go index 52f89b898e15..dad2a92a39e9 100644 --- a/pkg/oauth/server/osinserver/osinserver.go +++ b/pkg/oauth/server/osinserver/osinserver.go @@ -7,7 +7,7 @@ import ( "github.com/RangelReale/osin" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) const ( diff --git a/pkg/oauth/server/osinserver/registrystorage/storage.go b/pkg/oauth/server/osinserver/registrystorage/storage.go index 3b1011a5157d..7da066dcd26c 100644 --- a/pkg/oauth/server/osinserver/registrystorage/storage.go +++ b/pkg/oauth/server/osinserver/registrystorage/storage.go @@ -6,9 +6,9 @@ import ( "github.com/RangelReale/osin" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" "github.com/openshift/origin/pkg/oauth/api" @@ -98,7 +98,7 @@ func (s *storage) Close() { // GetClient loads the client by id (client_id) func (s *storage) GetClient(id string) (osin.Client, error) { - c, err := s.client.GetClient(kapi.NewContext(), id) + c, err := s.client.GetClient(apirequest.NewContext(), id, &metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return nil, nil @@ -114,7 +114,7 @@ func (s *storage) SaveAuthorize(data *osin.AuthorizeData) error { if err != nil { return err } - _, err = s.authorizetoken.CreateAuthorizeToken(kapi.NewContext(), token) + _, err = s.authorizetoken.CreateAuthorizeToken(apirequest.NewContext(), token) return err } @@ -122,7 +122,7 @@ func (s *storage) SaveAuthorize(data *osin.AuthorizeData) error { // Client information MUST be loaded together. // Optionally can return error if expired. func (s *storage) LoadAuthorize(code string) (*osin.AuthorizeData, error) { - authorize, err := s.authorizetoken.GetAuthorizeToken(kapi.NewContext(), code) + authorize, err := s.authorizetoken.GetAuthorizeToken(apirequest.NewContext(), code, &metav1.GetOptions{}) if kerrors.IsNotFound(err) { glog.V(5).Info("Authorization code not found") return nil, nil @@ -136,7 +136,7 @@ func (s *storage) LoadAuthorize(code string) (*osin.AuthorizeData, error) { // RemoveAuthorize revokes or deletes the authorization code. func (s *storage) RemoveAuthorize(code string) error { // TODO: return no error if registry returns IsNotFound - return s.authorizetoken.DeleteAuthorizeToken(kapi.NewContext(), code) + return s.authorizetoken.DeleteAuthorizeToken(apirequest.NewContext(), code) } // SaveAccess writes AccessData. @@ -146,7 +146,7 @@ func (s *storage) SaveAccess(data *osin.AccessData) error { if err != nil { return err } - _, err = s.accesstoken.CreateAccessToken(kapi.NewContext(), token) + _, err = s.accesstoken.CreateAccessToken(apirequest.NewContext(), token) return err } @@ -154,7 +154,7 @@ func (s *storage) SaveAccess(data *osin.AccessData) error { // AuthorizeData and AccessData DON'T NEED to be loaded if not easily available. // Optionally can return error if expired. func (s *storage) LoadAccess(token string) (*osin.AccessData, error) { - access, err := s.accesstoken.GetAccessToken(kapi.NewContext(), token) + access, err := s.accesstoken.GetAccessToken(apirequest.NewContext(), token, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -164,7 +164,7 @@ func (s *storage) LoadAccess(token string) (*osin.AccessData, error) { // RemoveAccess revokes or deletes an AccessData. func (s *storage) RemoveAccess(token string) error { // TODO: return no error if registry returns IsNotFound - return s.accesstoken.DeleteAccessToken(kapi.NewContext(), token) + return s.accesstoken.DeleteAccessToken(apirequest.NewContext(), token) } // LoadRefresh retrieves refresh AccessData. Client information MUST be loaded together. @@ -181,9 +181,9 @@ func (s *storage) RemoveRefresh(token string) error { func (s *storage) convertToAuthorizeToken(data *osin.AuthorizeData) (*api.OAuthAuthorizeToken, error) { token := &api.OAuthAuthorizeToken{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: data.Code, - CreationTimestamp: unversioned.Time{Time: data.CreatedAt}, + CreationTimestamp: metav1.Time{Time: data.CreatedAt}, }, CodeChallenge: data.CodeChallenge, CodeChallengeMethod: data.CodeChallengeMethod, @@ -204,7 +204,7 @@ func (s *storage) convertFromAuthorizeToken(authorize *api.OAuthAuthorizeToken) if err != nil { return nil, err } - client, err := s.client.GetClient(kapi.NewContext(), authorize.ClientName) + client, err := s.client.GetClient(apirequest.NewContext(), authorize.ClientName, &metav1.GetOptions{}) if err != nil { return nil, err } @@ -228,9 +228,9 @@ func (s *storage) convertFromAuthorizeToken(authorize *api.OAuthAuthorizeToken) func (s *storage) convertToAccessToken(data *osin.AccessData) (*api.OAuthAccessToken, error) { token := &api.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: data.AccessToken, - CreationTimestamp: unversioned.Time{Time: data.CreatedAt}, + CreationTimestamp: metav1.Time{Time: data.CreatedAt}, }, ExpiresIn: int64(data.ExpiresIn), RefreshToken: data.RefreshToken, @@ -252,7 +252,7 @@ func (s *storage) convertFromAccessToken(access *api.OAuthAccessToken) (*osin.Ac if err != nil { return nil, err } - client, err := s.client.GetClient(kapi.NewContext(), access.ClientName) + client, err := s.client.GetClient(apirequest.NewContext(), access.ClientName, &metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/openservicebroker/api/validation.go b/pkg/openservicebroker/api/validation.go index a701dcd4fe91..841146665d10 100644 --- a/pkg/openservicebroker/api/validation.go +++ b/pkg/openservicebroker/api/validation.go @@ -3,7 +3,7 @@ package api import ( "regexp" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" ) func ValidateProvisionRequest(preq *ProvisionRequest) field.ErrorList { diff --git a/pkg/openservicebroker/api/validation_test.go b/pkg/openservicebroker/api/validation_test.go index eb855d0c6bc3..2fccf7cbf69d 100644 --- a/pkg/openservicebroker/api/validation_test.go +++ b/pkg/openservicebroker/api/validation_test.go @@ -3,7 +3,7 @@ package api import ( "testing" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" ) const validUUID = "fe6e44ea-377a-457c-9fa1-ba06ad356839" diff --git a/pkg/openservicebroker/client/client.go b/pkg/openservicebroker/client/client.go index 9705805c988a..4cf0efd657f3 100644 --- a/pkg/openservicebroker/client/client.go +++ b/pkg/openservicebroker/client/client.go @@ -7,9 +7,11 @@ import ( "net/http" "time" - "github.com/openshift/origin/pkg/openservicebroker/api" "golang.org/x/net/context" - "k8s.io/kubernetes/pkg/util/validation/field" + + "k8s.io/apimachinery/pkg/util/validation/field" + + "github.com/openshift/origin/pkg/openservicebroker/api" ) type Client interface { diff --git a/pkg/openservicebroker/server/route.go b/pkg/openservicebroker/server/route.go index 7644f906448d..d0ddb2bc7883 100644 --- a/pkg/openservicebroker/server/route.go +++ b/pkg/openservicebroker/server/route.go @@ -7,8 +7,10 @@ import ( "strings" restful "github.com/emicklei/go-restful" + + "k8s.io/apimachinery/pkg/util/validation/field" + "github.com/openshift/origin/pkg/openservicebroker/api" - "k8s.io/kubernetes/pkg/util/validation/field" ) // minimum supported client version diff --git a/pkg/project/admission/lifecycle/admission.go b/pkg/project/admission/lifecycle/admission.go index 33ba38de56b1..5d3ab39a7e30 100644 --- a/pkg/project/admission/lifecycle/admission.go +++ b/pkg/project/admission/lifecycle/admission.go @@ -8,11 +8,13 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + kapi "k8s.io/kubernetes/pkg/api" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "github.com/openshift/origin/pkg/api/latest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -30,14 +32,14 @@ func init() { } type lifecycle struct { - client clientset.Interface + client kclientset.Interface cache *cache.ProjectCache // creatableResources is a set of resources that can be created even if the namespace is terminating - creatableResources map[unversioned.GroupResource]bool + creatableResources map[schema.GroupResource]bool } -var recommendedCreatableResources = map[unversioned.GroupResource]bool{ +var recommendedCreatableResources = map[schema.GroupResource]bool{ authorizationapi.Resource("resourceaccessreviews"): true, authorizationapi.Resource("localresourceaccessreviews"): true, authorizationapi.Resource("subjectaccessreviews"): true, @@ -68,7 +70,7 @@ func (e *lifecycle) Admit(a admission.Attributes) (err error) { return nil } - groupMeta, err := registered.Group(a.GetKind().Group) + groupMeta, err := kapi.Registry.Group(a.GetKind().Group) if err != nil { return err } @@ -110,7 +112,7 @@ func (e *lifecycle) Admit(a admission.Attributes) (err error) { time.Sleep(interval) // it's possible the namespace actually was deleted, so just forbid if this occurs - namespace, err = e.client.Core().Namespaces().Get(a.GetNamespace()) + namespace, err = e.client.Core().Namespaces().Get(a.GetNamespace(), metav1.GetOptions{}) if err != nil { return admission.NewForbidden(a, err) } @@ -133,7 +135,7 @@ func (e *lifecycle) Validate() error { return nil } -func NewLifecycle(client clientset.Interface, creatableResources map[unversioned.GroupResource]bool) (admission.Interface, error) { +func NewLifecycle(client clientset.Interface, creatableResources map[schema.GroupResource]bool) (admission.Interface, error) { return &lifecycle{ client: client, creatableResources: creatableResources, diff --git a/pkg/project/admission/lifecycle/admission_test.go b/pkg/project/admission/lifecycle/admission_test.go index fdfe6f6e2e80..bbbd633672d7 100644 --- a/pkg/project/admission/lifecycle/admission_test.go +++ b/pkg/project/admission/lifecycle/admission_test.go @@ -4,13 +4,14 @@ import ( "fmt" "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" buildapi "github.com/openshift/origin/pkg/build/api" projectcache "github.com/openshift/origin/pkg/project/cache" @@ -20,10 +21,10 @@ import ( ) type UnknownObject struct { - unversioned.TypeMeta + metav1.TypeMeta } -func (obj *UnknownObject) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *UnknownObject) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } // TestIgnoreThatWhichCannotBeKnown verifies that the plug-in does not reject objects that are unknown to RESTMapper func TestIgnoreThatWhichCannotBeKnown(t *testing.T) { @@ -39,7 +40,7 @@ func TestIgnoreThatWhichCannotBeKnown(t *testing.T) { // TestAdmissionExists verifies you cannot create Origin content if namespace is not known func TestAdmissionExists(t *testing.T) { mockClient := &fake.Clientset{} - mockClient.AddReactor("*", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { + mockClient.AddReactor("*", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Namespace{}, fmt.Errorf("DOES NOT EXIST") }) @@ -49,7 +50,7 @@ func TestAdmissionExists(t *testing.T) { handler := &lifecycle{client: mockClientset} handler.SetProjectCache(cache) build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{Name: "buildid"}, + ObjectMeta: metav1.ObjectMeta{Name: "buildid"}, Spec: buildapi.BuildSpec{ CommonSpec: buildapi.CommonSpec{ Source: buildapi.BuildSource{ @@ -82,7 +83,7 @@ func TestAdmissionExists(t *testing.T) { func TestSAR(t *testing.T) { store := projectcache.NewCacheStore(cache.IndexFuncToKeyFuncAdapter(cache.MetaNamespaceIndexFunc)) mockClient := &fake.Clientset{} - mockClient.AddReactor("get", "namespaces", func(action core.Action) (handled bool, ret runtime.Object, err error) { + mockClient.AddReactor("get", "namespaces", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, fmt.Errorf("shouldn't get here") }) cache := projectcache.NewFake(mockClient.Core().Namespaces(), store, "") diff --git a/pkg/project/admission/nodeenv/admission.go b/pkg/project/admission/nodeenv/admission.go index c9221382723e..ceb5c8db009d 100644 --- a/pkg/project/admission/nodeenv/admission.go +++ b/pkg/project/admission/nodeenv/admission.go @@ -4,10 +4,11 @@ import ( "fmt" "io" - "k8s.io/kubernetes/pkg/admission" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" "github.com/openshift/origin/pkg/project/cache" @@ -23,7 +24,7 @@ func init() { // podNodeEnvironment is an implementation of admission.Interface. type podNodeEnvironment struct { *admission.Handler - client clientset.Interface + client kclientset.Interface cache *cache.ProjectCache } diff --git a/pkg/project/admission/nodeenv/admission_test.go b/pkg/project/admission/nodeenv/admission_test.go index 2bc119b29da5..c6ff3d298367 100644 --- a/pkg/project/admission/nodeenv/admission_test.go +++ b/pkg/project/admission/nodeenv/admission_test.go @@ -3,9 +3,10 @@ package nodeenv import ( "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/admission" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" projectcache "github.com/openshift/origin/pkg/project/cache" @@ -15,7 +16,7 @@ import ( // TestPodAdmission verifies various scenarios involving pod/project/global node label selectors func TestPodAdmission(t *testing.T) { project := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "testProject", Namespace: "", }, @@ -26,7 +27,7 @@ func TestPodAdmission(t *testing.T) { mockClientset := fake.NewSimpleClientset() handler := &podNodeEnvironment{client: mockClientset} pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: "testPod"}, + ObjectMeta: metav1.ObjectMeta{Name: "testPod"}, } tests := []struct { @@ -131,7 +132,7 @@ func TestHandles(t *testing.T) { admission.Connect: false, admission.Delete: false, } { - nodeEnvionment, err := NewPodNodeEnvironment(nil) + nodeEnvionment, err := NewPodNodeEnvironment() if err != nil { t.Errorf("%v: error getting node environment: %v", op, err) continue diff --git a/pkg/project/admission/requestlimit/admission.go b/pkg/project/admission/requestlimit/admission.go index 01455a7d7895..9d0e8b7c0b50 100644 --- a/pkg/project/admission/requestlimit/admission.go +++ b/pkg/project/admission/requestlimit/admission.go @@ -6,11 +6,11 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/serviceaccount" kapi "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/serviceaccount" "github.com/openshift/origin/pkg/client" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" @@ -122,7 +122,7 @@ func (o *projectRequestLimit) maxProjectsByRequester(userName string) (int, bool return 0, false, nil } - user, err := o.client.Users().Get(userName) + user, err := o.client.Users().Get(userName, metav1.GetOptions{}) if err != nil { return 0, false, err } diff --git a/pkg/project/admission/requestlimit/admission_test.go b/pkg/project/admission/requestlimit/admission_test.go index 9f0c0ed15442..e8967ce7737c 100644 --- a/pkg/project/admission/requestlimit/admission_test.go +++ b/pkg/project/admission/requestlimit/admission_test.go @@ -4,14 +4,15 @@ import ( "bytes" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/storage/names" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client/testclient" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" @@ -19,7 +20,7 @@ import ( projectapi "github.com/openshift/origin/pkg/project/api" projectcache "github.com/openshift/origin/pkg/project/cache" userapi "github.com/openshift/origin/pkg/user/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" // install all APIs _ "github.com/openshift/origin/pkg/api/install" @@ -340,7 +341,7 @@ func configEquals(a, b *requestlimitapi.ProjectRequestLimitConfig) bool { func fakeNs(name string, terminating bool) *kapi.Namespace { ns := &kapi.Namespace{} - ns.Name = kapi.SimpleNameGenerator.GenerateName("testns") + ns.Name = names.SimpleNameGenerator.GenerateName("testns") ns.Annotations = map[string]string{ "openshift.io/requester": name, } @@ -376,9 +377,9 @@ func fakeProjectCache(requesters map[string]projectCount) *projectcache.ProjectC return pCache } -func userFn(usersAndLabels map[string]labels.Set) core.ReactionFunc { - return func(action core.Action) (handled bool, ret runtime.Object, err error) { - name := action.(core.GetAction).GetName() +func userFn(usersAndLabels map[string]labels.Set) clientgotesting.ReactionFunc { + return func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + name := action.(clientgotesting.GetAction).GetName() return true, fakeUser(name, map[string]string(usersAndLabels[name])), nil } } diff --git a/pkg/project/admission/requestlimit/api/install/install.go b/pkg/project/admission/requestlimit/api/install/install.go index 8956e80e499c..3049d8dfc25a 100644 --- a/pkg/project/admission/requestlimit/api/install/install.go +++ b/pkg/project/admission/requestlimit/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/project/admission/requestlimit/api" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/project/admission/requestl var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion, v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion, v1.LegacySchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) api.AddToSchemeInCoreGroup(configapi.Scheme) diff --git a/pkg/project/admission/requestlimit/api/register.go b/pkg/project/admission/requestlimit/api/register.go index dd278e794ee8..caab645794bf 100644 --- a/pkg/project/admission/requestlimit/api/register.go +++ b/pkg/project/admission/requestlimit/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +13,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -39,10 +39,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/project/admission/requestlimit/api/types.go b/pkg/project/admission/requestlimit/api/types.go index 655cc4728309..733898aaa9ba 100644 --- a/pkg/project/admission/requestlimit/api/types.go +++ b/pkg/project/admission/requestlimit/api/types.go @@ -1,14 +1,14 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ProjectRequestLimitConfig is the configuration for the project request limit plug-in // It contains an ordered list of limits based on user label selectors. Selectors will // be checked in order and the first one that applies will be used as the limit. type ProjectRequestLimitConfig struct { - unversioned.TypeMeta + metav1.TypeMeta Limits []ProjectLimitBySelector // MaxProjectsForSystemUsers controls how many projects a certificate user may have. Certificate diff --git a/pkg/project/admission/requestlimit/api/v1/register.go b/pkg/project/admission/requestlimit/api/v1/register.go index f591fb378f34..c471dd4ec353 100644 --- a/pkg/project/admission/requestlimit/api/v1/register.go +++ b/pkg/project/admission/requestlimit/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -13,8 +13,8 @@ const ( ) var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -39,10 +39,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/project/admission/requestlimit/api/v1/types.go b/pkg/project/admission/requestlimit/api/v1/types.go index 6f42ef223de8..c85551be00ac 100644 --- a/pkg/project/admission/requestlimit/api/v1/types.go +++ b/pkg/project/admission/requestlimit/api/v1/types.go @@ -1,14 +1,14 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ProjectRequestLimitConfig is the configuration for the project request limit plug-in // It contains an ordered list of limits based on user label selectors. Selectors will // be checked in order and the first one that applies will be used as the limit. type ProjectRequestLimitConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Limits are the project request limits Limits []ProjectLimitBySelector `json:"limits",description:"project request limits"` diff --git a/pkg/project/admission/requestlimit/api/validation/validation.go b/pkg/project/admission/requestlimit/api/validation/validation.go index 49043aadf7f2..55e9c2677eb7 100644 --- a/pkg/project/admission/requestlimit/api/validation/validation.go +++ b/pkg/project/admission/requestlimit/api/validation/validation.go @@ -1,8 +1,8 @@ package validation import ( - unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation" - "k8s.io/kubernetes/pkg/util/validation/field" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/project/admission/requestlimit/api" ) diff --git a/pkg/project/admission/requestlimit/api/validation/validation_test.go b/pkg/project/admission/requestlimit/api/validation/validation_test.go index 8d56d76f4010..4f553a7e61e1 100644 --- a/pkg/project/admission/requestlimit/api/validation/validation_test.go +++ b/pkg/project/admission/requestlimit/api/validation/validation_test.go @@ -3,7 +3,7 @@ package validation import ( "testing" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/project/admission/requestlimit/api" ) diff --git a/pkg/project/api/install/apigroup.go b/pkg/project/api/install/apigroup.go index 8cf5f2c476bb..258d9f9b4661 100644 --- a/pkg/project/api/install/apigroup.go +++ b/pkg/project/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/project/api" "github.com/openshift/origin/pkg/project/api/v1" diff --git a/pkg/project/api/install/install.go b/pkg/project/api/install/install.go index 2299af6af528..450b5354f51d 100644 --- a/pkg/project/api/install/install.go +++ b/pkg/project/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/project/api" "github.com/openshift/origin/pkg/project/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/project/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -51,7 +50,7 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("Project", "ProjectRequest") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/project/api/register.go b/pkg/project/api/register.go index cb6311472f9e..e133b7968be7 100644 --- a/pkg/project/api/register.go +++ b/pkg/project/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +25,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,11 +35,11 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -64,10 +64,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/project/api/types.go b/pkg/project/api/types.go index 074d4839eb2f..4bcdbebc8d30 100644 --- a/pkg/project/api/types.go +++ b/pkg/project/api/types.go @@ -1,14 +1,14 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // ProjectList is a list of Project objects. type ProjectList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []Project } @@ -33,16 +33,16 @@ type ProjectStatus struct { // Project is a logical top-level container for a set of origin resources type Project struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Spec ProjectSpec Status ProjectStatus } type ProjectRequest struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta DisplayName string Description string } diff --git a/pkg/project/api/v1/conversion.go b/pkg/project/api/v1/conversion.go index a8afe00487cd..51fcf88d7b96 100644 --- a/pkg/project/api/v1/conversion.go +++ b/pkg/project/api/v1/conversion.go @@ -1,9 +1,9 @@ package v1 import ( + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/registry/core/namespace" - "k8s.io/kubernetes/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" ) diff --git a/pkg/project/api/v1/register.go b/pkg/project/api/v1/register.go index 2a7f9a7c5c4a..8cc528cbd9de 100644 --- a/pkg/project/api/v1/register.go +++ b/pkg/project/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -33,10 +33,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/project/api/v1/types.go b/pkg/project/api/v1/types.go index 689e1efceef2..dd7a686ffc53 100644 --- a/pkg/project/api/v1/types.go +++ b/pkg/project/api/v1/types.go @@ -1,15 +1,15 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api/v1" ) // ProjectList is a list of Project objects. type ProjectList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of projects Items []Project `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -47,9 +47,9 @@ type ProjectStatus struct { // as editable to end users while namespaces are not. Direct creation of a project is typically restricted // to administrators, while end users should use the requestproject resource. type Project struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the behavior of the Namespace. Spec ProjectSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` @@ -60,9 +60,9 @@ type Project struct { // ProjecRequest is the set of options necessary to fully qualify a project request type ProjectRequest struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // DisplayName is the display name to apply to a project DisplayName string `json:"displayName,omitempty" protobuf:"bytes,2,opt,name=displayName"` // Description is the description to apply to a project diff --git a/pkg/project/api/v1/zz_generated.conversion.go b/pkg/project/api/v1/zz_generated.conversion.go index 1e450bfd33bb..66f3d014df96 100644 --- a/pkg/project/api/v1/zz_generated.conversion.go +++ b/pkg/project/api/v1/zz_generated.conversion.go @@ -5,12 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/project/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { diff --git a/pkg/project/api/v1/zz_generated.deepcopy.go b/pkg/project/api/v1/zz_generated.deepcopy.go index f7022edf8d61..1b98eaad9ae1 100644 --- a/pkg/project/api/v1/zz_generated.deepcopy.go +++ b/pkg/project/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/project/api/validation/validation.go b/pkg/project/api/validation/validation.go index c8d065596671..ca52cffb5a32 100644 --- a/pkg/project/api/validation/validation.go +++ b/pkg/project/api/validation/validation.go @@ -4,9 +4,9 @@ import ( "reflect" "strings" + "k8s.io/apimachinery/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - "k8s.io/kubernetes/pkg/util/validation/field" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/project/api" diff --git a/pkg/project/api/validation/validation_test.go b/pkg/project/api/validation/validation_test.go index 22daee139ffb..b7f2a686f3df 100644 --- a/pkg/project/api/validation/validation_test.go +++ b/pkg/project/api/validation/validation_test.go @@ -3,8 +3,8 @@ package validation import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation/field" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/project/api" @@ -19,7 +19,7 @@ func TestValidateProject(t *testing.T) { { name: "missing id", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ oapi.OpenShiftDescription: "This is a description", oapi.OpenShiftDisplayName: "hi", @@ -32,7 +32,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid id", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "141-.124.$", Annotations: map[string]string{ oapi.OpenShiftDescription: "This is a description", @@ -46,7 +46,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid id uppercase", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "AA", }, }, @@ -55,7 +55,7 @@ func TestValidateProject(t *testing.T) { { name: "valid id leading number", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "11", }, }, @@ -64,7 +64,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid id for create (< 2 characters)", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "h", }, }, @@ -73,7 +73,7 @@ func TestValidateProject(t *testing.T) { { name: "valid id for create (2+ characters)", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "hi", }, }, @@ -82,7 +82,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid id internal dots", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "1.a.1", }, }, @@ -91,7 +91,7 @@ func TestValidateProject(t *testing.T) { { name: "has namespace", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "foo", Annotations: map[string]string{ @@ -106,7 +106,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid display name", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "", Annotations: map[string]string{ @@ -121,7 +121,7 @@ func TestValidateProject(t *testing.T) { { name: "valid node selector", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "", Annotations: map[string]string{ @@ -134,7 +134,7 @@ func TestValidateProject(t *testing.T) { { name: "invalid node selector", project: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "", Annotations: map[string]string{ @@ -155,7 +155,7 @@ func TestValidateProject(t *testing.T) { } project := api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ oapi.OpenShiftDescription: "This is a description", @@ -173,7 +173,7 @@ func TestValidateProjectUpdate(t *testing.T) { // Ensure we can update projects with short names, to make sure we can // proxy updates to namespaces created outside project validation project := &api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: map[string]string{ @@ -185,7 +185,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, } updateDisplayname := &api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: map[string]string{ @@ -209,7 +209,7 @@ func TestValidateProjectUpdate(t *testing.T) { }{ "change name": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "different", ResourceVersion: "1", Annotations: project.Annotations, @@ -221,7 +221,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, "invalid displayname": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: map[string]string{ @@ -237,7 +237,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, "updating disallowed annotation": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: map[string]string{ @@ -253,7 +253,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, "delete annotation": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: map[string]string{ @@ -268,7 +268,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, "updating label": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: project.Annotations, @@ -280,7 +280,7 @@ func TestValidateProjectUpdate(t *testing.T) { }, "deleting label": { A: api.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "project-name", ResourceVersion: "1", Annotations: project.Annotations, diff --git a/pkg/project/api/zz_generated.deepcopy.go b/pkg/project/api/zz_generated.deepcopy.go index c1d1a8a9f429..38cd9677f23b 100644 --- a/pkg/project/api/zz_generated.deepcopy.go +++ b/pkg/project/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/project/auth/cache.go b/pkg/project/auth/cache.go index 89934c275d98..47c3f1937912 100644 --- a/pkg/project/auth/cache.go +++ b/pkg/project/auth/cache.go @@ -7,16 +7,17 @@ import ( "sync" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -188,10 +189,10 @@ func (ac *AuthorizationCache) Run(period time.Duration) { namespaceReflector := cache.NewReflector( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return ac.namespaceInterface.List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return ac.namespaceInterface.Watch(options) }, }, @@ -255,7 +256,7 @@ func (ac *AuthorizationCache) synchronizeNamespaces(userSubjectRecordStore cache // synchronizePolicies synchronizes access over each policy func (ac *AuthorizationCache) synchronizePolicies(userSubjectRecordStore cache.Store, groupSubjectRecordStore cache.Store, reviewRecordStore cache.Store) { - policyList, err := ac.policyNamespacer.Policies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policyList, err := ac.policyNamespacer.Policies(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { utilruntime.HandleError(err) return @@ -273,7 +274,7 @@ func (ac *AuthorizationCache) synchronizePolicies(userSubjectRecordStore cache.S // synchronizePolicyBindings synchronizes access over each policy binding func (ac *AuthorizationCache) synchronizePolicyBindings(userSubjectRecordStore cache.Store, groupSubjectRecordStore cache.Store, reviewRecordStore cache.Store) { - policyBindingList, err := ac.policyBindingNamespacer.PolicyBindings(kapi.NamespaceAll).List(kapi.ListOptions{}) + policyBindingList, err := ac.policyBindingNamespacer.PolicyBindings(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { utilruntime.HandleError(err) return @@ -310,7 +311,7 @@ func (ac *AuthorizationCache) purgeDeletedNamespaces(oldNamespaces, newNamespace func (ac *AuthorizationCache) invalidateCache() bool { invalidateCache := false - clusterPolicyList, err := ac.clusterPolicyLister.ClusterPolicies().List(kapi.ListOptions{}) + clusterPolicyList, err := ac.clusterPolicyLister.ClusterPolicies().List(metav1.ListOptions{}) if err != nil { utilruntime.HandleError(err) return invalidateCache @@ -325,7 +326,7 @@ func (ac *AuthorizationCache) invalidateCache() bool { ac.clusterPolicyResourceVersions = temporaryVersions } - clusterPolicyBindingList, err := ac.clusterPolicyBindingLister.ClusterPolicyBindings().List(kapi.ListOptions{}) + clusterPolicyBindingList, err := ac.clusterPolicyBindingLister.ClusterPolicyBindings().List(metav1.ListOptions{}) if err != nil { utilruntime.HandleError(err) return invalidateCache diff --git a/pkg/project/auth/cache_test.go b/pkg/project/auth/cache_test.go index 373b3c87f3b0..c0b10f05101e 100644 --- a/pkg/project/auth/cache_test.go +++ b/pkg/project/auth/cache_test.go @@ -5,10 +5,11 @@ import ( "strconv" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -26,11 +27,11 @@ func (this *MockPolicyClient) Policies(namespace string) client.PolicyLister { type MockPolicyGetter struct{} -func (this MockPolicyGetter) List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) { +func (this MockPolicyGetter) List(options metav1.ListOptions) (*authorizationapi.PolicyList, error) { return &authorizationapi.PolicyList{}, nil } -func (this MockPolicyGetter) Get(name string) (*authorizationapi.Policy, error) { +func (this MockPolicyGetter) Get(name string, options metav1.GetOptions) (*authorizationapi.Policy, error) { return &authorizationapi.Policy{}, nil } @@ -41,11 +42,11 @@ func (this *MockPolicyClient) ClusterPolicies() client.ClusterPolicyLister { type MockClusterPolicyGetter struct{} -func (this MockClusterPolicyGetter) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyList, error) { +func (this MockClusterPolicyGetter) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyList, error) { return &authorizationapi.ClusterPolicyList{}, nil } -func (this MockClusterPolicyGetter) Get(name string) (*authorizationapi.ClusterPolicy, error) { +func (this MockClusterPolicyGetter) Get(name string, options metav1.GetOptions) (*authorizationapi.ClusterPolicy, error) { return &authorizationapi.ClusterPolicy{}, nil } @@ -56,11 +57,11 @@ func (this *MockPolicyClient) PolicyBindings(namespace string) client.PolicyBind type MockPolicyBindingGetter struct{} -func (this MockPolicyBindingGetter) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (this MockPolicyBindingGetter) List(options metav1.ListOptions) (*authorizationapi.PolicyBindingList, error) { return &authorizationapi.PolicyBindingList{}, nil } -func (this MockPolicyBindingGetter) Get(name string) (*authorizationapi.PolicyBinding, error) { +func (this MockPolicyBindingGetter) Get(name string, options metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { return &authorizationapi.PolicyBinding{}, nil } @@ -71,11 +72,11 @@ func (this *MockPolicyClient) ClusterPolicyBindings() client.ClusterPolicyBindin type MockClusterPolicyBindingGetter struct{} -func (this MockClusterPolicyBindingGetter) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { +func (this MockClusterPolicyBindingGetter) List(options metav1.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { return &authorizationapi.ClusterPolicyBindingList{}, nil } -func (this MockClusterPolicyBindingGetter) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { +func (this MockClusterPolicyBindingGetter) Get(name string, options metav1.GetOptions) (*authorizationapi.ClusterPolicyBinding, error) { return &authorizationapi.ClusterPolicyBinding{}, nil } @@ -161,13 +162,13 @@ func TestSyncNamespace(t *testing.T) { namespaceList := kapi.NamespaceList{ Items: []kapi.Namespace{ { - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "1"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "1"}, }, { - ObjectMeta: kapi.ObjectMeta{Name: "bar", ResourceVersion: "2"}, + ObjectMeta: metav1.ObjectMeta{Name: "bar", ResourceVersion: "2"}, }, { - ObjectMeta: kapi.ObjectMeta{Name: "car", ResourceVersion: "3"}, + ObjectMeta: metav1.ObjectMeta{Name: "car", ResourceVersion: "3"}, }, }, } diff --git a/pkg/project/auth/reviewer.go b/pkg/project/auth/reviewer.go index c5f0223ec7e9..ad7e7da433c3 100644 --- a/pkg/project/auth/reviewer.go +++ b/pkg/project/auth/reviewer.go @@ -1,8 +1,8 @@ package auth import ( + kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/authorization/authorizer" diff --git a/pkg/project/auth/watch.go b/pkg/project/auth/watch.go index 333b6f316215..17918e2fcf24 100644 --- a/pkg/project/auth/watch.go +++ b/pkg/project/auth/watch.go @@ -6,13 +6,13 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - kstorage "k8s.io/kubernetes/pkg/storage" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" projectcache "github.com/openshift/origin/pkg/project/cache" projectutil "github.com/openshift/origin/pkg/project/util" @@ -123,7 +123,7 @@ func (w *userProjectWatcher) GroupMembershipChanged(namespaceName string, users, select { case w.cacheIncoming <- watch.Event{ Type: watch.Deleted, - Object: projectutil.ConvertNamespace(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: namespaceName}}), + Object: projectutil.ConvertNamespace(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespaceName}}), }: default: // remove the watcher so that we wont' be notified again and block @@ -215,8 +215,8 @@ func (w *userProjectWatcher) Watch() { func makeErrorEvent(err error) watch.Event { return watch.Event{ Type: watch.Error, - Object: &unversioned.Status{ - Status: unversioned.StatusFailure, + Object: &metav1.Status{ + Status: metav1.StatusFailure, Message: err.Error(), }, } diff --git a/pkg/project/auth/watch_test.go b/pkg/project/auth/watch_test.go index db116c178c57..8095e32a158c 100644 --- a/pkg/project/auth/watch_test.go +++ b/pkg/project/auth/watch_test.go @@ -4,13 +4,14 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" projectapi "github.com/openshift/origin/pkg/project/api" projectcache "github.com/openshift/origin/pkg/project/cache" @@ -180,7 +181,7 @@ func TestAddModifyDeleteEventsByGroup(t *testing.T) { func newNamespaces(names ...string) []*kapi.Namespace { ret := []*kapi.Namespace{} for _, name := range names { - ret = append(ret, &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: name}}) + ret = append(ret, &kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: name}}) } return ret diff --git a/pkg/project/cache/cache.go b/pkg/project/cache/cache.go index dcae6a9c2441..f8876d3c190e 100644 --- a/pkg/project/cache/cache.go +++ b/pkg/project/cache/cache.go @@ -4,13 +4,15 @@ import ( "fmt" "time" + "github.com/golang/glog" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" - "github.com/golang/glog" projectapi "github.com/openshift/origin/pkg/project/api" "github.com/openshift/origin/pkg/util/labelselector" ) @@ -30,7 +32,7 @@ type ProjectCache struct { } func (p *ProjectCache) GetNamespace(name string) (*kapi.Namespace, error) { - key := &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: name}} + key := &kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: name}} // check for namespace in the cache namespaceObj, exists, err := p.Store.Get(key) @@ -55,7 +57,7 @@ func (p *ProjectCache) GetNamespace(name string) (*kapi.Namespace, error) { namespace = namespaceObj.(*kapi.Namespace) } else { // Our watch maybe latent, so we make a best effort to get the object, and only fail if not found - namespace, err = p.Client.Get(name) + namespace, err = p.Client.Get(name, metav1.GetOptions{}) // the namespace does not exist, so prevent create and update in that namespace if err != nil { return nil, fmt.Errorf("namespace %s does not exist", name) @@ -94,10 +96,10 @@ func (c *ProjectCache) Run() { store := NewCacheStore(cache.MetaNamespaceKeyFunc) reflector := cache.NewReflector( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return c.Client.List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return c.Client.Watch(options) }, }, diff --git a/pkg/project/client/clientset_generated/internalclientset/clientset.go b/pkg/project/client/clientset_generated/internalclientset/clientset.go index 569df61481f2..24e0c443b653 100644 --- a/pkg/project/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/project/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/project/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/project/client/clientset_generated/internalclientset/fake/clientset_generated.go index 4917ac57191f..483c903d0fc9 100644 --- a/pkg/project/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/project/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/project/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index d8cb80603b0e..acfda5ff7dce 100644 --- a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { ProjectsGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index 275accc93352..f9b54b67e9b3 100644 --- a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_project.go b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_project.go index 9b33c6a975e1..1c8c4a150558 100644 --- a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_project.go +++ b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_project.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/project/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeProjects implements ProjectInterface @@ -14,7 +14,7 @@ type FakeProjects struct { Fake *FakeCore } -var projectsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "projects"} +var projectsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "projects"} func (c *FakeProjects) Create(project *api.Project) (result *api.Project, err error) { obj, err := c.Fake. diff --git a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/project.go b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/project.go index 9b088ba71166..ba6956398300 100644 --- a/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/project.go +++ b/pkg/project/client/clientset_generated/internalclientset/typed/core/internalversion/project.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/project/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ProjectsGetter has a method to return a ProjectInterface. diff --git a/pkg/project/client/clientset_generated/release_v1_5/clientset.go b/pkg/project/client/clientset_generated/release_v1_5/clientset.go index a54df1730299..a782f0fd9cfc 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/project/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/project/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/project/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 58ce386fcfbc..5aa177f63b22 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/project/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/project/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 8855f48f388c..c498d9b855fb 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { ProjectsGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 7af3ba09b88a..497e836e69dc 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_project.go b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_project.go index 2e98f75ca1e6..5f8c01c93d18 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_project.go +++ b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_project.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/project/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeProjects implements ProjectInterface @@ -15,7 +15,7 @@ type FakeProjects struct { Fake *FakeCoreV1 } -var projectsResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "projects"} +var projectsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "projects"} func (c *FakeProjects) Create(project *v1.Project) (result *v1.Project, err error) { obj, err := c.Fake. diff --git a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/project.go b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/project.go index 24619b2fc5c0..6b97ebb1042a 100644 --- a/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/project.go +++ b/pkg/project/client/clientset_generated/release_v1_5/typed/core/v1/project.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/project/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ProjectsGetter has a method to return a ProjectInterface. diff --git a/pkg/project/controller/controller.go b/pkg/project/controller/controller.go index 17fc6c160697..6d13fb10d120 100644 --- a/pkg/project/controller/controller.go +++ b/pkg/project/controller/controller.go @@ -1,8 +1,9 @@ package controller import ( + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" osclient "github.com/openshift/origin/pkg/client" projectutil "github.com/openshift/origin/pkg/project/util" @@ -105,7 +106,7 @@ func deleteAllContent(client osclient.Interface, namespace string) (err error) { } func deleteRoleBindingRestrictions(client osclient.Interface, ns string) error { - items, err := client.RoleBindingRestrictions(ns).List(kapi.ListOptions{}) + items, err := client.RoleBindingRestrictions(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -119,7 +120,7 @@ func deleteRoleBindingRestrictions(client osclient.Interface, ns string) error { } func deleteTemplates(client osclient.Interface, ns string) error { - items, err := client.Templates(ns).List(kapi.ListOptions{}) + items, err := client.Templates(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -133,7 +134,7 @@ func deleteTemplates(client osclient.Interface, ns string) error { } func deleteRoutes(client osclient.Interface, ns string) error { - items, err := client.Routes(ns).List(kapi.ListOptions{}) + items, err := client.Routes(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -147,7 +148,7 @@ func deleteRoutes(client osclient.Interface, ns string) error { } func deleteRoles(client osclient.Interface, ns string) error { - items, err := client.Roles(ns).List(kapi.ListOptions{}) + items, err := client.Roles(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -161,7 +162,7 @@ func deleteRoles(client osclient.Interface, ns string) error { } func deleteRoleBindings(client osclient.Interface, ns string) error { - items, err := client.RoleBindings(ns).List(kapi.ListOptions{}) + items, err := client.RoleBindings(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -175,7 +176,7 @@ func deleteRoleBindings(client osclient.Interface, ns string) error { } func deletePolicyBindings(client osclient.Interface, ns string) error { - items, err := client.PolicyBindings(ns).List(kapi.ListOptions{}) + items, err := client.PolicyBindings(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -189,7 +190,7 @@ func deletePolicyBindings(client osclient.Interface, ns string) error { } func deletePolicies(client osclient.Interface, ns string) error { - items, err := client.Policies(ns).List(kapi.ListOptions{}) + items, err := client.Policies(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -203,7 +204,7 @@ func deletePolicies(client osclient.Interface, ns string) error { } func deleteImageStreams(client osclient.Interface, ns string) error { - items, err := client.ImageStreams(ns).List(kapi.ListOptions{}) + items, err := client.ImageStreams(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -217,7 +218,7 @@ func deleteImageStreams(client osclient.Interface, ns string) error { } func deleteEgressNetworkPolicies(client osclient.Interface, ns string) error { - items, err := client.EgressNetworkPolicies(ns).List(kapi.ListOptions{}) + items, err := client.EgressNetworkPolicies(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -231,7 +232,7 @@ func deleteEgressNetworkPolicies(client osclient.Interface, ns string) error { } func deleteDeploymentConfigs(client osclient.Interface, ns string) error { - items, err := client.DeploymentConfigs(ns).List(kapi.ListOptions{}) + items, err := client.DeploymentConfigs(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -245,7 +246,7 @@ func deleteDeploymentConfigs(client osclient.Interface, ns string) error { } func deleteBuilds(client osclient.Interface, ns string) error { - items, err := client.Builds(ns).List(kapi.ListOptions{}) + items, err := client.Builds(ns).List(metav1.ListOptions{}) if err != nil { if errors.IsNotFound(err) { return nil @@ -262,7 +263,7 @@ func deleteBuilds(client osclient.Interface, ns string) error { } func deleteBuildConfigs(client osclient.Interface, ns string) error { - items, err := client.BuildConfigs(ns).List(kapi.ListOptions{}) + items, err := client.BuildConfigs(ns).List(metav1.ListOptions{}) if err != nil { if errors.IsNotFound(err) { return nil diff --git a/pkg/project/controller/controller_test.go b/pkg/project/controller/controller_test.go index 13f8fb995b92..65403be0cc05 100644 --- a/pkg/project/controller/controller_test.go +++ b/pkg/project/controller/controller_test.go @@ -3,9 +3,10 @@ package controller import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/project/api" @@ -19,9 +20,9 @@ func TestSyncNamespaceThatIsTerminating(t *testing.T) { KubeClient: mockKubeClient, Client: mockOriginClient, } - now := unversioned.Now() + now := metav1.Now() testNamespace := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", ResourceVersion: "1", DeletionTimestamp: &now, @@ -39,23 +40,23 @@ func TestSyncNamespaceThatIsTerminating(t *testing.T) { } // TODO: we will expect a finalize namespace call after rebase - expectedActionSet := []core.Action{ - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "buildconfigs"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "policies"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "imagestreams"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "policybindings"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "rolebindings"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "roles"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "routes"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "templates"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "builds"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "namespace"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "deploymentconfig"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "egressnetworkpolicy"}, "", kapi.ListOptions{}), - core.NewListAction(unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "rolebindingrestrictions"}, "", kapi.ListOptions{}), + expectedActionSet := []clientgotesting.Action{ + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "buildconfigs"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "policies"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "imagestreams"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "policybindings"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "rolebindings"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "roles"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "routes"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "templates"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "builds"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "namespace"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "deploymentconfig"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "egressnetworkpolicy"}, "", metav1.ListOptions{}), + clientgotesting.NewListAction(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "rolebindingrestrictions"}, "", metav1.ListOptions{}), } - kubeActionSet := []core.Action{} - originActionSet := []core.Action{} + kubeActionSet := []clientgotesting.Action{} + originActionSet := []clientgotesting.Action{} for i := range mockKubeClient.Actions() { kubeActionSet = append(kubeActionSet, mockKubeClient.Actions()[i]) } @@ -76,7 +77,7 @@ func TestSyncNamespaceThatIsActive(t *testing.T) { Client: mockOriginClient, } testNamespace := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", ResourceVersion: "1", }, @@ -91,8 +92,8 @@ func TestSyncNamespaceThatIsActive(t *testing.T) { if err != nil { t.Errorf("Unexpected error when handling namespace %v", err) } - kubeActionSet := []core.Action{} - originActionSet := []core.Action{} + kubeActionSet := []clientgotesting.Action{} + originActionSet := []clientgotesting.Action{} for i := range mockKubeClient.Actions() { kubeActionSet = append(kubeActionSet, mockKubeClient.Actions()[i]) } diff --git a/pkg/project/controller/factory.go b/pkg/project/controller/factory.go index 9795c43b8aff..b92d16e60aba 100644 --- a/pkg/project/controller/factory.go +++ b/pkg/project/controller/factory.go @@ -3,13 +3,14 @@ package controller import ( "time" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" osclient "github.com/openshift/origin/pkg/client" controller "github.com/openshift/origin/pkg/controller" @@ -25,10 +26,10 @@ type NamespaceControllerFactory struct { // Create creates a NamespaceController. func (factory *NamespaceControllerFactory) Create() controller.RunnableController { namespaceLW := &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return factory.KubeClient.Core().Namespaces().List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return factory.KubeClient.Core().Namespaces().Watch(options) }, } diff --git a/pkg/project/registry/project/proxy/proxy.go b/pkg/project/registry/project/proxy/proxy.go index 2a5089bfc638..b9e3a69de4fa 100644 --- a/pkg/project/registry/project/proxy/proxy.go +++ b/pkg/project/registry/project/proxy/proxy.go @@ -3,16 +3,18 @@ package proxy import ( "fmt" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" nsregistry "k8s.io/kubernetes/pkg/registry/core/namespace" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/watch" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -65,8 +67,9 @@ func (*REST) NewList() runtime.Object { var _ = rest.Lister(&REST{}) // List retrieves a list of Projects that match label. -func (s *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { - user, ok := kapi.UserFrom(ctx) + +func (s *REST) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { + user, ok := apirequest.UserFrom(ctx) if !ok { return nil, kerrors.NewForbidden(projectapi.Resource("project"), "", fmt.Errorf("unable to list projects without a user on the context")) } @@ -74,7 +77,7 @@ func (s *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object if err != nil { return nil, err } - m := nsregistry.MatchNamespace(oapi.ListOptionsToSelectors(options)) + m := nsregistry.MatchNamespace(oapi.InternalListOptionsToSelectors(options)) list, err := filterList(namespaceList, m, nil) if err != nil { return nil, err @@ -82,11 +85,11 @@ func (s *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object return projectutil.ConvertNamespaceList(list.(*kapi.NamespaceList)), nil } -func (s *REST) Watch(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *REST) Watch(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { if ctx == nil { return nil, fmt.Errorf("Context is nil") } - userInfo, exists := kapi.UserFrom(ctx) + userInfo, exists := apirequest.UserFrom(ctx) if !exists { return nil, fmt.Errorf("no user") } @@ -108,8 +111,12 @@ func (s *REST) Watch(ctx kapi.Context, options *kapi.ListOptions) (watch.Interfa var _ = rest.Getter(&REST{}) // Get retrieves a Project by name -func (s *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - namespace, err := s.client.Get(name) +func (s *REST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + opts := metav1.GetOptions{} + if options != nil { + opts = *options + } + namespace, err := s.client.Get(name, opts) if err != nil { return nil, err } @@ -119,12 +126,12 @@ func (s *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { var _ = rest.Creater(&REST{}) // Create registers the given Project. -func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { project, ok := obj.(*api.Project) if !ok { return nil, fmt.Errorf("not a project: %#v", obj) } - kapi.FillObjectMetaSystemFields(ctx, &project.ObjectMeta) + rest.FillObjectMetaSystemFields(ctx, &project.ObjectMeta) s.createStrategy.PrepareForCreate(ctx, obj) if errs := s.createStrategy.Validate(ctx, obj); len(errs) > 0 { return nil, kerrors.NewInvalid(projectapi.Kind("Project"), project.Name, errs) @@ -138,8 +145,8 @@ func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err var _ = rest.Updater(&REST{}) -func (s *REST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - oldObj, err := s.Get(ctx, name) +func (s *REST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { + oldObj, err := s.Get(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, err } @@ -170,8 +177,8 @@ func (s *REST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectI var _ = rest.Deleter(&REST{}) // Delete deletes a Project specified by its name -func (s *REST) Delete(ctx kapi.Context, name string) (runtime.Object, error) { - return &unversioned.Status{Status: unversioned.StatusSuccess}, s.client.Delete(name, nil) +func (s *REST) Delete(ctx apirequest.Context, name string) (runtime.Object, error) { + return &metav1.Status{Status: metav1.StatusSuccess}, s.client.Delete(name, nil) } // decoratorFunc can mutate the provided object prior to being returned. diff --git a/pkg/project/registry/project/proxy/proxy_test.go b/pkg/project/registry/project/proxy/proxy_test.go index 0edfb906f749..c3cbae291c81 100644 --- a/pkg/project/registry/project/proxy/proxy_test.go +++ b/pkg/project/registry/project/proxy/proxy_test.go @@ -4,10 +4,11 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" oapi "github.com/openshift/origin/pkg/api" @@ -27,7 +28,7 @@ func TestListProjects(t *testing.T) { namespaceList := kapi.NamespaceList{ Items: []kapi.Namespace{ { - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }, }, } @@ -41,7 +42,7 @@ func TestListProjects(t *testing.T) { UID: "test-uid", Groups: []string{"test-groups"}, } - ctx := kapi.WithUser(kapi.NewContext(), user) + ctx := apirequest.WithUser(apirequest.NewContext(), user) response, err := storage.List(ctx, nil) if err != nil { t.Errorf("%#v should be nil.", err) @@ -59,7 +60,7 @@ func TestListProjects(t *testing.T) { func TestCreateProjectBadObject(t *testing.T) { storage := REST{} - obj, err := storage.Create(kapi.NewContext(), &api.ProjectList{}) + obj, err := storage.Create(apirequest.NewContext(), &api.ProjectList{}) if obj != nil { t.Errorf("Expected nil, got %v", obj) } @@ -71,8 +72,8 @@ func TestCreateProjectBadObject(t *testing.T) { func TestCreateInvalidProject(t *testing.T) { mockClient := &fake.Clientset{} storage := NewREST(mockClient.Core().Namespaces(), &mockLister{}, nil, nil) - _, err := storage.Create(kapi.NewContext(), &api.Project{ - ObjectMeta: kapi.ObjectMeta{ + _, err := storage.Create(apirequest.NewContext(), &api.Project{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{oapi.OpenShiftDisplayName: "h\t\ni"}, }, }) @@ -84,8 +85,8 @@ func TestCreateInvalidProject(t *testing.T) { func TestCreateProjectOK(t *testing.T) { mockClient := &fake.Clientset{} storage := NewREST(mockClient.Core().Namespaces(), &mockLister{}, nil, nil) - _, err := storage.Create(kapi.NewContext(), &api.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + _, err := storage.Create(apirequest.NewContext(), &api.Project{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }) if err != nil { t.Errorf("Unexpected non-nil error: %#v", err) @@ -99,9 +100,9 @@ func TestCreateProjectOK(t *testing.T) { } func TestGetProjectOK(t *testing.T) { - mockClient := fake.NewSimpleClientset(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: "foo"}}) + mockClient := fake.NewSimpleClientset(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}) storage := NewREST(mockClient.Core().Namespaces(), &mockLister{}, nil, nil) - project, err := storage.Get(kapi.NewContext(), "foo") + project, err := storage.Get(apirequest.NewContext(), "foo", &metav1.GetOptions{}) if project == nil { t.Error("Unexpected nil project") } @@ -118,18 +119,18 @@ func TestDeleteProject(t *testing.T) { storage := REST{ client: mockClient.Core().Namespaces(), } - obj, err := storage.Delete(kapi.NewContext(), "foo") + obj, err := storage.Delete(apirequest.NewContext(), "foo") if obj == nil { t.Error("Unexpected nil obj") } if err != nil { t.Errorf("Unexpected non-nil error: %#v", err) } - status, ok := obj.(*unversioned.Status) + status, ok := obj.(*metav1.Status) if !ok { t.Errorf("Expected status type, got: %#v", obj) } - if status.Status != unversioned.StatusSuccess { + if status.Status != metav1.StatusSuccess { t.Errorf("Expected status=success, got: %#v", status) } if len(mockClient.Actions()) != 1 { diff --git a/pkg/project/registry/project/rest_test.go b/pkg/project/registry/project/rest_test.go index ef36247d7d13..c63d49edfad9 100644 --- a/pkg/project/registry/project/rest_test.go +++ b/pkg/project/registry/project/rest_test.go @@ -3,13 +3,14 @@ package project import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/project/api" ) func TestProjectStrategy(t *testing.T) { - ctx := kapi.NewDefaultContext() + ctx := apirequest.NewDefaultContext() if Strategy.NamespaceScoped() { t.Errorf("Projects should not be namespace scoped") } @@ -17,7 +18,7 @@ func TestProjectStrategy(t *testing.T) { t.Errorf("Projects should not allow create on update") } project := &api.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "foo", ResourceVersion: "10"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, } Strategy.PrepareForCreate(ctx, project) if len(project.Spec.Finalizers) != 1 || project.Spec.Finalizers[0] != api.FinalizerOrigin { @@ -28,7 +29,7 @@ func TestProjectStrategy(t *testing.T) { t.Errorf("Unexpected error validating %v", errs) } invalidProject := &api.Project{ - ObjectMeta: kapi.ObjectMeta{Name: "bar", ResourceVersion: "4"}, + ObjectMeta: metav1.ObjectMeta{Name: "bar", ResourceVersion: "4"}, } // ensure we copy spec.finalizers from old to new Strategy.PrepareForUpdate(ctx, invalidProject, project) diff --git a/pkg/project/registry/project/strategy.go b/pkg/project/registry/project/strategy.go index 5da55c45b193..ee1a7c0afd09 100644 --- a/pkg/project/registry/project/strategy.go +++ b/pkg/project/registry/project/strategy.go @@ -1,9 +1,11 @@ package project import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/project/api" "github.com/openshift/origin/pkg/project/api/validation" @@ -12,12 +14,12 @@ import ( // projectStrategy implements behavior for projects type projectStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating Project // objects via the REST API. -var Strategy = projectStrategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = projectStrategy{kapi.Scheme, names.SimpleNameGenerator} // NamespaceScoped is false for projects. func (projectStrategy) NamespaceScoped() bool { @@ -25,7 +27,7 @@ func (projectStrategy) NamespaceScoped() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (projectStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (projectStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { project := obj.(*api.Project) hasProjectFinalizer := false for i := range project.Spec.Finalizers { @@ -44,7 +46,7 @@ func (projectStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (projectStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (projectStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newProject := obj.(*api.Project) oldProject := old.(*api.Project) newProject.Spec.Finalizers = oldProject.Spec.Finalizers @@ -52,7 +54,7 @@ func (projectStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Objec } // Validate validates a new project. -func (projectStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (projectStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateProject(obj.(*api.Project)) } @@ -70,6 +72,6 @@ func (projectStrategy) Canonicalize(obj runtime.Object) { } // ValidateUpdate is the default update validation for an end user. -func (projectStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (projectStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateProjectUpdate(obj.(*api.Project), old.(*api.Project)) } diff --git a/pkg/project/registry/projectrequest/delegated/delegated.go b/pkg/project/registry/projectrequest/delegated/delegated.go index bb3595110f42..1fe9f2e29381 100644 --- a/pkg/project/registry/projectrequest/delegated/delegated.go +++ b/pkg/project/registry/projectrequest/delegated/delegated.go @@ -7,18 +7,20 @@ import ( "github.com/golang/glog" + kapierror "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/retry" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/api/latest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -35,14 +37,14 @@ type REST struct { templateName string openshiftClient *client.Client - kubeClient *kclientset.Clientset + kubeClient kclientset.Interface // policyBindings is an auth cache that is shared with the authorizer for the API server. // we use this cache to detect when the authorizer has observed the change for the auth rules policyBindings client.PolicyBindingsListerNamespacer } -func NewREST(message, templateNamespace, templateName string, openshiftClient *client.Client, kubeClient *kclientset.Clientset, policyBindingCache client.PolicyBindingsListerNamespacer) *REST { +func NewREST(message, templateNamespace, templateName string, openshiftClient *client.Client, kubeClient kclientset.Interface, policyBindingCache client.PolicyBindingsListerNamespacer) *REST { return &REST{ message: message, templateNamespace: templateNamespace, @@ -58,7 +60,7 @@ func (r *REST) New() runtime.Object { } func (r *REST) NewList() runtime.Object { - return &unversioned.Status{} + return &metav1.Status{} } var _ = rest.Creater(&REST{}) @@ -68,7 +70,7 @@ var ( forbiddenPrefixes = []string{"openshift-", "kubernetes-", "kube-"} ) -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { if err := rest.BeforeCreate(projectrequestregistry.Strategy, ctx, obj); err != nil { return nil, err @@ -86,14 +88,14 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } } - if _, err := r.openshiftClient.Projects().Get(projectRequest.Name); err == nil { + if _, err := r.openshiftClient.Projects().Get(projectRequest.Name, metav1.GetOptions{}); err == nil { return nil, kapierror.NewAlreadyExists(projectapi.Resource("project"), projectRequest.Name) } projectName := projectRequest.Name projectAdmin := "" projectRequester := "" - if userInfo, exists := kapi.UserFrom(ctx); exists { + if userInfo, exists := apirequest.UserFrom(ctx); exists { projectAdmin = userInfo.GetName() projectRequester = userInfo.GetName() } @@ -118,7 +120,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err } } - list, err := r.openshiftClient.TemplateConfigs(kapi.NamespaceDefault).Create(template) + list, err := r.openshiftClient.TemplateConfigs(metav1.NamespaceDefault).Create(template) if err != nil { return nil, err } @@ -171,7 +173,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if latest.OriginKind(mapping.GroupVersionKind) { return r.openshiftClient, nil } - return r.kubeClient.CoreClient.RESTClient(), nil + return r.kubeClient.Core().RESTClient(), nil }), }, After: stopOnErr, @@ -191,7 +193,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err r.waitForRoleBinding(projectName, lastRoleBinding.Name) } - return r.openshiftClient.Projects().Get(projectName) + return r.openshiftClient.Projects().Get(projectName, metav1.GetOptions{}) } func (r *REST) waitForRoleBinding(namespace, name string) { @@ -201,7 +203,7 @@ func (r *REST) waitForRoleBinding(namespace, name string) { backoff := retry.DefaultBackoff backoff.Steps = 6 // this effectively waits for 6-ish seconds err := wait.ExponentialBackoff(backoff, func() (bool, error) { - policyBindingList, _ := r.policyBindings.PolicyBindings(namespace).List(kapi.ListOptions{}) + policyBindingList, _ := r.policyBindings.PolicyBindings(namespace).List(metav1.ListOptions{}) for _, policyBinding := range policyBindingList.Items { for roleBindingName := range policyBinding.RoleBindings { if roleBindingName == name { @@ -223,13 +225,13 @@ func (r *REST) getTemplate() (*templateapi.Template, error) { return DefaultTemplate(), nil } - return r.openshiftClient.Templates(r.templateNamespace).Get(r.templateName) + return r.openshiftClient.Templates(r.templateNamespace).Get(r.templateName, metav1.GetOptions{}) } var _ = rest.Lister(&REST{}) -func (r *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { - userInfo, exists := kapi.UserFrom(ctx) +func (r *REST) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { + userInfo, exists := apirequest.UserFrom(ctx) if !exists { return nil, errors.New("a user must be provided") } @@ -249,15 +251,15 @@ func (r *REST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object return nil, err } if accessReviewResponse.Allowed { - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, nil } forbiddenError := kapierror.NewForbidden(projectapi.Resource("projectrequest"), "", errors.New("you may not request a new project via this API.")) if len(r.message) > 0 { forbiddenError.ErrStatus.Message = r.message - forbiddenError.ErrStatus.Details = &unversioned.StatusDetails{ + forbiddenError.ErrStatus.Details = &metav1.StatusDetails{ Kind: "ProjectRequest", - Causes: []unversioned.StatusCause{ + Causes: []metav1.StatusCause{ {Message: r.message}, }, } diff --git a/pkg/project/registry/projectrequest/delegated/delegated_test.go b/pkg/project/registry/projectrequest/delegated/delegated_test.go index a23208bd8317..a0eb21de6cb4 100644 --- a/pkg/project/registry/projectrequest/delegated/delegated_test.go +++ b/pkg/project/registry/projectrequest/delegated/delegated_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -62,7 +62,7 @@ func (t *testReadOnlyPolicyBinding) PolicyBindings(namespace string) client.Poli } // ReadOnlyPolicyBindingInterface exposes methods on PolicyBindings resources -func (t *testReadOnlyPolicyBinding) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { +func (t *testReadOnlyPolicyBinding) List(options metav1.ListOptions) (*authorizationapi.PolicyBindingList, error) { t.lock.Lock() defer t.lock.Unlock() @@ -80,7 +80,7 @@ func (t *testReadOnlyPolicyBinding) List(options kapi.ListOptions) (*authorizati return ret, nil } -func (t *testReadOnlyPolicyBinding) Get(name string) (*authorizationapi.PolicyBinding, error) { +func (t *testReadOnlyPolicyBinding) Get(name string, options metav1.GetOptions) (*authorizationapi.PolicyBinding, error) { t.lock.Lock() defer t.lock.Unlock() return t.binding, nil diff --git a/pkg/project/registry/projectrequest/delegated/sample_template.go b/pkg/project/registry/projectrequest/delegated/sample_template.go index 67cd544ee2b2..9c6a514c6422 100644 --- a/pkg/project/registry/projectrequest/delegated/sample_template.go +++ b/pkg/project/registry/projectrequest/delegated/sample_template.go @@ -1,8 +1,8 @@ package delegated import ( + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" diff --git a/pkg/project/registry/projectrequest/strategy.go b/pkg/project/registry/projectrequest/strategy.go index 55d109dafe08..2f2776a38572 100644 --- a/pkg/project/registry/projectrequest/strategy.go +++ b/pkg/project/registry/projectrequest/strategy.go @@ -1,9 +1,10 @@ package projectrequest import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" projectapi "github.com/openshift/origin/pkg/project/api" projectvalidation "github.com/openshift/origin/pkg/project/api/validation" @@ -16,7 +17,7 @@ type strategy struct { var Strategy = strategy{kapi.Scheme} -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for projectrequest objects func (strategy) NamespaceScoped() bool { @@ -27,17 +28,17 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new client -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { projectrequest := obj.(*projectapi.ProjectRequest) return projectvalidation.ValidateProjectRequest(projectrequest) } // ValidateUpdate validates a client update -func (strategy) ValidateUpdate(ctx kapi.Context, obj runtime.Object, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj runtime.Object, old runtime.Object) field.ErrorList { return nil } diff --git a/pkg/project/util/util.go b/pkg/project/util/util.go index fc43b46e67c8..7306c024813f 100644 --- a/pkg/project/util/util.go +++ b/pkg/project/util/util.go @@ -1,10 +1,11 @@ package util import ( + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/sets" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/project/api" @@ -57,7 +58,7 @@ func Finalize(kubeClient clientset.Interface, namespace *kapi.Namespace) (result return nil, err } - namespace, err = kubeClient.Core().Namespaces().Get(namespace.Name) + namespace, err = kubeClient.Core().Namespaces().Get(namespace.Name, metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/project/util/util_test.go b/pkg/project/util/util_test.go index 34c46415c732..8fb5780d5681 100644 --- a/pkg/project/util/util_test.go +++ b/pkg/project/util/util_test.go @@ -4,9 +4,9 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/diff" "github.com/google/gofuzz" "github.com/openshift/origin/pkg/project/api" @@ -18,7 +18,7 @@ func TestProjectFidelity(t *testing.T) { p := &api.Project{} for i := 0; i < 100; i++ { f.Fuzz(p) - p.TypeMeta = unversioned.TypeMeta{} // Ignore TypeMeta + p.TypeMeta = metav1.TypeMeta{} // Ignore TypeMeta namespace := ConvertProject(p) p2 := ConvertNamespace(namespace) if !reflect.DeepEqual(p, p2) { @@ -33,7 +33,7 @@ func TestNamespaceFidelity(t *testing.T) { n := &kapi.Namespace{} for i := 0; i < 100; i++ { f.Fuzz(n) - n.TypeMeta = unversioned.TypeMeta{} // Ignore TypeMeta + n.TypeMeta = metav1.TypeMeta{} // Ignore TypeMeta project := ConvertNamespace(n) n2 := ConvertProject(project) if !reflect.DeepEqual(n, n2) { diff --git a/pkg/proxy/hybrid/proxy.go b/pkg/proxy/hybrid/proxy.go index e67a998f8fe8..db3050fd4221 100644 --- a/pkg/proxy/hybrid/proxy.go +++ b/pkg/proxy/hybrid/proxy.go @@ -6,10 +6,10 @@ import ( "github.com/openshift/origin/pkg/proxy/userspace" unidlingapi "github.com/openshift/origin/pkg/unidling/api" + "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/config" - "k8s.io/kubernetes/pkg/types" "github.com/golang/glog" ) diff --git a/pkg/proxy/unidler/unidlerproxy.go b/pkg/proxy/unidler/unidlerproxy.go index 01c440d8960b..47d471fbe17a 100644 --- a/pkg/proxy/unidler/unidlerproxy.go +++ b/pkg/proxy/unidler/unidlerproxy.go @@ -4,11 +4,11 @@ import ( "net" "time" + utilnet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/client-go/tools/record" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/record" utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/iptables" - utilnet "k8s.io/kubernetes/pkg/util/net" "github.com/openshift/origin/pkg/proxy/userspace" unidlingapi "github.com/openshift/origin/pkg/unidling/api" diff --git a/pkg/proxy/unidler/unidlersocket.go b/pkg/proxy/unidler/unidlersocket.go index 97067aef38ef..601b92402aed 100644 --- a/pkg/proxy/unidler/unidlersocket.go +++ b/pkg/proxy/unidler/unidlersocket.go @@ -8,9 +8,9 @@ import ( "time" "github.com/golang/glog" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" "github.com/openshift/origin/pkg/proxy/userspace" ) diff --git a/pkg/proxy/userspace/port_allocator.go b/pkg/proxy/userspace/port_allocator.go index b9990446f34c..6377fd0c3315 100644 --- a/pkg/proxy/userspace/port_allocator.go +++ b/pkg/proxy/userspace/port_allocator.go @@ -7,8 +7,8 @@ import ( "sync" "time" - "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/wait" + "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/wait" ) var ( diff --git a/pkg/proxy/userspace/port_allocator_test.go b/pkg/proxy/userspace/port_allocator_test.go index ed8fb773f17d..6045b85742bc 100644 --- a/pkg/proxy/userspace/port_allocator_test.go +++ b/pkg/proxy/userspace/port_allocator_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/util/net" + "k8s.io/apimachinery/pkg/util/net" ) func TestRangeAllocatorEmpty(t *testing.T) { diff --git a/pkg/proxy/userspace/proxier.go b/pkg/proxy/userspace/proxier.go index 6102703360e9..a4fa4dea9c8e 100644 --- a/pkg/proxy/userspace/proxier.go +++ b/pkg/proxy/userspace/proxier.go @@ -10,16 +10,16 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/types" + utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/types" - utilnet "k8s.io/kubernetes/pkg/util/net" - utilerrors "k8s.io/kubernetes/pkg/util/errors" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/iptables" - "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" ) type portal struct { diff --git a/pkg/proxy/userspace/proxier_test.go b/pkg/proxy/userspace/proxier_test.go index 33c917b4c8d2..794cd2ca7884 100644 --- a/pkg/proxy/userspace/proxier_test.go +++ b/pkg/proxy/userspace/proxier_test.go @@ -13,12 +13,13 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/util/exec" ipttest "k8s.io/kubernetes/pkg/util/iptables/testing" - "k8s.io/kubernetes/pkg/util/runtime" ) const ( @@ -185,9 +186,9 @@ func waitForNumProxyClients(t *testing.T, s *ServiceInfo, want int, timeout time func TestTCPProxy(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -215,9 +216,9 @@ func TestTCPProxy(t *testing.T) { func TestUDPProxy(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -245,9 +246,9 @@ func TestUDPProxy(t *testing.T) { func TestUDPProxyTimeout(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -280,14 +281,14 @@ func TestMultiPortProxy(t *testing.T) { lb := NewLoadBalancerRR() serviceP := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo-p"}, Port: "p"} serviceQ := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo-q"}, Port: "q"} - lb.OnEndpointsUpdate([]api.Endpoints{{ - ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, + lb.OnEndpointsUpdate([]*api.Endpoints{{ + ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Protocol: "TCP", Port: tcpServerPort}}, }}, }, { - ObjectMeta: api.ObjectMeta{Name: serviceQ.Name, Namespace: serviceQ.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: serviceQ.Name, Namespace: serviceQ.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "q", Protocol: "UDP", Port: udpServerPort}}, @@ -333,8 +334,8 @@ func TestMultiPortOnServiceUpdate(t *testing.T) { } waitForNumProxyLoops(t, p, 0) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: 80, @@ -380,9 +381,9 @@ func stopProxyByName(proxier *Proxier, service proxy.ServicePortName) error { func TestTCPProxyStop(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, + ObjectMeta: metav1.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -427,9 +428,9 @@ func TestTCPProxyStop(t *testing.T) { func TestUDPProxyStop(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, + ObjectMeta: metav1.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -468,9 +469,9 @@ func TestUDPProxyStop(t *testing.T) { func TestTCPProxyUpdateDelete(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, + ObjectMeta: metav1.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -498,7 +499,7 @@ func TestTCPProxyUpdateDelete(t *testing.T) { conn.Close() waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{}) + p.OnServiceUpdate([]*api.Service{}) if err = waitForClosedPortTCP(p, svcInfo.proxyPort); err != nil { t.Fatalf(err.Error()) } @@ -508,9 +509,9 @@ func TestTCPProxyUpdateDelete(t *testing.T) { func TestUDPProxyUpdateDelete(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, + ObjectMeta: metav1.ObjectMeta{Namespace: service.Namespace, Name: service.Name}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -538,7 +539,7 @@ func TestUDPProxyUpdateDelete(t *testing.T) { conn.Close() waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{}) + p.OnServiceUpdate([]*api.Service{}) if err = waitForClosedPortUDP(p, svcInfo.proxyPort); err != nil { t.Fatalf(err.Error()) } @@ -548,9 +549,9 @@ func TestUDPProxyUpdateDelete(t *testing.T) { func TestTCPProxyUpdateDeleteUpdate(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -578,14 +579,14 @@ func TestTCPProxyUpdateDeleteUpdate(t *testing.T) { conn.Close() waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{}) + p.OnServiceUpdate([]*api.Service{}) if err = waitForClosedPortTCP(p, svcInfo.proxyPort); err != nil { t.Fatalf(err.Error()) } waitForNumProxyLoops(t, p, 0) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: int32(svcInfo.proxyPort), @@ -603,9 +604,9 @@ func TestTCPProxyUpdateDeleteUpdate(t *testing.T) { func TestUDPProxyUpdateDeleteUpdate(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -633,14 +634,14 @@ func TestUDPProxyUpdateDeleteUpdate(t *testing.T) { conn.Close() waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{}) + p.OnServiceUpdate([]*api.Service{}) if err = waitForClosedPortUDP(p, svcInfo.proxyPort); err != nil { t.Fatalf(err.Error()) } waitForNumProxyLoops(t, p, 0) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: int32(svcInfo.proxyPort), @@ -658,9 +659,9 @@ func TestUDPProxyUpdateDeleteUpdate(t *testing.T) { func TestTCPProxyUpdatePort(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -684,8 +685,8 @@ func TestTCPProxyUpdatePort(t *testing.T) { testEchoTCP(t, "127.0.0.1", svcInfo.proxyPort) waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: 99, @@ -709,9 +710,9 @@ func TestTCPProxyUpdatePort(t *testing.T) { func TestUDPProxyUpdatePort(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: udpServerPort}}, @@ -734,8 +735,8 @@ func TestUDPProxyUpdatePort(t *testing.T) { } waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: 99, @@ -757,9 +758,9 @@ func TestUDPProxyUpdatePort(t *testing.T) { func TestProxyUpdatePublicIPs(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -783,8 +784,8 @@ func TestProxyUpdatePublicIPs(t *testing.T) { testEchoTCP(t, "127.0.0.1", svcInfo.proxyPort) waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ Ports: []api.ServicePort{{ Name: "p", @@ -812,9 +813,9 @@ func TestProxyUpdatePublicIPs(t *testing.T) { func TestProxyUpdatePortal(t *testing.T) { lb := NewLoadBalancerRR() service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "p"} - lb.OnEndpointsUpdate([]api.Endpoints{ + lb.OnEndpointsUpdate([]*api.Endpoints{ { - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, Ports: []api.EndpointPort{{Name: "p", Port: tcpServerPort}}, @@ -838,8 +839,8 @@ func TestProxyUpdatePortal(t *testing.T) { testEchoTCP(t, "127.0.0.1", svcInfo.proxyPort) waitForNumProxyLoops(t, p, 1) - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "", Ports: []api.ServicePort{{ Name: "p", Port: int32(svcInfo.proxyPort), @@ -851,8 +852,8 @@ func TestProxyUpdatePortal(t *testing.T) { t.Fatalf("service with empty ClusterIP should not be included in the proxy") } - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "None", Ports: []api.ServicePort{{ Name: "p", Port: int32(svcInfo.proxyPort), @@ -864,8 +865,8 @@ func TestProxyUpdatePortal(t *testing.T) { t.Fatalf("service with 'None' as ClusterIP should not be included in the proxy") } - p.OnServiceUpdate([]api.Service{{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + p.OnServiceUpdate([]*api.Service{{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Spec: api.ServiceSpec{ClusterIP: "1.2.3.4", Ports: []api.ServicePort{{ Name: "p", Port: int32(svcInfo.proxyPort), diff --git a/pkg/proxy/userspace/proxysocket.go b/pkg/proxy/userspace/proxysocket.go index 82569f0970d9..1d4e6c42f655 100644 --- a/pkg/proxy/userspace/proxysocket.go +++ b/pkg/proxy/userspace/proxysocket.go @@ -10,9 +10,9 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/util/runtime" ) // Abstraction over TCP/UDP sockets which are proxied. diff --git a/pkg/proxy/userspace/roundrobin.go b/pkg/proxy/userspace/roundrobin.go index 20b9aad05f2f..279c310d3aa1 100644 --- a/pkg/proxy/userspace/roundrobin.go +++ b/pkg/proxy/userspace/roundrobin.go @@ -10,9 +10,9 @@ import ( "time" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/util/slice" ) diff --git a/pkg/proxy/userspace/roundrobin_test.go b/pkg/proxy/userspace/roundrobin_test.go index e58467d3a0de..be23634132f7 100644 --- a/pkg/proxy/userspace/roundrobin_test.go +++ b/pkg/proxy/userspace/roundrobin_test.go @@ -4,9 +4,10 @@ import ( "net" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/types" ) func TestValidateWorks(t *testing.T) { @@ -50,7 +51,7 @@ func TestFilterWorks(t *testing.T) { func TestLoadBalanceFailsWithNoEndpoints(t *testing.T) { loadBalancer := NewLoadBalancerRR() - var endpoints []api.Endpoints + var endpoints []*api.Endpoints loadBalancer.OnEndpointsUpdate(endpoints) service := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "foo"}, Port: "does-not-exist"} endpoint, err := loadBalancer.NextEndpoint(service, nil, false) @@ -89,9 +90,9 @@ func TestLoadBalanceWorksWithSingleEndpoint(t *testing.T) { if err == nil || len(endpoint) != 0 { t.Errorf("Didn't fail with non-existent service") } - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "endpoint1"}}, Ports: []api.EndpointPort{{Name: "p", Port: 40}}, @@ -127,9 +128,9 @@ func TestLoadBalanceWorksWithMultipleEndpoints(t *testing.T) { if err == nil || len(endpoint) != 0 { t.Errorf("Didn't fail with non-existent service") } - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{{ Addresses: []api.EndpointAddress{{IP: "endpoint"}}, Ports: []api.EndpointPort{{Name: "p", Port: 1}, {Name: "p", Port: 2}, {Name: "p", Port: 3}}, @@ -155,9 +156,9 @@ func TestLoadBalanceWorksWithMultipleEndpointsMultiplePorts(t *testing.T) { if err == nil || len(endpoint) != 0 { t.Errorf("Didn't fail with non-existent service") } - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint1"}, {IP: "endpoint2"}}, @@ -198,9 +199,9 @@ func TestLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { if err == nil || len(endpoint) != 0 { t.Errorf("Didn't fail with non-existent service") } - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint1"}}, @@ -238,8 +239,8 @@ func TestLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { // Then update the configuration with one fewer endpoints, make sure // we start in the beginning again - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint4"}}, @@ -272,7 +273,7 @@ func TestLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { expectEndpoint(t, loadBalancer, serviceQ, shuffledEndpoints[1], nil) // Clear endpoints - endpoints[0] = api.Endpoints{ObjectMeta: api.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: nil} + endpoints[0] = &api.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: serviceP.Name, Namespace: serviceP.Namespace}, Subsets: nil} loadBalancer.OnEndpointsUpdate(endpoints) endpoint, err = loadBalancer.NextEndpoint(serviceP, nil, false) @@ -289,9 +290,9 @@ func TestLoadBalanceWorksWithServiceRemoval(t *testing.T) { if err == nil || len(endpoint) != 0 { t.Errorf("Didn't fail with non-existent service") } - endpoints := make([]api.Endpoints, 2) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: fooServiceP.Name, Namespace: fooServiceP.Namespace}, + endpoints := make([]*api.Endpoints, 2) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: fooServiceP.Name, Namespace: fooServiceP.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint1"}, {IP: "endpoint2"}, {IP: "endpoint3"}}, @@ -299,8 +300,8 @@ func TestLoadBalanceWorksWithServiceRemoval(t *testing.T) { }, }, } - endpoints[1] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: barServiceP.Name, Namespace: barServiceP.Namespace}, + endpoints[1] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: barServiceP.Name, Namespace: barServiceP.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint4"}, {IP: "endpoint5"}, {IP: "endpoint6"}}, @@ -347,9 +348,9 @@ func TestStickyLoadBalanceWorksWithNewServiceCalledFirst(t *testing.T) { // Call NewService() before OnEndpointsUpdate() loadBalancer.NewService(service, api.ServiceAffinityClientIP, 0) - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ {Addresses: []api.EndpointAddress{{IP: "endpoint1"}}, Ports: []api.EndpointPort{{Port: 1}}}, {Addresses: []api.EndpointAddress{{IP: "endpoint2"}}, Ports: []api.EndpointPort{{Port: 2}}}, @@ -403,9 +404,9 @@ func TestStickyLoadBalanceWorksWithNewServiceCalledSecond(t *testing.T) { } // Call OnEndpointsUpdate() before NewService() - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ {Addresses: []api.EndpointAddress{{IP: "endpoint1"}}, Ports: []api.EndpointPort{{Port: 1}}}, {Addresses: []api.EndpointAddress{{IP: "endpoint2"}}, Ports: []api.EndpointPort{{Port: 2}}}, @@ -465,9 +466,9 @@ func TestStickyLoadBalanaceWorksWithMultipleEndpointsRemoveOne(t *testing.T) { } loadBalancer.NewService(service, api.ServiceAffinityClientIP, 0) - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -486,8 +487,8 @@ func TestStickyLoadBalanaceWorksWithMultipleEndpointsRemoveOne(t *testing.T) { expectEndpoint(t, loadBalancer, service, shuffledEndpoints[2], client3) client3Endpoint := shuffledEndpoints[2] - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -508,8 +509,8 @@ func TestStickyLoadBalanaceWorksWithMultipleEndpointsRemoveOne(t *testing.T) { expectEndpoint(t, loadBalancer, service, client2Endpoint, client2) expectEndpoint(t, loadBalancer, service, client3Endpoint, client3) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -539,9 +540,9 @@ func TestStickyLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { } loadBalancer.NewService(service, api.ServiceAffinityClientIP, 0) - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -560,8 +561,8 @@ func TestStickyLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { expectEndpoint(t, loadBalancer, service, shuffledEndpoints[1], client2) // Then update the configuration with one fewer endpoints, make sure // we start in the beginning again - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -579,7 +580,7 @@ func TestStickyLoadBalanceWorksWithMultipleEndpointsAndUpdates(t *testing.T) { expectEndpoint(t, loadBalancer, service, shuffledEndpoints[1], client2) // Clear endpoints - endpoints[0] = api.Endpoints{ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: nil} + endpoints[0] = &api.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: nil} loadBalancer.OnEndpointsUpdate(endpoints) endpoint, err = loadBalancer.NextEndpoint(service, nil, false) @@ -599,9 +600,9 @@ func TestStickyLoadBalanceWorksWithServiceRemoval(t *testing.T) { t.Errorf("Didn't fail with non-existent service") } loadBalancer.NewService(fooService, api.ServiceAffinityClientIP, 0) - endpoints := make([]api.Endpoints, 2) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: fooService.Name, Namespace: fooService.Namespace}, + endpoints := make([]*api.Endpoints, 2) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: fooService.Name, Namespace: fooService.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -611,8 +612,8 @@ func TestStickyLoadBalanceWorksWithServiceRemoval(t *testing.T) { } barService := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "bar"}, Port: ""} loadBalancer.NewService(barService, api.ServiceAffinityClientIP, 0) - endpoints[1] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: barService.Name, Namespace: barService.Namespace}, + endpoints[1] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: barService.Name, Namespace: barService.Namespace}, Subsets: []api.EndpointSubset{ { Addresses: []api.EndpointAddress{{IP: "endpoint"}}, @@ -668,9 +669,9 @@ func TestStickyLoadBalanceWorksWithEndpointFails(t *testing.T) { // Call NewService() before OnEndpointsUpdate() loadBalancer.NewService(service, api.ServiceAffinityClientIP, 0) - endpoints := make([]api.Endpoints, 1) - endpoints[0] = api.Endpoints{ - ObjectMeta: api.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, + endpoints := make([]*api.Endpoints, 1) + endpoints[0] = &api.Endpoints{ + ObjectMeta: metav1.ObjectMeta{Name: service.Name, Namespace: service.Namespace}, Subsets: []api.EndpointSubset{ {Addresses: []api.EndpointAddress{{IP: "endpoint1"}}, Ports: []api.EndpointPort{{Port: 1}}}, {Addresses: []api.EndpointAddress{{IP: "endpoint2"}}, Ports: []api.EndpointPort{{Port: 2}}}, diff --git a/pkg/quota/admission/clusterresourceoverride/admission.go b/pkg/quota/admission/clusterresourceoverride/admission.go index 26357126f19c..1e7b5379abef 100644 --- a/pkg/quota/admission/clusterresourceoverride/admission.go +++ b/pkg/quota/admission/clusterresourceoverride/admission.go @@ -6,12 +6,13 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/runtime" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" "k8s.io/kubernetes/plugin/pkg/admission/limitranger" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" diff --git a/pkg/quota/admission/clusterresourceoverride/admission_test.go b/pkg/quota/admission/clusterresourceoverride/admission_test.go index 90927b85f6b2..6768edb4f98e 100644 --- a/pkg/quota/admission/clusterresourceoverride/admission_test.go +++ b/pkg/quota/admission/clusterresourceoverride/admission_test.go @@ -6,12 +6,13 @@ import ( "io" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest" @@ -219,7 +220,7 @@ func TestLimitRequestAdmission(t *testing.T) { continue } c.(*clusterResourceOverridePlugin).SetProjectCache(fakeProjectCache(test.namespace)) - attrs := admission.NewAttributesRecord(test.pod, nil, unversioned.GroupVersionKind{}, test.namespace.Name, "name", kapi.Resource("pods").WithVersion("version"), "", admission.Create, fakeUser()) + attrs := admission.NewAttributesRecord(test.pod, nil, schema.GroupVersionKind{}, test.namespace.Name, "name", kapi.Resource("pods").WithVersion("version"), "", admission.Create, fakeUser()) if err = c.Admit(attrs); err != nil { t.Errorf("%s: admission controller returned error: %v", test.name, err) continue @@ -311,7 +312,7 @@ var nsIndex = 0 func fakeNamespace(pluginEnabled bool) *kapi.Namespace { nsIndex++ ns := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("fakeNS%d", nsIndex), Annotations: map[string]string{}, }, diff --git a/pkg/quota/admission/clusterresourceoverride/api/install/install.go b/pkg/quota/admission/clusterresourceoverride/api/install/install.go index 9ac9dc25ae61..2a0f9b15af12 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/install/install.go +++ b/pkg/quota/admission/clusterresourceoverride/api/install/install.go @@ -2,8 +2,7 @@ package install import ( "github.com/golang/glog" - - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api" @@ -11,7 +10,7 @@ import ( ) // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -20,12 +19,12 @@ func init() { } // TODO: enableVersions should be centralized rather than spread in each API group. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/quota/admission/clusterresourceoverride/api/register.go b/pkg/quota/admission/clusterresourceoverride/api/register.go index d062bf4f3424..2d1ebffd2c86 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/register.go +++ b/pkg/quota/admission/clusterresourceoverride/api/register.go @@ -1,11 +1,11 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -20,4 +20,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *ClusterResourceOverrideConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ClusterResourceOverrideConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/quota/admission/clusterresourceoverride/api/types.go b/pkg/quota/admission/clusterresourceoverride/api/types.go index 285a3bcf313b..725f1a890704 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/types.go +++ b/pkg/quota/admission/clusterresourceoverride/api/types.go @@ -1,13 +1,13 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ClusterResourceOverrideConfig is the configuration for the ClusterResourceOverride // admission controller which overrides user-provided container request/limit values. type ClusterResourceOverrideConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // For each of the following, if a non-zero ratio is specified then the initial // value (if any) in the pod spec is overwritten according to the ratio. // LimitRange defaults are merged prior to the override. diff --git a/pkg/quota/admission/clusterresourceoverride/api/v1/register.go b/pkg/quota/admission/clusterresourceoverride/api/v1/register.go index 77986dc6d8af..58ebc62eabef 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/v1/register.go +++ b/pkg/quota/admission/clusterresourceoverride/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -21,4 +21,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *ClusterResourceOverrideConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ClusterResourceOverrideConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/quota/admission/clusterresourceoverride/api/v1/types.go b/pkg/quota/admission/clusterresourceoverride/api/v1/types.go index 6fb48e93eec5..0c2aac0a6b5a 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/v1/types.go +++ b/pkg/quota/admission/clusterresourceoverride/api/v1/types.go @@ -1,13 +1,13 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ClusterResourceOverrideConfig is the configuration for the ClusterResourceOverride // admission controller which overrides user-provided container request/limit values. type ClusterResourceOverrideConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // For each of the following, if a non-zero ratio is specified then the initial // value (if any) in the pod spec is overwritten according to the ratio. // LimitRange defaults are merged prior to the override. diff --git a/pkg/quota/admission/clusterresourceoverride/api/validation/validation.go b/pkg/quota/admission/clusterresourceoverride/api/validation/validation.go index e384383dd068..4a2273f7cfc3 100644 --- a/pkg/quota/admission/clusterresourceoverride/api/validation/validation.go +++ b/pkg/quota/admission/clusterresourceoverride/api/validation/validation.go @@ -1,7 +1,7 @@ package validation import ( - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api" ) diff --git a/pkg/quota/admission/clusterresourcequota/accessor.go b/pkg/quota/admission/clusterresourcequota/accessor.go index 703beee8a956..471527ae48e6 100644 --- a/pkg/quota/admission/clusterresourcequota/accessor.go +++ b/pkg/quota/admission/clusterresourcequota/accessor.go @@ -5,12 +5,12 @@ import ( lru "github.com/hashicorp/golang-lru" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" utilquota "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/storage/etcd" - utilwait "k8s.io/kubernetes/pkg/util/wait" oclient "github.com/openshift/origin/pkg/client" ocache "github.com/openshift/origin/pkg/client/cache" diff --git a/pkg/quota/admission/clusterresourcequota/accessor_test.go b/pkg/quota/admission/clusterresourcequota/accessor_test.go index 36bbcbf97c72..867efbcdd78f 100644 --- a/pkg/quota/admission/clusterresourcequota/accessor_test.go +++ b/pkg/quota/admission/clusterresourcequota/accessor_test.go @@ -4,13 +4,14 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utildiff "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - utildiff "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" ocache "github.com/openshift/origin/pkg/client/cache" "github.com/openshift/origin/pkg/client/testclient" @@ -56,7 +57,7 @@ func TestUpdateQuota(t *testing.T) { return []*quotaapi.ClusterResourceQuota{user1, user2} }, quotaToUpdate: &kapi.ResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "user-one"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "user-one"}, Spec: kapi.ResourceQuotaSpec{ Hard: kapi.ResourceList{ kapi.ResourcePods: resource.MustParse("10"), @@ -122,7 +123,7 @@ func TestUpdateQuota(t *testing.T) { var actualQuota *quotaapi.ClusterResourceQuota for _, action := range client.Actions() { - updateAction, ok := action.(core.UpdateActionImpl) + updateAction, ok := action.(clientgotesting.UpdateActionImpl) if !ok { continue } @@ -152,7 +153,7 @@ func TestUpdateQuota(t *testing.T) { func defaultQuota() *quotaapi.ClusterResourceQuota { return "aapi.ClusterResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: quotaapi.ClusterResourceQuotaSpec{ Quota: kapi.ResourceQuotaSpec{ Hard: kapi.ResourceList{ @@ -181,7 +182,7 @@ func TestGetQuota(t *testing.T) { return nil }, availableNamespaces: []*kapi.Namespace{ - {ObjectMeta: kapi.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, + {ObjectMeta: metav1.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, }, mapperFunc: func() clusterquotamapping.ClusterQuotaMapper { mapper := newFakeClusterQuotaMapper() @@ -199,7 +200,7 @@ func TestGetQuota(t *testing.T) { return nil }, availableNamespaces: []*kapi.Namespace{ - {ObjectMeta: kapi.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, + {ObjectMeta: metav1.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, }, mapperFunc: func() clusterquotamapping.ClusterQuotaMapper { mapper := newFakeClusterQuotaMapper() @@ -244,7 +245,7 @@ func TestGetQuota(t *testing.T) { return []*quotaapi.ClusterResourceQuota{user1, user2} }, availableNamespaces: []*kapi.Namespace{ - {ObjectMeta: kapi.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, + {ObjectMeta: metav1.ObjectMeta{Name: "foo", Labels: map[string]string{"one": "alfa"}}}, }, mapperFunc: func() clusterquotamapping.ClusterQuotaMapper { mapper := newFakeClusterQuotaMapper() @@ -257,7 +258,7 @@ func TestGetQuota(t *testing.T) { expectedQuotas: func() []*kapi.ResourceQuota { return []*kapi.ResourceQuota{ { - ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "user-one"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "user-one"}, Spec: kapi.ResourceQuotaSpec{ Hard: kapi.ResourceList{ kapi.ResourcePods: resource.MustParse("10"), diff --git a/pkg/quota/admission/clusterresourcequota/admission.go b/pkg/quota/admission/clusterresourcequota/admission.go index cb1421b61b47..fd97f5c3cd10 100644 --- a/pkg/quota/admission/clusterresourcequota/admission.go +++ b/pkg/quota/admission/clusterresourcequota/admission.go @@ -7,14 +7,13 @@ import ( "sync" "time" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - - "k8s.io/kubernetes/pkg/admission" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/admission" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/quota" - utilwait "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/plugin/pkg/admission/resourcequota" + resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" oclient "github.com/openshift/origin/pkg/client" ocache "github.com/openshift/origin/pkg/client/cache" diff --git a/pkg/quota/admission/resourcequota/admission.go b/pkg/quota/admission/resourcequota/admission.go index 6e8ab42f2c8d..75d442951eb1 100644 --- a/pkg/quota/admission/resourcequota/admission.go +++ b/pkg/quota/admission/resourcequota/admission.go @@ -9,11 +9,13 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/admission" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" kquota "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/plugin/pkg/admission/resourcequota" + resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" ) @@ -31,9 +33,9 @@ func init() { // streams type originQuotaAdmission struct { *admission.Handler - kQuotaAdmission admission.Interface + quotaAdmission admission.Interface // must be able to read/write ResourceQuota - kClient clientset.Interface + kclient kclientset.Interface } var _ = oadmission.WantsOriginQuotaRegistry(&originQuotaAdmission{}) @@ -49,7 +51,7 @@ func NewOriginResourceQuota(kClient clientset.Interface) admission.Interface { } func (a *originQuotaAdmission) Admit(as admission.Attributes) error { - return a.kQuotaAdmission.Admit(as) + return a.quotaAdmission.Admit(as) } func (a *originQuotaAdmission) SetOriginQuotaRegistry(registry kquota.Registry) { @@ -62,7 +64,7 @@ func (a *originQuotaAdmission) SetOriginQuotaRegistry(registry kquota.Registry) } func (a *originQuotaAdmission) Validate() error { - if a.kQuotaAdmission == nil { + if a.quotaAdmission == nil { return fmt.Errorf("%s requires an origin quota registry", PluginName) } return nil diff --git a/pkg/quota/admission/resourcequota/admission_test.go b/pkg/quota/admission/resourcequota/admission_test.go index 7f721bf0b1b4..58daa450bf9f 100644 --- a/pkg/quota/admission/resourcequota/admission_test.go +++ b/pkg/quota/admission/resourcequota/admission_test.go @@ -4,9 +4,10 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" kfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/controller/informers" @@ -21,7 +22,7 @@ import ( // admission will return error we can recognize. func TestOriginQuotaAdmissionIsErrorQuotaExceeded(t *testing.T) { resourceQuota := &kapi.ResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Name: "quota", Namespace: "test", ResourceVersion: "124"}, + ObjectMeta: metav1.ObjectMeta{Name: "quota", Namespace: "test", ResourceVersion: "124"}, Status: kapi.ResourceQuotaStatus{ Hard: kapi.ResourceList{ imageapi.ResourceImageStreams: resource.MustParse("0"), @@ -42,7 +43,7 @@ func TestOriginQuotaAdmissionIsErrorQuotaExceeded(t *testing.T) { } newIS := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, diff --git a/pkg/quota/admission/runonceduration/admission.go b/pkg/quota/admission/runonceduration/admission.go index e31463007a77..f606b9afc630 100644 --- a/pkg/quota/admission/runonceduration/admission.go +++ b/pkg/quota/admission/runonceduration/admission.go @@ -8,10 +8,9 @@ import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apiserver/pkg/admission" + "k8s.io/client-go/util/integer" kapi "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/integer" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" configlatest "github.com/openshift/origin/pkg/cmd/server/api/latest" diff --git a/pkg/quota/admission/runonceduration/admission_test.go b/pkg/quota/admission/runonceduration/admission_test.go index 17f5e1ea5026..733e81932070 100644 --- a/pkg/quota/admission/runonceduration/admission_test.go +++ b/pkg/quota/admission/runonceduration/admission_test.go @@ -4,9 +4,9 @@ import ( "bytes" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apiserver/pkg/admission" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" diff --git a/pkg/quota/admission/runonceduration/api/install/install.go b/pkg/quota/admission/runonceduration/api/install/install.go index 249d30429385..a7f7f28ac03f 100644 --- a/pkg/quota/admission/runonceduration/api/install/install.go +++ b/pkg/quota/admission/runonceduration/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/quota/admission/runonceduration/api" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/quota/admission/runoncedur var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/quota/admission/runonceduration/api/register.go b/pkg/quota/admission/runonceduration/api/register.go index 836f078c75c2..0dc3dbd43c33 100644 --- a/pkg/quota/admission/runonceduration/api/register.go +++ b/pkg/quota/admission/runonceduration/api/register.go @@ -1,20 +1,20 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -31,4 +31,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *RunOnceDurationConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *RunOnceDurationConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/quota/admission/runonceduration/api/types.go b/pkg/quota/admission/runonceduration/api/types.go index 523caefb066d..c903bf7ab6c7 100644 --- a/pkg/quota/admission/runonceduration/api/types.go +++ b/pkg/quota/admission/runonceduration/api/types.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // RunOnceDurationConfig is the configuration for the RunOnceDuration plugin. @@ -9,7 +9,7 @@ import ( // The project that contains the pod may specify a different setting. That setting will // take precedence over the one configured for the plugin here. type RunOnceDurationConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // ActiveDeadlineSecondsLimit is the maximum value to set on containers of run-once pods // Only a positive value is valid. Absence of a value means that the plugin diff --git a/pkg/quota/admission/runonceduration/api/v1/conversion.go b/pkg/quota/admission/runonceduration/api/v1/conversion.go index 00cd3c2a75c5..cd9e61e06197 100644 --- a/pkg/quota/admission/runonceduration/api/v1/conversion.go +++ b/pkg/quota/admission/runonceduration/api/v1/conversion.go @@ -1,8 +1,8 @@ package v1 import ( - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" internal "github.com/openshift/origin/pkg/quota/admission/runonceduration/api" ) diff --git a/pkg/quota/admission/runonceduration/api/v1/register.go b/pkg/quota/admission/runonceduration/api/v1/register.go index bedde3a1a0a5..40ca1bece06a 100644 --- a/pkg/quota/admission/runonceduration/api/v1/register.go +++ b/pkg/quota/admission/runonceduration/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs) @@ -21,4 +21,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *RunOnceDurationConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *RunOnceDurationConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/quota/admission/runonceduration/api/v1/types.go b/pkg/quota/admission/runonceduration/api/v1/types.go index 4c3642c65a23..51cdc95f15b4 100644 --- a/pkg/quota/admission/runonceduration/api/v1/types.go +++ b/pkg/quota/admission/runonceduration/api/v1/types.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // RunOnceDurationConfig is the configuration for the RunOnceDuration plugin. @@ -9,7 +9,7 @@ import ( // The project that contains the pod may specify a different setting. That setting will // take precedence over the one configured for the plugin here. type RunOnceDurationConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // ActiveDeadlineSecondsOverride is the maximum value to set on containers of run-once pods // Only a positive value is valid. Absence of a value means that the plugin diff --git a/pkg/quota/admission/runonceduration/api/validation/validation.go b/pkg/quota/admission/runonceduration/api/validation/validation.go index 017fb028d2c8..4adb1b8c569e 100644 --- a/pkg/quota/admission/runonceduration/api/validation/validation.go +++ b/pkg/quota/admission/runonceduration/api/validation/validation.go @@ -1,7 +1,7 @@ package validation import ( - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/quota/admission/runonceduration/api" ) diff --git a/pkg/quota/api/deep_copy_test.go b/pkg/quota/api/deep_copy_test.go index 0b033b13935a..521efe5d296b 100644 --- a/pkg/quota/api/deep_copy_test.go +++ b/pkg/quota/api/deep_copy_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/api/resource" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" "github.com/openshift/origin/pkg/quota/api" _ "github.com/openshift/origin/pkg/quota/api/install" diff --git a/pkg/quota/api/fields.go b/pkg/quota/api/fields.go index 675a74d8d2e4..1bfa17e3e3fe 100644 --- a/pkg/quota/api/fields.go +++ b/pkg/quota/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" func ClusterResourceQuotaToSelectableFields(quota *ClusterResourceQuota) fields.Set { return fields.Set{ diff --git a/pkg/quota/api/helpers.go b/pkg/quota/api/helpers.go index ad3057a018c8..b571f765015a 100644 --- a/pkg/quota/api/helpers.go +++ b/pkg/quota/api/helpers.go @@ -1,10 +1,10 @@ package api import ( - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" ) var accessor = meta.NewAccessor() @@ -13,7 +13,7 @@ func GetMatcher(selector ClusterResourceQuotaSelector) (func(obj runtime.Object) var labelSelector labels.Selector if selector.LabelSelector != nil { var err error - labelSelector, err = unversioned.LabelSelectorAsSelector(selector.LabelSelector) + labelSelector, err = metav1.LabelSelectorAsSelector(selector.LabelSelector) if err != nil { return nil, err } diff --git a/pkg/quota/api/install/apigroup.go b/pkg/quota/api/install/apigroup.go index 7c2a8df54838..177817a9100e 100644 --- a/pkg/quota/api/install/apigroup.go +++ b/pkg/quota/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/quota/api" "github.com/openshift/origin/pkg/quota/api/v1" diff --git a/pkg/quota/api/install/install.go b/pkg/quota/api/install/install.go index 2afda3b989f4..472792e6a37a 100644 --- a/pkg/quota/api/install/install.go +++ b/pkg/quota/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" quotaapi "github.com/openshift/origin/pkg/quota/api" quotaapiv1 "github.com/openshift/origin/pkg/quota/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/quota/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{quotaapiv1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{quotaapiv1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { glog.V(4).Infof("%v", err) return } @@ -51,9 +50,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -65,22 +64,22 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterResourceQuota") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } // interfacesFor returns the default Codec and ResourceVersioner for a given version // string, or an error if the version is not known. -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case quotaapiv1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -88,17 +87,17 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e MetadataAccessor: accessor, }, nil default: - g, _ := registered.Group(quotaapi.GroupName) + g, _ := kapi.Registry.Group(quotaapi.GroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme quotaapi.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } diff --git a/pkg/quota/api/register.go b/pkg/quota/api/register.go index 44bff83032a0..351f4458050c 100644 --- a/pkg/quota/api/register.go +++ b/pkg/quota/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +25,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,7 +35,7 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -66,10 +66,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/quota/api/types.go b/pkg/quota/api/types.go index cbb74ce5232d..738f6a9c6ccd 100644 --- a/pkg/quota/api/types.go +++ b/pkg/quota/api/types.go @@ -4,8 +4,8 @@ import ( "container/list" "reflect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // +genclient=true @@ -14,9 +14,9 @@ import ( // ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to // synthetic ResourceQuota object to allow quota evaluation re-use. type ClusterResourceQuota struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Spec defines the desired quota Spec ClusterResourceQuotaSpec @@ -42,7 +42,7 @@ type ClusterResourceQuotaSpec struct { // the project must match both restrictions. type ClusterResourceQuotaSelector struct { // LabelSelector is used to select projects by label. - LabelSelector *unversioned.LabelSelector + LabelSelector *metav1.LabelSelector // AnnotationSelector is used to select projects by annotation. AnnotationSelector map[string]string @@ -61,9 +61,9 @@ type ClusterResourceQuotaStatus struct { // ClusterResourceQuotaList is a collection of ClusterResourceQuotas type ClusterResourceQuotaList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of ClusterResourceQuotas Items []ClusterResourceQuota @@ -73,9 +73,9 @@ type ClusterResourceQuotaList struct { // into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to // his project and their associated usage. type AppliedClusterResourceQuota struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - kapi.ObjectMeta + metav1.ObjectMeta // Spec defines the desired quota Spec ClusterResourceQuotaSpec @@ -86,9 +86,9 @@ type AppliedClusterResourceQuota struct { // AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas type AppliedClusterResourceQuotaList struct { - unversioned.TypeMeta + metav1.TypeMeta // Standard object's metadata. - unversioned.ListMeta + metav1.ListMeta // Items is a list of AppliedClusterResourceQuota Items []AppliedClusterResourceQuota diff --git a/pkg/quota/api/v1/conversion.go b/pkg/quota/api/v1/conversion.go index 9d2a04bf0ab8..a2c788fd7436 100644 --- a/pkg/quota/api/v1/conversion.go +++ b/pkg/quota/api/v1/conversion.go @@ -3,10 +3,10 @@ package v1 import ( "reflect" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/conversion" - "k8s.io/kubernetes/pkg/runtime" internal "github.com/openshift/origin/pkg/quota/api" ) diff --git a/pkg/quota/api/v1/defaults.go b/pkg/quota/api/v1/defaults.go index fc52747ff9c4..515fa3667d57 100644 --- a/pkg/quota/api/v1/defaults.go +++ b/pkg/quota/api/v1/defaults.go @@ -1,6 +1,6 @@ package v1 -import "k8s.io/kubernetes/pkg/runtime" +import "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *runtime.Scheme) error { RegisterDefaults(scheme) diff --git a/pkg/quota/api/v1/register.go b/pkg/quota/api/v1/register.go index 1db5bca9d73e..763958add624 100644 --- a/pkg/quota/api/v1/register.go +++ b/pkg/quota/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,12 +25,12 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -44,10 +44,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/quota/api/v1/types.go b/pkg/quota/api/v1/types.go index 95dc499a6d9a..c533fa826625 100644 --- a/pkg/quota/api/v1/types.go +++ b/pkg/quota/api/v1/types.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api/v1" ) @@ -11,9 +11,9 @@ import ( // ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to // synthetic ResourceQuota object to allow quota evaluation re-use. type ClusterResourceQuota struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the desired quota Spec ClusterResourceQuotaSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -39,7 +39,7 @@ type ClusterResourceQuotaSpec struct { // the project must match both restrictions. type ClusterResourceQuotaSelector struct { // LabelSelector is used to select projects by label. - LabelSelector *unversioned.LabelSelector `json:"labels" protobuf:"bytes,1,opt,name=labels"` + LabelSelector *metav1.LabelSelector `json:"labels" protobuf:"bytes,1,opt,name=labels"` // AnnotationSelector is used to select projects by annotation. AnnotationSelector map[string]string `json:"annotations" protobuf:"bytes,2,rep,name=annotations"` @@ -58,9 +58,9 @@ type ClusterResourceQuotaStatus struct { // ClusterResourceQuotaList is a collection of ClusterResourceQuotas type ClusterResourceQuotaList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ClusterResourceQuotas Items []ClusterResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -82,9 +82,9 @@ type ResourceQuotaStatusByNamespace struct { // into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to // his project and their associated usage. type AppliedClusterResourceQuota struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the desired quota Spec ClusterResourceQuotaSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -95,9 +95,9 @@ type AppliedClusterResourceQuota struct { // AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas type AppliedClusterResourceQuotaList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of AppliedClusterResourceQuota Items []AppliedClusterResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` diff --git a/pkg/quota/api/v1/zz_generated.conversion.go b/pkg/quota/api/v1/zz_generated.conversion.go index d7edcee2bcb1..34ad00310b54 100644 --- a/pkg/quota/api/v1/zz_generated.conversion.go +++ b/pkg/quota/api/v1/zz_generated.conversion.go @@ -5,12 +5,12 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/quota/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { @@ -187,7 +187,7 @@ func Convert_api_ClusterResourceQuotaList_To_v1_ClusterResourceQuotaList(in *api } func autoConvert_v1_ClusterResourceQuotaSelector_To_api_ClusterResourceQuotaSelector(in *ClusterResourceQuotaSelector, out *api.ClusterResourceQuotaSelector, s conversion.Scope) error { - out.LabelSelector = (*unversioned.LabelSelector)(unsafe.Pointer(in.LabelSelector)) + out.LabelSelector = (*metav1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) out.AnnotationSelector = *(*map[string]string)(unsafe.Pointer(&in.AnnotationSelector)) return nil } @@ -197,7 +197,7 @@ func Convert_v1_ClusterResourceQuotaSelector_To_api_ClusterResourceQuotaSelector } func autoConvert_api_ClusterResourceQuotaSelector_To_v1_ClusterResourceQuotaSelector(in *api.ClusterResourceQuotaSelector, out *ClusterResourceQuotaSelector, s conversion.Scope) error { - out.LabelSelector = (*unversioned.LabelSelector)(unsafe.Pointer(in.LabelSelector)) + out.LabelSelector = (*metav1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) out.AnnotationSelector = *(*map[string]string)(unsafe.Pointer(&in.AnnotationSelector)) return nil } diff --git a/pkg/quota/api/v1/zz_generated.deepcopy.go b/pkg/quota/api/v1/zz_generated.deepcopy.go index 89ca5f2a3d9d..405681ff7039 100644 --- a/pkg/quota/api/v1/zz_generated.deepcopy.go +++ b/pkg/quota/api/v1/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -115,8 +115,8 @@ func DeepCopy_v1_ClusterResourceQuotaSelector(in interface{}, out interface{}, c out := out.(*ClusterResourceQuotaSelector) if in.LabelSelector != nil { in, out := &in.LabelSelector, &out.LabelSelector - *out = new(unversioned.LabelSelector) - if err := unversioned.DeepCopy_unversioned_LabelSelector(*in, *out, c); err != nil { + *out = new(metav1.LabelSelector) + if err := metav1.DeepCopy_unversioned_LabelSelector(*in, *out, c); err != nil { return err } } else { diff --git a/pkg/quota/api/v1/zz_generated.defaults.go b/pkg/quota/api/v1/zz_generated.defaults.go index 30a96b0f3c17..07130b3c084c 100644 --- a/pkg/quota/api/v1/zz_generated.defaults.go +++ b/pkg/quota/api/v1/zz_generated.defaults.go @@ -5,8 +5,8 @@ package v1 import ( + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - runtime "k8s.io/kubernetes/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/quota/api/validation/validation.go b/pkg/quota/api/validation/validation.go index d92d5cc571df..6dde4d049b0c 100644 --- a/pkg/quota/api/validation/validation.go +++ b/pkg/quota/api/validation/validation.go @@ -1,9 +1,9 @@ package validation import ( - unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" quotaapi "github.com/openshift/origin/pkg/quota/api" ) diff --git a/pkg/quota/api/validation/validation_test.go b/pkg/quota/api/validation/validation_test.go index e313b261ad4c..330dbb01f106 100644 --- a/pkg/quota/api/validation/validation_test.go +++ b/pkg/quota/api/validation/validation_test.go @@ -1,12 +1,13 @@ package validation import ( + "testing" + + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" - "testing" quotaapi "github.com/openshift/origin/pkg/quota/api" ) @@ -56,9 +57,9 @@ func TestValidationClusterQuota(t *testing.T) { errs := ValidateClusterResourceQuota( "aapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ - Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}}, + Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, Quota: spec(), }, }, @@ -74,9 +75,9 @@ func TestValidationClusterQuota(t *testing.T) { }{ "non-zero-length namespace": { A: quotaapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Namespace: "bad", Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "bad", Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ - Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}}, + Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, Quota: spec(), }, }, @@ -85,7 +86,7 @@ func TestValidationClusterQuota(t *testing.T) { }, "missing label selector": { A: quotaapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ Quota: spec(), }, @@ -95,7 +96,7 @@ func TestValidationClusterQuota(t *testing.T) { }, "ok scope": { A: quotaapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ Quota: scopeableSpec(api.ResourceQuotaScopeNotTerminating), }, @@ -105,9 +106,9 @@ func TestValidationClusterQuota(t *testing.T) { }, "bad scope": { A: quotaapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ - Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}}, + Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, Quota: spec(api.ResourceQuotaScopeNotTerminating), }, }, @@ -116,9 +117,9 @@ func TestValidationClusterQuota(t *testing.T) { }, "bad quota spec": { A: quotaapi.ClusterResourceQuota{ - ObjectMeta: api.ObjectMeta{Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Name: "good"}, Spec: quotaapi.ClusterResourceQuotaSpec{ - Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}}, + Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, Quota: invalidQuotaResourceSpec, }, }, @@ -151,7 +152,7 @@ func TestValidationQuota(t *testing.T) { }{ "scope": { A: api.ResourceQuota{ - ObjectMeta: api.ObjectMeta{Namespace: "ns", Name: "good"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns", Name: "good"}, Spec: scopeableSpec(api.ResourceQuotaScopeNotTerminating), }, }, diff --git a/pkg/quota/api/zz_generated.deepcopy.go b/pkg/quota/api/zz_generated.deepcopy.go index 59250ca727d2..4c7cefe85463 100644 --- a/pkg/quota/api/zz_generated.deepcopy.go +++ b/pkg/quota/api/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { @@ -115,8 +115,8 @@ func DeepCopy_api_ClusterResourceQuotaSelector(in interface{}, out interface{}, out := out.(*ClusterResourceQuotaSelector) if in.LabelSelector != nil { in, out := &in.LabelSelector, &out.LabelSelector - *out = new(unversioned.LabelSelector) - if err := unversioned.DeepCopy_unversioned_LabelSelector(*in, *out, c); err != nil { + *out = new(metav1.LabelSelector) + if err := metav1.DeepCopy_unversioned_LabelSelector(*in, *out, c); err != nil { return err } } else { diff --git a/pkg/quota/controller/clusterquotamapping/clusterquotamapping.go b/pkg/quota/controller/clusterquotamapping/clusterquotamapping.go index 11e03028b590..b0f60f922bf7 100644 --- a/pkg/quota/controller/clusterquotamapping/clusterquotamapping.go +++ b/pkg/quota/controller/clusterquotamapping/clusterquotamapping.go @@ -6,15 +6,16 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/labels" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" ocache "github.com/openshift/origin/pkg/client/cache" "github.com/openshift/origin/pkg/controller/shared" @@ -166,7 +167,7 @@ func (c *ClusterQuotaMappingController) syncQuota(quota *quotaapi.ClusterResourc } func (c *ClusterQuotaMappingController) syncNamespace(namespace *kapi.Namespace) error { - allQuotas, err1 := c.quotaLister.List(kapi.ListOptions{}) + allQuotas, err1 := c.quotaLister.List(metav1.ListOptions{}) if err1 != nil { return err1 } diff --git a/pkg/quota/controller/clusterquotamapping/clusterquotamapping_test.go b/pkg/quota/controller/clusterquotamapping/clusterquotamapping_test.go index d83f3352e2a6..38f8bf968be4 100644 --- a/pkg/quota/controller/clusterquotamapping/clusterquotamapping_test.go +++ b/pkg/quota/controller/clusterquotamapping/clusterquotamapping_test.go @@ -8,14 +8,14 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/controller/informers" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" "github.com/openshift/origin/pkg/controller/shared" @@ -54,12 +54,12 @@ func runFuzzer(t *testing.T) { startingNamespaces := CreateStartingNamespaces() kubeclient := fake.NewSimpleClientset(startingNamespaces...) nsWatch := watch.NewFake() - kubeclient.PrependWatchReactor("namespaces", core.DefaultWatchReactor(nsWatch, nil)) + kubeclient.PrependWatchReactor("namespaces", clientgotesting.DefaultWatchReactor(nsWatch, nil)) startingQuotas := CreateStartingQuotas() originclient := testclient.NewSimpleFake(startingQuotas...) quotaWatch := watch.NewFake() - originclient.PrependWatchReactor("clusterresourcequotas", core.DefaultWatchReactor(quotaWatch, nil)) + originclient.PrependWatchReactor("clusterresourcequotas", clientgotesting.DefaultWatchReactor(quotaWatch, nil)) kubeInformerFactory := informers.NewSharedInformerFactory(kubeclient, 10*time.Minute) informerFactory := shared.NewInformerFactory(kubeInformerFactory, kubeclient, originclient, shared.DefaultListerWatcherOverrides{}, 10*time.Minute) @@ -277,7 +277,7 @@ func NewQuota(name string) *quotaapi.ClusterResourceQuota { return ret } - ret.Spec.Selector.LabelSelector = &unversioned.LabelSelector{MatchLabels: map[string]string{}} + ret.Spec.Selector.LabelSelector = &metav1.LabelSelector{MatchLabels: map[string]string{}} for i := 0; i < numSelectorKeys; i++ { key := keys[rand.Intn(len(keys))] value := values[rand.Intn(len(values))] diff --git a/pkg/quota/controller/clusterquotamapping/mapper.go b/pkg/quota/controller/clusterquotamapping/mapper.go index de9f456e4027..659d86b0dfee 100644 --- a/pkg/quota/controller/clusterquotamapping/mapper.go +++ b/pkg/quota/controller/clusterquotamapping/mapper.go @@ -4,8 +4,8 @@ import ( "reflect" "sync" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" quotaapi "github.com/openshift/origin/pkg/quota/api" ) diff --git a/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller.go b/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller.go index c517526cf356..d8758aec3953 100644 --- a/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller.go +++ b/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller.go @@ -6,18 +6,19 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/resourcequota" utilquota "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/runtime" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" ocache "github.com/openshift/origin/pkg/client/cache" @@ -41,7 +42,7 @@ type ClusterQuotaReconcilationControllerOptions struct { ReplenishmentResyncPeriod controller.ResyncPeriodFunc // List of GroupKind objects that should be monitored for replenishment at // a faster frequency than the quota controller recalculation interval - GroupKindsToReplenish []unversioned.GroupKind + GroupKindsToReplenish []schema.GroupKind } type ClusterQuotaReconcilationController struct { @@ -172,7 +173,7 @@ func (c *ClusterQuotaReconcilationController) forceCalculation(quotaName string, } func (c *ClusterQuotaReconcilationController) calculateAll() { - quotas, err := c.clusterQuotaLister.List(kapi.ListOptions{}) + quotas, err := c.clusterQuotaLister.List(metav1.ListOptions{}) if err != nil { utilruntime.HandleError(err) return @@ -322,7 +323,7 @@ func (c *ClusterQuotaReconcilationController) syncQuotaForNamespaces(originalQuo } // replenishQuota is a replenishment function invoked by a controller to notify that a quota should be recalculated -func (c *ClusterQuotaReconcilationController) replenishQuota(groupKind unversioned.GroupKind, namespace string, object runtime.Object) { +func (c *ClusterQuotaReconcilationController) replenishQuota(groupKind schema.GroupKind, namespace string, object runtime.Object) { // check if the quota controller can evaluate this kind, if not, ignore it altogether... evaluators := c.registry.Evaluators() evaluator, found := evaluators[groupKind] diff --git a/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller_test.go b/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller_test.go index 240b5ff24780..03a9359de002 100644 --- a/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller_test.go +++ b/pkg/quota/controller/clusterquotareconciliation/reconciliation_controller_test.go @@ -6,13 +6,13 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utildiff "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" utilquota "k8s.io/kubernetes/pkg/quota" - utildiff "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client/testclient" quotaapi "github.com/openshift/origin/pkg/quota/api" @@ -22,7 +22,7 @@ import ( func defaultQuota() *quotaapi.ClusterResourceQuota { return "aapi.ClusterResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: quotaapi.ClusterResourceQuotaSpec{ Quota: kapi.ResourceQuotaSpec{ Hard: kapi.ResourceList{ @@ -86,7 +86,7 @@ func TestSyncFunc(t *testing.T) { mapperFunc: func() clusterquotamapping.ClusterQuotaMapper { mapper := newFakeClusterQuotaMapper() mapper.quotaToNamespaces["foo"] = sets.NewString("one") - mapper.quotaToSelector["foo"] = quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{}} + mapper.quotaToSelector["foo"] = quotaapi.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{}} return mapper }, calculationFunc: func(namespaceName string, scopes []kapi.ResourceQuotaScope, hardLimits kapi.ResourceList, registry utilquota.Registry) (kapi.ResourceList, error) { @@ -253,7 +253,7 @@ func TestSyncFunc(t *testing.T) { var actualQuota *quotaapi.ClusterResourceQuota for _, action := range client.Actions() { - updateAction, ok := action.(core.UpdateActionImpl) + updateAction, ok := action.(clientgotesting.UpdateActionImpl) if !ok { continue } diff --git a/pkg/quota/controller/clusterquotareconciliation/workqueuebucket.go b/pkg/quota/controller/clusterquotareconciliation/workqueuebucket.go index 3f4bb2012e3d..a98422208710 100644 --- a/pkg/quota/controller/clusterquotareconciliation/workqueuebucket.go +++ b/pkg/quota/controller/clusterquotareconciliation/workqueuebucket.go @@ -3,7 +3,7 @@ package clusterquotareconciliation import ( "sync" - "k8s.io/kubernetes/pkg/util/workqueue" + "k8s.io/client-go/util/workqueue" ) // BucketingWorkQueue gives a way to add items related to a single entry in a work queue diff --git a/pkg/quota/controller/replenishment_controller.go b/pkg/quota/controller/replenishment_controller.go index de64210eda29..cf69dd80ed73 100644 --- a/pkg/quota/controller/replenishment_controller.go +++ b/pkg/quota/controller/replenishment_controller.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/client-go/tools/cache" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kresourcequota "k8s.io/kubernetes/pkg/controller/resourcequota" diff --git a/pkg/quota/controller/replenishment_controller_test.go b/pkg/quota/controller/replenishment_controller_test.go index 9463bd605c15..02c92fcfa324 100644 --- a/pkg/quota/controller/replenishment_controller_test.go +++ b/pkg/quota/controller/replenishment_controller_test.go @@ -3,23 +3,24 @@ package controller import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/controller" kresourcequota "k8s.io/kubernetes/pkg/controller/resourcequota" - "k8s.io/kubernetes/pkg/runtime" imageapi "github.com/openshift/origin/pkg/image/api" ) // testReplenishment lets us test replenishment functions are invoked type testReplenishment struct { - groupKind unversioned.GroupKind + groupKind schema.GroupKind namespace string } // mock function that holds onto the last kind that was replenished -func (t *testReplenishment) Replenish(groupKind unversioned.GroupKind, namespace string, object runtime.Object) { +func (t *testReplenishment) Replenish(groupKind schema.GroupKind, namespace string, object runtime.Object) { t.groupKind = groupKind t.namespace = namespace } @@ -102,11 +103,11 @@ func TestImageStreamReplenishmentUpdateFunc(t *testing.T) { ResyncPeriod: controller.NoResyncPeriodFunc, } oldIS := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Namespace: "test", Name: "is"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "is"}, Status: tc.oldISStatus, } newIS := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Namespace: "test", Name: "is"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "is"}, Status: tc.newISStatus, } updateFunc := ImageStreamReplenishmentUpdateFunc(&options) diff --git a/pkg/quota/image/imagestream_evaluator.go b/pkg/quota/image/imagestream_evaluator.go index 91b86927d8af..cf0455ba0f7f 100644 --- a/pkg/quota/image/imagestream_evaluator.go +++ b/pkg/quota/image/imagestream_evaluator.go @@ -1,11 +1,12 @@ package image import ( - "k8s.io/kubernetes/pkg/admission" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" kquota "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" - "k8s.io/kubernetes/pkg/runtime" oscache "github.com/openshift/origin/pkg/client/cache" imageapi "github.com/openshift/origin/pkg/image/api" @@ -30,7 +31,7 @@ func NewImageStreamEvaluator(store *oscache.StoreToImageStreamLister) kquota.Eva MatchesScopeFunc: generic.MatchesNoScopeFunc, ConstraintsFunc: generic.ObjectCountConstraintsFunc(imageapi.ResourceImageStreams), UsageFunc: generic.ObjectCountUsageFunc(imageapi.ResourceImageStreams), - ListFuncByNamespace: func(namespace string, options kapi.ListOptions) ([]runtime.Object, error) { + ListFuncByNamespace: func(namespace string, options metainternal.ListOptions) ([]runtime.Object, error) { list, err := store.ImageStreams(namespace).List(options.LabelSelector) if err != nil { return nil, err diff --git a/pkg/quota/image/imagestream_evaluator_test.go b/pkg/quota/image/imagestream_evaluator_test.go index 087b2cb24210..af7ba5655aaf 100644 --- a/pkg/quota/image/imagestream_evaluator_test.go +++ b/pkg/quota/image/imagestream_evaluator_test.go @@ -4,8 +4,8 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kquota "k8s.io/kubernetes/pkg/quota" oscache "github.com/openshift/origin/pkg/client/cache" @@ -31,7 +31,7 @@ func TestImageStreamEvaluatorUsageStats(t *testing.T) { name: "one image stream", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "onetag", }, @@ -45,13 +45,13 @@ func TestImageStreamEvaluatorUsageStats(t *testing.T) { name: "two image streams", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is1", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is2", }, @@ -65,13 +65,13 @@ func TestImageStreamEvaluatorUsageStats(t *testing.T) { name: "two image streams in different namespaces", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is1", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "other", Name: "is2", }, @@ -145,7 +145,7 @@ func TestImageStreamEvaluatorUsage(t *testing.T) { name: "image stream already exists", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -158,7 +158,7 @@ func TestImageStreamEvaluatorUsage(t *testing.T) { name: "new image stream in non-empty project", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "existing", }, @@ -168,7 +168,7 @@ func TestImageStreamEvaluatorUsage(t *testing.T) { }, } { newIS := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, diff --git a/pkg/quota/image/imagestreamimport_evaluator.go b/pkg/quota/image/imagestreamimport_evaluator.go index ffdfba8a591c..9db5260fce35 100644 --- a/pkg/quota/image/imagestreamimport_evaluator.go +++ b/pkg/quota/image/imagestreamimport_evaluator.go @@ -3,14 +3,15 @@ package image import ( "fmt" - "k8s.io/kubernetes/pkg/admission" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" kquota "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" oscache "github.com/openshift/origin/pkg/client/cache" imageapi "github.com/openshift/origin/pkg/image/api" @@ -35,7 +36,7 @@ func NewImageStreamImportEvaluator(store *oscache.StoreToImageStreamLister) kquo MatchedResourceNames: computeResources, MatchesScopeFunc: matchesScopeFunc, UsageFunc: makeImageStreamImportAdmissionUsageFunc(store), - ListFuncByNamespace: func(namespace string, options kapi.ListOptions) ([]runtime.Object, error) { + ListFuncByNamespace: func(namespace string, options metainternal.ListOptions) ([]runtime.Object, error) { return []runtime.Object{}, nil }, ConstraintsFunc: imageStreamImportConstraintsFunc, diff --git a/pkg/quota/image/imagestreamimport_evaluator_test.go b/pkg/quota/image/imagestreamimport_evaluator_test.go index 17be2bd4bca3..5cfd5007a995 100644 --- a/pkg/quota/image/imagestreamimport_evaluator_test.go +++ b/pkg/quota/image/imagestreamimport_evaluator_test.go @@ -4,8 +4,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kquota "k8s.io/kubernetes/pkg/quota" oscache "github.com/openshift/origin/pkg/client/cache" @@ -75,13 +76,13 @@ func TestImageStreamImportEvaluatorUsage(t *testing.T) { name: "import from repository to existing image stream", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "havingtag", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -104,7 +105,7 @@ func TestImageStreamImportEvaluatorUsage(t *testing.T) { name: "import from repository to non-empty project", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "spec", }, @@ -173,7 +174,7 @@ func TestImageStreamImportEvaluatorUsage(t *testing.T) { evaluator := NewImageStreamImportEvaluator(&store) isi := &imageapi.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, diff --git a/pkg/quota/image/imagestreamtag_evaluator.go b/pkg/quota/image/imagestreamtag_evaluator.go index d408a904ef60..f03e61a797f3 100644 --- a/pkg/quota/image/imagestreamtag_evaluator.go +++ b/pkg/quota/image/imagestreamtag_evaluator.go @@ -3,14 +3,16 @@ package image import ( "fmt" - "k8s.io/kubernetes/pkg/admission" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" kquota "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" osclient "github.com/openshift/origin/pkg/client" oscache "github.com/openshift/origin/pkg/client/cache" @@ -39,7 +41,7 @@ func NewImageStreamTagEvaluator(store *oscache.StoreToImageStreamLister, istName return nil, err } obj = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: id, }, @@ -59,7 +61,7 @@ func NewImageStreamTagEvaluator(store *oscache.StoreToImageStreamLister, istName MatchesScopeFunc: matchesScopeFunc, UsageFunc: makeImageStreamTagAdmissionUsageFunc(store), GetFuncByNamespace: getFuncByNamespace, - ListFuncByNamespace: func(namespace string, options kapi.ListOptions) ([]runtime.Object, error) { + ListFuncByNamespace: func(namespace string, options metainternal.ListOptions) ([]runtime.Object, error) { return []runtime.Object{}, nil }, ConstraintsFunc: imageStreamTagConstraintsFunc, diff --git a/pkg/quota/image/imagestreamtag_evaluator_test.go b/pkg/quota/image/imagestreamtag_evaluator_test.go index 988026b75edd..95431d14b97b 100644 --- a/pkg/quota/image/imagestreamtag_evaluator_test.go +++ b/pkg/quota/image/imagestreamtag_evaluator_test.go @@ -4,8 +4,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kquota "k8s.io/kubernetes/pkg/quota" oscache "github.com/openshift/origin/pkg/client/cache" @@ -25,7 +26,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { name: "empty image stream", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, @@ -33,7 +34,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { }, }, ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is:dest", }, @@ -52,7 +53,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { { name: "no image stream", ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is:dest", }, @@ -71,7 +72,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { { name: "no image stream using image stream tag", ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is:dest", }, @@ -90,12 +91,12 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { { name: "no tag given", ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is:dest", }, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imagetest.MiscImageDigest, Annotations: map[string]string{imageapi.ManagedByOpenShiftAnnotation: "true"}, }, @@ -109,7 +110,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { { name: "missing from", ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is:dest", }, @@ -117,7 +118,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { Name: "dest", }, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imagetest.MiscImageDigest, Annotations: map[string]string{imageapi.ManagedByOpenShiftAnnotation: "true"}, }, @@ -132,7 +133,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { name: "update existing tag", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "havingtag", }, @@ -151,7 +152,7 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { }, }, ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "havingtag:latest", }, @@ -171,20 +172,20 @@ func TestImageStreamTagEvaluatorUsage(t *testing.T) { name: "add a new tag with 2 image streams", iss: []imageapi.ImageStream{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "is", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "other", Name: "is2", }, }, }, ist: imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "destis:latest", }, diff --git a/pkg/quota/image/registry.go b/pkg/quota/image/registry.go index 516da22bbdd5..001facfca0c6 100644 --- a/pkg/quota/image/registry.go +++ b/pkg/quota/image/registry.go @@ -3,7 +3,7 @@ package image import ( - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" @@ -19,7 +19,7 @@ func NewImageQuotaRegistry(isInformer shared.ImageStreamInformer, osClient oscli imageStreamTag := NewImageStreamTagEvaluator(isInformer.Lister(), osClient) imageStreamImport := NewImageStreamImportEvaluator(isInformer.Lister()) return &generic.GenericRegistry{ - InternalEvaluators: map[unversioned.GroupKind]quota.Evaluator{ + InternalEvaluators: map[schema.GroupKind]quota.Evaluator{ imageStream.GroupKind(): imageStream, imageStreamTag.GroupKind(): imageStreamTag, imageStreamImport.GroupKind(): imageStreamImport, diff --git a/pkg/quota/registry.go b/pkg/quota/registry.go index da85d771a07d..6b74304aed6a 100644 --- a/pkg/quota/registry.go +++ b/pkg/quota/registry.go @@ -1,8 +1,8 @@ package quota import ( + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kquota "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/install" @@ -25,7 +25,7 @@ func NewAllResourceQuotaRegistry(informerFactory shared.InformerFactory, osClien } // AllEvaluatedGroupKinds is the list of all group kinds that we evaluate for quotas in openshift and kube -var AllEvaluatedGroupKinds = []unversioned.GroupKind{ +var AllEvaluatedGroupKinds = []schema.GroupKind{ kapi.Kind("Pod"), kapi.Kind("Service"), kapi.Kind("ReplicationController"), diff --git a/pkg/quota/registry/appliedclusterresourcequota/filter.go b/pkg/quota/registry/appliedclusterresourcequota/filter.go index 346ac4de7429..30849ad58bb8 100644 --- a/pkg/quota/registry/appliedclusterresourcequota/filter.go +++ b/pkg/quota/registry/appliedclusterresourcequota/filter.go @@ -1,11 +1,12 @@ package appliedclusterresourcequota import ( - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/client-go/tools/cache" oapi "github.com/openshift/origin/pkg/api" ocache "github.com/openshift/origin/pkg/client/cache" @@ -32,8 +33,8 @@ func (r *AppliedClusterResourceQuotaREST) New() runtime.Object { return "aapi.AppliedClusterResourceQuota{} } -func (r *AppliedClusterResourceQuotaREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - namespace, ok := kapi.NamespaceFrom(ctx) +func (r *AppliedClusterResourceQuotaREST) Get(ctx apirequest.Context, name string) (runtime.Object, error) { + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("namespace is required") } @@ -56,15 +57,15 @@ func (r *AppliedClusterResourceQuotaREST) NewList() runtime.Object { return "aapi.AppliedClusterResourceQuotaList{} } -func (r *AppliedClusterResourceQuotaREST) List(ctx kapi.Context, options *kapi.ListOptions) (runtime.Object, error) { - namespace, ok := kapi.NamespaceFrom(ctx) +func (r *AppliedClusterResourceQuotaREST) List(ctx apirequest.Context, options *metainternal.ListOptions) (runtime.Object, error) { + namespace, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("namespace is required") } // TODO max resource version? watch? list := "aapi.AppliedClusterResourceQuotaList{} - matcher := clusterresourcequotaregistry.Matcher(oapi.ListOptionsToSelectors(options)) + matcher := clusterresourcequotaregistry.Matcher(oapi.InternalListOptionsToSelectors(options)) quotaNames, _ := r.quotaMapper.GetClusterQuotasFor(namespace) for _, name := range quotaNames { diff --git a/pkg/quota/registry/clusterresourcequota/etcd/etcd.go b/pkg/quota/registry/clusterresourcequota/etcd/etcd.go index d73cc7788438..985470ae2f7c 100644 --- a/pkg/quota/registry/clusterresourcequota/etcd/etcd.go +++ b/pkg/quota/registry/clusterresourcequota/etcd/etcd.go @@ -1,11 +1,12 @@ package etcd import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/quota/api" "github.com/openshift/origin/pkg/quota/registry/clusterresourcequota" @@ -57,11 +58,11 @@ func (r *StatusREST) New() runtime.Object { } // Get retrieves the object from the storage. It is required to support Patch. -func (r *StatusREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - return r.store.Get(ctx, name) +func (r *StatusREST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + return r.store.Get(ctx, name, options) } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *StatusREST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } diff --git a/pkg/quota/registry/clusterresourcequota/strategy.go b/pkg/quota/registry/clusterresourcequota/strategy.go index 4b5a8adf6b5f..477a52ce5336 100644 --- a/pkg/quota/registry/clusterresourcequota/strategy.go +++ b/pkg/quota/registry/clusterresourcequota/strategy.go @@ -3,12 +3,13 @@ package clusterresourcequota import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/quota/api" "github.com/openshift/origin/pkg/quota/api/validation" @@ -36,13 +37,13 @@ func (strategy) GenerateName(base string) string { return base } -func (strategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (strategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { quota := obj.(*api.ClusterResourceQuota) quota.Status = api.ClusterResourceQuotaStatus{} } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (strategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { curr := obj.(*api.ClusterResourceQuota) prev := old.(*api.ClusterResourceQuota) @@ -53,11 +54,11 @@ func (strategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { func (strategy) Canonicalize(obj runtime.Object) { } -func (strategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (strategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateClusterResourceQuota(obj.(*api.ClusterResourceQuota)) } -func (strategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (strategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateClusterResourceQuotaUpdate(obj.(*api.ClusterResourceQuota), old.(*api.ClusterResourceQuota)) } @@ -101,10 +102,10 @@ func (statusStrategy) GenerateName(base string) string { return base } -func (statusStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (statusStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } -func (statusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (statusStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { curr := obj.(*api.ClusterResourceQuota) prev := old.(*api.ClusterResourceQuota) @@ -114,10 +115,10 @@ func (statusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object func (statusStrategy) Canonicalize(obj runtime.Object) { } -func (statusStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (statusStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateClusterResourceQuota(obj.(*api.ClusterResourceQuota)) } -func (statusStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (statusStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateClusterResourceQuotaUpdate(obj.(*api.ClusterResourceQuota), old.(*api.ClusterResourceQuota)) } diff --git a/pkg/quota/util/helper.go b/pkg/quota/util/helper.go index 6e7e77077c63..c9b5c2bb9029 100644 --- a/pkg/quota/util/helper.go +++ b/pkg/quota/util/helper.go @@ -3,7 +3,7 @@ package util import ( "strings" - apierrs "k8s.io/kubernetes/pkg/api/errors" + apierrs "k8s.io/apimachinery/pkg/api/errors" ) // errMessageString is a part of error message copied from quotaAdmission.Admit() method in diff --git a/pkg/quota/util/helper_test.go b/pkg/quota/util/helper_test.go index c52cec2ac7ee..1805d4e69d40 100644 --- a/pkg/quota/util/helper_test.go +++ b/pkg/quota/util/helper_test.go @@ -4,9 +4,9 @@ import ( "errors" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/validation/field" imageapi "github.com/openshift/origin/pkg/image/api" ) diff --git a/pkg/route/allocation/simple/plugin.go b/pkg/route/allocation/simple/plugin.go index 2128a9aef8c1..88e387f20a80 100644 --- a/pkg/route/allocation/simple/plugin.go +++ b/pkg/route/allocation/simple/plugin.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/golang/glog" - kvalidation "k8s.io/kubernetes/pkg/util/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" routeapi "github.com/openshift/origin/pkg/route/api" ) diff --git a/pkg/route/allocation/simple/plugin_test.go b/pkg/route/allocation/simple/plugin_test.go index 8be9cdc950c8..0c5c64d259c3 100644 --- a/pkg/route/allocation/simple/plugin_test.go +++ b/pkg/route/allocation/simple/plugin_test.go @@ -3,8 +3,8 @@ package simple import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/validation" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation" "github.com/openshift/origin/pkg/route/api" rac "github.com/openshift/origin/pkg/route/controller/allocation" @@ -69,7 +69,7 @@ func TestSimpleAllocationPlugin(t *testing.T) { { name: "No Name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", }, Spec: api.RouteSpec{ @@ -83,7 +83,7 @@ func TestSimpleAllocationPlugin(t *testing.T) { { name: "No namespace", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", }, Spec: api.RouteSpec{ @@ -97,7 +97,7 @@ func TestSimpleAllocationPlugin(t *testing.T) { { name: "No service name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -106,7 +106,7 @@ func TestSimpleAllocationPlugin(t *testing.T) { { name: "Valid route", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -121,7 +121,7 @@ func TestSimpleAllocationPlugin(t *testing.T) { { name: "No host", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -165,7 +165,7 @@ func TestSimpleAllocationPluginViaController(t *testing.T) { { name: "No Name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", }, Spec: api.RouteSpec{ @@ -179,7 +179,7 @@ func TestSimpleAllocationPluginViaController(t *testing.T) { { name: "Host but no name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", }, Spec: api.RouteSpec{ @@ -191,7 +191,7 @@ func TestSimpleAllocationPluginViaController(t *testing.T) { { name: "No namespace", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", }, Spec: api.RouteSpec{ @@ -205,7 +205,7 @@ func TestSimpleAllocationPluginViaController(t *testing.T) { { name: "No service name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -214,7 +214,7 @@ func TestSimpleAllocationPluginViaController(t *testing.T) { { name: "Valid route", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, diff --git a/pkg/route/api/fields.go b/pkg/route/api/fields.go index 92d551dba2dc..603d05ad3bb0 100644 --- a/pkg/route/api/fields.go +++ b/pkg/route/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // RouteToSelectableFields returns a label set that represents the object func RouteToSelectableFields(route *Route) fields.Set { diff --git a/pkg/route/api/helper_test.go b/pkg/route/api/helper_test.go index c19380db3e4f..5855254acb2d 100644 --- a/pkg/route/api/helper_test.go +++ b/pkg/route/api/helper_test.go @@ -4,21 +4,20 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/types" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" ) func TestRouteLessThan(t *testing.T) { - olderTimestamp := unversioned.Now().Rfc3339Copy() - newerTimestamp := unversioned.Time{ + olderTimestamp := metav1.Now().Rfc3339Copy() + newerTimestamp := metav1.Time{ Time: olderTimestamp.Add(1 * time.Minute), } tcs := []struct { testName string - timestamp1 unversioned.Time - timestamp2 unversioned.Time + timestamp1 metav1.Time + timestamp2 metav1.Time uid1 types.UID uid2 types.UID expected bool @@ -55,13 +54,13 @@ func TestRouteLessThan(t *testing.T) { for _, tc := range tcs { r1 := &Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: tc.timestamp1, UID: tc.uid1, }, } r2 := &Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: tc.timestamp2, UID: tc.uid2, }, diff --git a/pkg/route/api/install/apigroup.go b/pkg/route/api/install/apigroup.go index 23db227750a9..f31286c6bd72 100644 --- a/pkg/route/api/install/apigroup.go +++ b/pkg/route/api/install/apigroup.go @@ -1,7 +1,7 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/announced" "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/route/api/v1" diff --git a/pkg/route/api/install/install.go b/pkg/route/api/install/install.go index 6fd6be0863bc..29883950aa52 100644 --- a/pkg/route/api/install/install.go +++ b/pkg/route/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/route/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/route/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/route/api/register.go b/pkg/route/api/register.go index d83247ee3c82..e5cd4c28c90c 100644 --- a/pkg/route/api/register.go +++ b/pkg/route/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +25,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,7 +35,7 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -65,10 +65,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/route/api/types.go b/pkg/route/api/types.go index 1742cb53627c..48f8d1fad322 100644 --- a/pkg/route/api/types.go +++ b/pkg/route/api/types.go @@ -1,17 +1,17 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/intstr" ) // +genclient=true // Route encapsulates the inputs needed to connect an alias to endpoints. type Route struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec is the desired behavior of the route Spec RouteSpec @@ -115,13 +115,13 @@ type RouteIngressCondition struct { Message string // RFC 3339 date and time at which the object was acknowledged by the router. // This may be before the router exposes the route - LastTransitionTime *unversioned.Time + LastTransitionTime *metav1.Time } // RouteList is a collection of Routes. type RouteList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of routes Items []Route diff --git a/pkg/route/api/v1/conversion.go b/pkg/route/api/v1/conversion.go index 3d0ee10d6c00..1e8f25a0a30d 100644 --- a/pkg/route/api/v1/conversion.go +++ b/pkg/route/api/v1/conversion.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" routeapi "github.com/openshift/origin/pkg/route/api" diff --git a/pkg/route/api/v1/defaults.go b/pkg/route/api/v1/defaults.go index 2147c6a79bb1..debf6e07c97a 100644 --- a/pkg/route/api/v1/defaults.go +++ b/pkg/route/api/v1/defaults.go @@ -1,6 +1,6 @@ package v1 -import "k8s.io/kubernetes/pkg/runtime" +import "k8s.io/apimachinery/pkg/runtime" // If adding or changing route defaults, updates may be required to // pkg/router/controller/controller.go to ensure the routes generated from diff --git a/pkg/route/api/v1/defaults_test.go b/pkg/route/api/v1/defaults_test.go index 7f67d5cd6a2a..a4b7c0048f9c 100644 --- a/pkg/route/api/v1/defaults_test.go +++ b/pkg/route/api/v1/defaults_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/route/api/v1" diff --git a/pkg/route/api/v1/register.go b/pkg/route/api/v1/register.go index 2861d49e5608..90bc6a367aa8 100644 --- a/pkg/route/api/v1/register.go +++ b/pkg/route/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs, addDefaultingFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -33,10 +33,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/route/api/v1/types.go b/pkg/route/api/v1/types.go index 193506429b79..a2582c9005de 100644 --- a/pkg/route/api/v1/types.go +++ b/pkg/route/api/v1/types.go @@ -1,9 +1,9 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/util/intstr" ) // +genclient=true @@ -26,9 +26,9 @@ import ( // If a client chooses a duplicate name, for instance, the route status conditions are used // to indicate the route cannot be chosen. type Route struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec is the desired state of the route Spec RouteSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -38,9 +38,9 @@ type Route struct { // RouteList is a collection of Routes. type RouteList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is a list of routes Items []Route `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -159,7 +159,7 @@ type RouteIngressCondition struct { // Human readable message indicating details about last transition. Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` // RFC 3339 date and time when this condition last transitioned - LastTransitionTime *unversioned.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,5,opt,name=lastTransitionTime"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,5,opt,name=lastTransitionTime"` } // RouterShard has information of a routing shard and is used to diff --git a/pkg/route/api/v1/zz_generated.conversion.go b/pkg/route/api/v1/zz_generated.conversion.go index 75d4e23e5fa6..15bb3cedcdb5 100644 --- a/pkg/route/api/v1/zz_generated.conversion.go +++ b/pkg/route/api/v1/zz_generated.conversion.go @@ -5,13 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/route/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { @@ -110,7 +110,7 @@ func autoConvert_v1_RouteIngressCondition_To_api_RouteIngressCondition(in *Route out.Status = pkg_api.ConditionStatus(in.Status) out.Reason = in.Reason out.Message = in.Message - out.LastTransitionTime = (*unversioned.Time)(unsafe.Pointer(in.LastTransitionTime)) + out.LastTransitionTime = (*metav1.Time)(unsafe.Pointer(in.LastTransitionTime)) return nil } @@ -123,7 +123,7 @@ func autoConvert_api_RouteIngressCondition_To_v1_RouteIngressCondition(in *api.R out.Status = api_v1.ConditionStatus(in.Status) out.Reason = in.Reason out.Message = in.Message - out.LastTransitionTime = (*unversioned.Time)(unsafe.Pointer(in.LastTransitionTime)) + out.LastTransitionTime = (*metav1.Time)(unsafe.Pointer(in.LastTransitionTime)) return nil } diff --git a/pkg/route/api/v1/zz_generated.deepcopy.go b/pkg/route/api/v1/zz_generated.deepcopy.go index 24d072ad0f6f..5f276ca92396 100644 --- a/pkg/route/api/v1/zz_generated.deepcopy.go +++ b/pkg/route/api/v1/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package v1 import ( - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { @@ -84,7 +84,7 @@ func DeepCopy_v1_RouteIngressCondition(in interface{}, out interface{}, c *conve out.Message = in.Message if in.LastTransitionTime != nil { in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.LastTransitionTime = nil diff --git a/pkg/route/api/v1/zz_generated.defaults.go b/pkg/route/api/v1/zz_generated.defaults.go index 1e924f568db1..b812c7d45f71 100644 --- a/pkg/route/api/v1/zz_generated.defaults.go +++ b/pkg/route/api/v1/zz_generated.defaults.go @@ -5,7 +5,7 @@ package v1 import ( - runtime "k8s.io/kubernetes/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/route/api/validation/validation.go b/pkg/route/api/validation/validation.go index 1b03392bb741..74b41b8763a4 100644 --- a/pkg/route/api/validation/validation.go +++ b/pkg/route/api/validation/validation.go @@ -6,12 +6,12 @@ import ( "fmt" "strings" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/sets" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" kval "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/kubernetes/pkg/util/sets" - kvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" oapi "github.com/openshift/origin/pkg/api" cmdutil "github.com/openshift/origin/pkg/cmd/util" diff --git a/pkg/route/api/validation/validation_test.go b/pkg/route/api/validation/validation_test.go index 4dad04c5e2d6..683c3ebc4963 100644 --- a/pkg/route/api/validation/validation_test.go +++ b/pkg/route/api/validation/validation_test.go @@ -3,8 +3,9 @@ package validation import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/intstr" "github.com/openshift/origin/pkg/route/api" ) @@ -618,7 +619,7 @@ func TestValidateRoute(t *testing.T) { { name: "No Name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", }, Spec: api.RouteSpec{ @@ -631,7 +632,7 @@ func TestValidateRoute(t *testing.T) { { name: "No namespace", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", }, Spec: api.RouteSpec{ @@ -644,7 +645,7 @@ func TestValidateRoute(t *testing.T) { { name: "No host", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -657,7 +658,7 @@ func TestValidateRoute(t *testing.T) { { name: "Invalid DNS 952 host", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -671,7 +672,7 @@ func TestValidateRoute(t *testing.T) { { name: "No service name", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -685,7 +686,7 @@ func TestValidateRoute(t *testing.T) { { name: "No service kind", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -699,7 +700,7 @@ func TestValidateRoute(t *testing.T) { { name: "Zero port", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -716,7 +717,7 @@ func TestValidateRoute(t *testing.T) { { name: "Empty string port", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -733,7 +734,7 @@ func TestValidateRoute(t *testing.T) { { name: "Valid route", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -747,7 +748,7 @@ func TestValidateRoute(t *testing.T) { { name: "Valid route with path", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -762,7 +763,7 @@ func TestValidateRoute(t *testing.T) { { name: "Invalid route with path", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -777,7 +778,7 @@ func TestValidateRoute(t *testing.T) { { name: "Passthrough route with path", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -795,7 +796,7 @@ func TestValidateRoute(t *testing.T) { { name: "No wildcard policy", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "nowildcard", Namespace: "foo", }, @@ -809,7 +810,7 @@ func TestValidateRoute(t *testing.T) { { name: "wildcard policy none", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "nowildcard2", Namespace: "foo", }, @@ -824,7 +825,7 @@ func TestValidateRoute(t *testing.T) { { name: "wildcard policy subdomain", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "wildcardpolicy", Namespace: "foo", }, @@ -839,7 +840,7 @@ func TestValidateRoute(t *testing.T) { { name: "Invalid wildcard policy", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "badwildcard", Namespace: "foo", }, @@ -854,7 +855,7 @@ func TestValidateRoute(t *testing.T) { { name: "Invalid host for wildcard policy", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "badhost", Namespace: "foo", }, @@ -868,7 +869,7 @@ func TestValidateRoute(t *testing.T) { { name: "Empty host for wildcard policy", route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "emptyhost", Namespace: "foo", }, @@ -1098,7 +1099,7 @@ func TestValidateRouteUpdate(t *testing.T) { }{ { route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "foo", ResourceVersion: "1", @@ -1116,7 +1117,7 @@ func TestValidateRouteUpdate(t *testing.T) { }, { route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "foo", ResourceVersion: "1", @@ -1134,7 +1135,7 @@ func TestValidateRouteUpdate(t *testing.T) { }, { route: &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "foo", ResourceVersion: "1", diff --git a/pkg/route/api/zz_generated.deepcopy.go b/pkg/route/api/zz_generated.deepcopy.go index 3c4b92861d1a..d0f083559efa 100644 --- a/pkg/route/api/zz_generated.deepcopy.go +++ b/pkg/route/api/zz_generated.deepcopy.go @@ -5,11 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { @@ -84,7 +84,7 @@ func DeepCopy_api_RouteIngressCondition(in interface{}, out interface{}, c *conv out.Message = in.Message if in.LastTransitionTime != nil { in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = new(unversioned.Time) + *out = new(metav1.Time) **out = (*in).DeepCopy() } else { out.LastTransitionTime = nil diff --git a/pkg/route/client/clientset_generated/internalclientset/clientset.go b/pkg/route/client/clientset_generated/internalclientset/clientset.go index 6b5eedc96ac0..d04f1024f00e 100644 --- a/pkg/route/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/route/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/route/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/route/client/clientset_generated/internalclientset/fake/clientset_generated.go index eedcb83d84a2..ec714e9b12c0 100644 --- a/pkg/route/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/route/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/route/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index 24b382a17de6..7bf1f2cae0d0 100644 --- a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { RoutesGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index d48ef2425ab5..2d7e6b555f47 100644 --- a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_route.go b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_route.go index 2fde73bb1437..4a006ffca4df 100644 --- a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_route.go +++ b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_route.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/route/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeRoutes implements RouteInterface @@ -15,7 +15,7 @@ type FakeRoutes struct { ns string } -var routesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "routes"} +var routesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "routes"} func (c *FakeRoutes) Create(route *api.Route) (result *api.Route, err error) { obj, err := c.Fake. diff --git a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/route.go b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/route.go index 027470bb7eee..a29e39c5e986 100644 --- a/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/route.go +++ b/pkg/route/client/clientset_generated/internalclientset/typed/core/internalversion/route.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/route/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // RoutesGetter has a method to return a RouteInterface. diff --git a/pkg/route/client/clientset_generated/release_v1_5/clientset.go b/pkg/route/client/clientset_generated/release_v1_5/clientset.go index 05c6e3fc5301..de82114d997a 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/route/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/route/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/route/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 4846c5e47327..61a276538116 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/route/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/route/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 89de2cabf3c6..b5bd66d540fc 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { RoutesGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index e13f357fa30e..d389f0f168e3 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_route.go b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_route.go index a77bcd3952ed..44124c13bd2e 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_route.go +++ b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_route.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/route/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeRoutes implements RouteInterface @@ -16,7 +16,7 @@ type FakeRoutes struct { ns string } -var routesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "routes"} +var routesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "routes"} func (c *FakeRoutes) Create(route *v1.Route) (result *v1.Route, err error) { obj, err := c.Fake. diff --git a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/route.go b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/route.go index 387288bd2405..b50121c09a53 100644 --- a/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/route.go +++ b/pkg/route/client/clientset_generated/release_v1_5/typed/core/v1/route.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/route/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // RoutesGetter has a method to return a RouteInterface. diff --git a/pkg/route/controller/allocation/controller_test.go b/pkg/route/controller/allocation/controller_test.go index 988c536bbb08..2a39e962515c 100644 --- a/pkg/route/controller/allocation/controller_test.go +++ b/pkg/route/controller/allocation/controller_test.go @@ -5,7 +5,7 @@ import ( "testing" routeapi "github.com/openshift/origin/pkg/route/api" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) type TestAllocationPlugin struct { @@ -33,7 +33,7 @@ func TestRouteAllocationController(t *testing.T) { { name: "No Name", route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", }, Spec: routeapi.RouteSpec{ @@ -46,7 +46,7 @@ func TestRouteAllocationController(t *testing.T) { { name: "No namespace", route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", }, Spec: routeapi.RouteSpec{ @@ -59,7 +59,7 @@ func TestRouteAllocationController(t *testing.T) { { name: "No service name", route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, @@ -68,7 +68,7 @@ func TestRouteAllocationController(t *testing.T) { { name: "Valid route", route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", Namespace: "foo", }, diff --git a/pkg/route/generator/generate.go b/pkg/route/generator/generate.go index bdc0d1774a34..90189d7697da 100644 --- a/pkg/route/generator/generate.go +++ b/pkg/route/generator/generate.go @@ -4,10 +4,10 @@ import ( "fmt" "strconv" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" "github.com/openshift/origin/pkg/route/api" ) @@ -64,7 +64,7 @@ func (RouteGenerator) Generate(genericParams map[string]interface{}) (runtime.Ob } route := &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: labels, }, diff --git a/pkg/route/generator/generate_test.go b/pkg/route/generator/generate_test.go index ef1ac5a75ce2..9315a7db23ca 100644 --- a/pkg/route/generator/generate_test.go +++ b/pkg/route/generator/generate_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/intstr" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" routeapi "github.com/openshift/origin/pkg/route/api" ) @@ -28,7 +28,7 @@ func TestGenerateRoute(t *testing.T) { "hostname": "www.example.com", }, expected: routeapi.Route{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Labels: map[string]string{ "foo": "bar", @@ -58,7 +58,7 @@ func TestGenerateRoute(t *testing.T) { "hostname": "www.example.com", }, expected: routeapi.Route{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Labels: map[string]string{ "foo": "bar", diff --git a/pkg/route/registry/route/etcd/etcd.go b/pkg/route/registry/route/etcd/etcd.go index 0b3e94f970c2..287979fbb1de 100644 --- a/pkg/route/registry/route/etcd/etcd.go +++ b/pkg/route/registry/route/etcd/etcd.go @@ -1,11 +1,12 @@ package etcd import ( - kapi "k8s.io/kubernetes/pkg/api" - kapirest "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + kapirest "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/route" "github.com/openshift/origin/pkg/route/api" @@ -58,11 +59,11 @@ func (r *StatusREST) New() runtime.Object { } // Get retrieves the object from the storage. It is required to support Patch. -func (r *StatusREST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - return r.store.Get(ctx, name) +func (r *StatusREST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + return r.store.Get(ctx, name, options) } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx kapi.Context, name string, objInfo kapirest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *StatusREST) Update(ctx apirequest.Context, name string, objInfo kapirest.UpdatedObjectInfo) (runtime.Object, bool, error) { return r.store.Update(ctx, name, objInfo) } diff --git a/pkg/route/registry/route/etcd/etcd_test.go b/pkg/route/registry/route/etcd/etcd_test.go index c0565eacd523..b0f52e519447 100644 --- a/pkg/route/registry/route/etcd/etcd_test.go +++ b/pkg/route/registry/route/etcd/etcd_test.go @@ -3,12 +3,13 @@ package etcd import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/kubernetes/pkg/registry/registrytest" - "k8s.io/kubernetes/pkg/runtime" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" routetypes "github.com/openshift/origin/pkg/route" "github.com/openshift/origin/pkg/route/api" @@ -44,7 +45,7 @@ func newStorage(t *testing.T, allocator routetypes.RouteAllocator) (*REST, *etcd func validRoute() *api.Route { return &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Spec: api.RouteSpec{ @@ -66,7 +67,7 @@ func TestCreate(t *testing.T) { validRoute(), // invalid &api.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "_-a123-a_"}, + ObjectMeta: metav1.ObjectMeta{Name: "_-a123-a_"}, }, ) } @@ -77,7 +78,7 @@ func TestCreateWithAllocation(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() - obj, err := storage.Create(kapi.NewDefaultContext(), validRoute()) + obj, err := storage.Create(apirequest.NewDefaultContext(), validRoute()) if err != nil { t.Fatalf("unable to create object: %v", err) } diff --git a/pkg/route/registry/route/registry.go b/pkg/route/registry/route/registry.go index 40c02ab55f14..4a278ca75989 100644 --- a/pkg/route/registry/route/registry.go +++ b/pkg/route/registry/route/registry.go @@ -1,8 +1,10 @@ package route import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/route/api" ) @@ -10,15 +12,15 @@ import ( // Registry is an interface for things that know how to store Routes. type Registry interface { // ListRoutes obtains list of routes that match a selector. - ListRoutes(ctx kapi.Context, options *kapi.ListOptions) (*api.RouteList, error) + ListRoutes(ctx apirequest.Context, options *metainternal.ListOptions) (*api.RouteList, error) // GetRoute retrieves a specific route. - GetRoute(ctx kapi.Context, routeID string) (*api.Route, error) + GetRoute(ctx apirequest.Context, routeID string, options *metav1.GetOptions) (*api.Route, error) // CreateRoute creates a new route. - CreateRoute(ctx kapi.Context, route *api.Route) error + CreateRoute(ctx apirequest.Context, route *api.Route) error // UpdateRoute updates a route. - UpdateRoute(ctx kapi.Context, route *api.Route) error + UpdateRoute(ctx apirequest.Context, route *api.Route) error // DeleteRoute deletes a route. - DeleteRoute(ctx kapi.Context, routeID string) error + DeleteRoute(ctx apirequest.Context, routeID string) error // WatchRoutes watches for new/modified/deleted routes. - WatchRoutes(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchRoutes(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } diff --git a/pkg/route/registry/route/strategy.go b/pkg/route/registry/route/strategy.go index d31bb6ceebc8..6d673b56c0e4 100644 --- a/pkg/route/registry/route/strategy.go +++ b/pkg/route/registry/route/strategy.go @@ -3,14 +3,16 @@ package route import ( "fmt" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/route" "github.com/openshift/origin/pkg/route/api" @@ -22,7 +24,7 @@ const HostGeneratedAnnotationKey = "openshift.io/host.generated" type routeStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator route.RouteAllocator } @@ -31,7 +33,7 @@ type routeStrategy struct { func NewStrategy(allocator route.RouteAllocator) routeStrategy { return routeStrategy{ kapi.Scheme, - kapi.SimpleNameGenerator, + names.SimpleNameGenerator, allocator, } } @@ -40,7 +42,7 @@ func (routeStrategy) NamespaceScoped() bool { return true } -func (s routeStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s routeStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { route := obj.(*api.Route) route.Status = api.RouteStatus{} err := s.allocateHost(route) @@ -50,7 +52,7 @@ func (s routeStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { } } -func (s routeStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s routeStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { route := obj.(*api.Route) oldRoute := old.(*api.Route) route.Status = oldRoute.Status @@ -86,7 +88,7 @@ func (s routeStrategy) allocateHost(route *api.Route) error { return nil } -func (routeStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (routeStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { route := obj.(*api.Route) return validation.ValidateRoute(route) } @@ -99,7 +101,7 @@ func (routeStrategy) AllowCreateOnUpdate() bool { func (routeStrategy) Canonicalize(obj runtime.Object) { } -func (routeStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (routeStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { oldRoute := old.(*api.Route) objRoute := obj.(*api.Route) return validation.ValidateRouteUpdate(objRoute, oldRoute) @@ -115,13 +117,13 @@ type routeStatusStrategy struct { var StatusStrategy = routeStatusStrategy{NewStrategy(nil)} -func (routeStatusStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (routeStatusStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { newRoute := obj.(*api.Route) oldRoute := old.(*api.Route) newRoute.Spec = oldRoute.Spec } -func (routeStatusStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (routeStatusStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateRouteStatusUpdate(obj.(*api.Route), old.(*api.Route)) } diff --git a/pkg/route/registry/route/strategy_test.go b/pkg/route/registry/route/strategy_test.go index e8c979e12694..1c88882bf21c 100644 --- a/pkg/route/registry/route/strategy_test.go +++ b/pkg/route/registry/route/strategy_test.go @@ -4,8 +4,10 @@ import ( "testing" "github.com/openshift/origin/pkg/route/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/types" ) type testAllocator struct { @@ -19,7 +21,7 @@ func (t testAllocator) GenerateHostname(*api.Route, *api.RouterShard) string { } func TestEmptyHostDefaulting(t *testing.T) { - ctx := kapi.NewContext() + ctx := apirequest.NewContext() strategy := NewStrategy(testAllocator{}) hostlessCreatedRoute := &api.Route{} @@ -29,7 +31,7 @@ func TestEmptyHostDefaulting(t *testing.T) { } persistedRoute := &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "myroute", UID: types.UID("abc"), @@ -49,7 +51,7 @@ func TestEmptyHostDefaulting(t *testing.T) { } func TestHostWithWildcardPolicies(t *testing.T) { - ctx := kapi.NewContext() + ctx := apirequest.NewContext() strategy := NewStrategy(testAllocator{}) tests := []struct { @@ -93,7 +95,7 @@ func TestHostWithWildcardPolicies(t *testing.T) { for _, tc := range tests { route := &api.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "wildcard", Name: tc.name, UID: types.UID("wild"), diff --git a/pkg/router/controller/controller.go b/pkg/router/controller/controller.go index 083748d0db71..7e818e460de3 100644 --- a/pkg/router/controller/controller.go +++ b/pkg/router/controller/controller.go @@ -6,12 +6,12 @@ import ( "time" "github.com/golang/glog" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/router" diff --git a/pkg/router/controller/controller_test.go b/pkg/router/controller/controller_test.go index 176f9be54fd7..4532a42b5c64 100644 --- a/pkg/router/controller/controller_test.go +++ b/pkg/router/controller/controller_test.go @@ -3,9 +3,9 @@ package controller import ( "testing" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" ) diff --git a/pkg/router/controller/extended_validator.go b/pkg/router/controller/extended_validator.go index 4787146d03ba..d1d692747982 100644 --- a/pkg/router/controller/extended_validator.go +++ b/pkg/router/controller/extended_validator.go @@ -5,9 +5,9 @@ import ( "reflect" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/route/api/validation" diff --git a/pkg/router/controller/factory/factory.go b/pkg/router/controller/factory/factory.go index bc2289156f08..f991fdb371b3 100644 --- a/pkg/router/controller/factory/factory.go +++ b/pkg/router/controller/factory/factory.go @@ -5,17 +5,19 @@ import ( "sort" "time" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - utilwait "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" osclient "github.com/openshift/origin/pkg/client" oscache "github.com/openshift/origin/pkg/client/cache" @@ -51,7 +53,7 @@ func NewDefaultRouterControllerFactory(oc osclient.RoutesNamespacer, kc kclients NodeClient: kc.Core(), ResyncInterval: 10 * time.Minute, - Namespace: kapi.NamespaceAll, + Namespace: metav1.NamespaceAll, Labels: labels.Everything(), Fields: fields.Everything(), } @@ -325,8 +327,8 @@ type routeLW struct { namespace string } -func (lw *routeLW) List(options kapi.ListOptions) (runtime.Object, error) { - opts := kapi.ListOptions{ +func (lw *routeLW) List(options metainternal.ListOptions) (runtime.Object, error) { + opts := metainternal.ListOptions{ LabelSelector: lw.label, FieldSelector: lw.field, } @@ -339,8 +341,8 @@ func (lw *routeLW) List(options kapi.ListOptions) (runtime.Object, error) { return routes, nil } -func (lw *routeLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - opts := kapi.ListOptions{ +func (lw *routeLW) Watch(options metainternal.ListOptions) (watch.Interface, error) { + opts := metainternal.ListOptions{ LabelSelector: lw.label, FieldSelector: lw.field, ResourceVersion: options.ResourceVersion, @@ -356,14 +358,14 @@ type endpointsLW struct { namespace string } -func (lw *endpointsLW) List(options kapi.ListOptions) (runtime.Object, error) { +func (lw *endpointsLW) List(options metav1.ListOptions) (runtime.Object, error) { return lw.client.Endpoints(lw.namespace).List(options) } -func (lw *endpointsLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - opts := kapi.ListOptions{ - LabelSelector: lw.label, - FieldSelector: lw.field, +func (lw *endpointsLW) Watch(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{ + LabelSelector: lw.label.String(), + FieldSelector: lw.field.String(), ResourceVersion: options.ResourceVersion, } return lw.client.Endpoints(lw.namespace).Watch(opts) @@ -376,14 +378,14 @@ type nodeLW struct { field fields.Selector } -func (lw *nodeLW) List(options kapi.ListOptions) (runtime.Object, error) { +func (lw *nodeLW) List(options metav1.ListOptions) (runtime.Object, error) { return lw.client.Nodes().List(options) } -func (lw *nodeLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - opts := kapi.ListOptions{ - LabelSelector: lw.label, - FieldSelector: lw.field, +func (lw *nodeLW) Watch(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{ + LabelSelector: lw.label.String(), + FieldSelector: lw.field.String(), ResourceVersion: options.ResourceVersion, } return lw.client.Nodes().Watch(opts) @@ -415,10 +417,10 @@ type ingressLW struct { namespace string } -func (lw *ingressLW) List(options kapi.ListOptions) (runtime.Object, error) { - opts := kapi.ListOptions{ - LabelSelector: lw.label, - FieldSelector: lw.field, +func (lw *ingressLW) List(options metav1.ListOptions) (runtime.Object, error) { + opts := metav1.ListOptions{ + LabelSelector: lw.label.String(), + FieldSelector: lw.field.String(), } ingresses, err := lw.client.Ingresses(lw.namespace).List(opts) if err != nil { @@ -429,10 +431,10 @@ func (lw *ingressLW) List(options kapi.ListOptions) (runtime.Object, error) { return ingresses, nil } -func (lw *ingressLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - opts := kapi.ListOptions{ - LabelSelector: lw.label, - FieldSelector: lw.field, +func (lw *ingressLW) Watch(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{ + LabelSelector: lw.label.String(), + FieldSelector: lw.field.String(), ResourceVersion: options.ResourceVersion, } return lw.client.Ingresses(lw.namespace).Watch(opts) @@ -446,14 +448,14 @@ type secretLW struct { namespace string } -func (lw *secretLW) List(options kapi.ListOptions) (runtime.Object, error) { +func (lw *secretLW) List(options metav1.ListOptions) (runtime.Object, error) { return lw.client.Secrets(lw.namespace).List(options) } -func (lw *secretLW) Watch(options kapi.ListOptions) (watch.Interface, error) { - opts := kapi.ListOptions{ - LabelSelector: lw.label, - FieldSelector: lw.field, +func (lw *secretLW) Watch(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{ + LabelSelector: lw.label.String(), + FieldSelector: lw.field.String(), ResourceVersion: options.ResourceVersion, } return lw.client.Secrets(lw.namespace).Watch(opts) diff --git a/pkg/router/controller/host_admitter.go b/pkg/router/controller/host_admitter.go index 6a543152e413..6199a287d2b9 100644 --- a/pkg/router/controller/host_admitter.go +++ b/pkg/router/controller/host_admitter.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/router" diff --git a/pkg/router/controller/host_admitter_test.go b/pkg/router/controller/host_admitter_test.go index 6c863fcdd788..a6b027b3a480 100644 --- a/pkg/router/controller/host_admitter_test.go +++ b/pkg/router/controller/host_admitter_test.go @@ -7,11 +7,11 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" routeapi "github.com/openshift/origin/pkg/route/api" @@ -112,7 +112,7 @@ func TestHostAdmit(t *testing.T) { for _, tc := range tests { route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: tc.name, Namespace: "allow", }, @@ -220,7 +220,7 @@ func TestWildcardHostDeny(t *testing.T) { for _, tc := range tests { route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: tc.name, Namespace: "deny", }, @@ -246,10 +246,10 @@ func TestWildcardSubDomainOwnership(t *testing.T) { recorder := rejectionRecorder{rejections: make(map[string]string)} admitter := NewHostAdmitter(p, wildcardAdmitter, true, false, recorder) - oldest := unversioned.Time{Time: time.Now()} + oldest := metav1.Time{Time: time.Now()} ownerRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: oldest, Name: "first", Namespace: "owner", @@ -266,7 +266,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { } tests := []struct { - createdAt unversioned.Time + createdAt metav1.Time name string namespace string host string @@ -298,14 +298,14 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "RouteNotAdmitted", }, { - createdAt: unversioned.Time{Time: oldest.Add(2 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(2 * time.Hour)}, name: "diffnamespace", namespace: "notowner", host: "www.namespace.test", reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(2 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(2 * time.Hour)}, name: "diffnamespace2", namespace: "notowner", host: "www.namespace.test", @@ -313,7 +313,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(2 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(2 * time.Hour)}, name: "diffnamespacewildcard", namespace: "notowner", host: "www.namespace.test", @@ -321,7 +321,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(2 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(2 * time.Hour)}, name: "diffns2", namespace: "fortytwo", host: "www.namespace.test", @@ -329,7 +329,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(3 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(3 * time.Hour)}, name: "host2diffns2", namespace: "fortytwo", host: "api.namespace.test", @@ -337,7 +337,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(3 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(3 * time.Hour)}, name: "host2diffns3", namespace: "fortytwo", host: "api.namespace.test", @@ -345,13 +345,13 @@ func TestWildcardSubDomainOwnership(t *testing.T) { reason: "HostAlreadyClaimed", }, { - createdAt: unversioned.Time{Time: oldest.Add(4 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(4 * time.Hour)}, name: "ownernshost", namespace: "owner", host: "api.namespace.test", }, { - createdAt: unversioned.Time{Time: oldest.Add(4 * time.Hour)}, + createdAt: metav1.Time{Time: oldest.Add(4 * time.Hour)}, name: "ownernswildcardhost", namespace: "owner", host: "wild.namespace.test", @@ -414,7 +414,7 @@ func TestWildcardSubDomainOwnership(t *testing.T) { for _, tc := range tests { route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: tc.createdAt, Name: tc.name, Namespace: tc.namespace, @@ -443,8 +443,8 @@ func TestWildcardSubDomainOwnership(t *testing.T) { } wildcardRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: oldest.Add(time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: oldest.Add(time.Hour)}, Name: "wildcard-owner", Namespace: "owner", }, @@ -467,8 +467,8 @@ func TestWildcardSubDomainOwnership(t *testing.T) { // bounce all the routes from the namespace "owner" and claim // ownership of the subdomain for the namespace "bouncer". bouncer := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: oldest.Add(-1 * time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: oldest.Add(-1 * time.Hour)}, Name: "hosted", Namespace: "bouncer", }, @@ -499,10 +499,10 @@ func TestValidRouteAdmissionFuzzing(t *testing.T) { recorder := rejectionRecorder{rejections: make(map[string]string)} admitter := NewHostAdmitter(p, RouteAdmissionFunc(admitAll), true, false, recorder) - oldest := unversioned.Time{Time: time.Now()} + oldest := metav1.Time{Time: time.Now()} - makeTime := func(d time.Duration) unversioned.Time { - return unversioned.Time{Time: oldest.Add(d)} + makeTime := func(d time.Duration) metav1.Time { + return metav1.Time{Time: oldest.Add(d)} } routes := []*routeapi.Route{ @@ -569,13 +569,13 @@ func TestValidRouteAdmissionFuzzing(t *testing.T) { } } -func makeRoute(ns, name, host, path string, wildcard bool, creationTimestamp unversioned.Time) *routeapi.Route { +func makeRoute(ns, name, host, path string, wildcard bool, creationTimestamp metav1.Time) *routeapi.Route { policy := routeapi.WildcardPolicyNone if wildcard { policy = routeapi.WildcardPolicySubdomain } return &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: name, Namespace: ns, CreationTimestamp: creationTimestamp}, + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: ns, CreationTimestamp: creationTimestamp}, Spec: routeapi.RouteSpec{ Host: host, Path: path, @@ -591,10 +591,10 @@ func TestInvalidRouteAdmissionFuzzing(t *testing.T) { recorder := rejectionRecorder{rejections: make(map[string]string)} admitter := NewHostAdmitter(p, RouteAdmissionFunc(admitAll), true, false, recorder) - oldest := unversioned.Time{Time: time.Now()} + oldest := metav1.Time{Time: time.Now()} - makeTime := func(d time.Duration) unversioned.Time { - return unversioned.Time{Time: oldest.Add(d)} + makeTime := func(d time.Duration) metav1.Time { + return metav1.Time{Time: oldest.Add(d)} } routes := []struct { @@ -770,13 +770,13 @@ func TestInvalidRouteAdmissionFuzzing(t *testing.T) { func TestStatusWildcardPolicyNoOp(t *testing.T) { now := nowFn() - touched := unversioned.Time{Time: now.Add(-time.Minute)} + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} c := testclient.NewSimpleFake() recorder := rejectionRecorder{rejections: make(map[string]string)} admitter := NewHostAdmitter(p, wildcardAdmitter, true, false, recorder) err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "wild", Namespace: "thing", UID: types.UID("uid8")}, + ObjectMeta: metav1.ObjectMeta{Name: "wild", Namespace: "thing", UID: types.UID("uid8")}, Spec: routeapi.RouteSpec{ Host: "wild.test.local", WildcardPolicy: routeapi.WildcardPolicySubdomain, @@ -808,13 +808,13 @@ func TestStatusWildcardPolicyNoOp(t *testing.T) { func TestStatusWildcardPolicyNotAllowedNoOp(t *testing.T) { now := nowFn() - touched := unversioned.Time{Time: now.Add(-time.Minute)} + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} c := testclient.NewSimpleFake() recorder := rejectionRecorder{rejections: make(map[string]string)} admitter := NewHostAdmitter(p, wildcardAdmitter, false, false, recorder) err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "wild", Namespace: "thing", UID: types.UID("uid8")}, + ObjectMeta: metav1.ObjectMeta{Name: "wild", Namespace: "thing", UID: types.UID("uid8")}, Spec: routeapi.RouteSpec{ Host: "wild.test.local", WildcardPolicy: "nono", @@ -852,10 +852,10 @@ func TestDisableOwnershipChecksFuzzing(t *testing.T) { uniqueHostPlugin := NewUniqueHost(p, HostForRoute, true, recorder) admitter := NewHostAdmitter(uniqueHostPlugin, RouteAdmissionFunc(admitAll), true, true, recorder) - oldest := unversioned.Time{Time: time.Now()} + oldest := metav1.Time{Time: time.Now()} - makeTime := func(d time.Duration) unversioned.Time { - return unversioned.Time{Time: oldest.Add(d)} + makeTime := func(d time.Duration) metav1.Time { + return metav1.Time{Time: oldest.Add(d)} } routes := []struct { diff --git a/pkg/router/controller/ingress.go b/pkg/router/controller/ingress.go index 3cb95732e0e9..134acb26d4f8 100644 --- a/pkg/router/controller/ingress.go +++ b/pkg/router/controller/ingress.go @@ -7,12 +7,13 @@ import ( "sync" "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/api" routeapi "github.com/openshift/origin/pkg/route/api" @@ -305,7 +306,7 @@ func (it *IngressTranslator) cacheTLS(ingressTLS []extensions.IngressTLS, namesp // TODO should initial retrieval be retried to minimize the chances // that a temporary connectivity failure delays route availability // until the next sync event (when the secret will next be seen)? - if secret, err := it.client.Secrets(namespace).Get(tls.SecretName); err != nil { + if secret, err := it.client.Secrets(namespace).Get(tls.SecretName, metav1.GetOptions{}); err != nil { glog.V(4).Infof("Error retrieving secret %v: %v", secretKey, err) } else { newTLS, err := tlsFromSecret(secret) @@ -452,7 +453,7 @@ func ingressToRoutes(ingress *extensions.Ingress) (routes []*routeapi.Route, rou } route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, // Reuse the values from ingress Namespace: ingress.Namespace, diff --git a/pkg/router/controller/ingress_test.go b/pkg/router/controller/ingress_test.go index e50b208442fc..dfe396c0d8fb 100644 --- a/pkg/router/controller/ingress_test.go +++ b/pkg/router/controller/ingress_test.go @@ -3,13 +3,14 @@ package controller import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/api" ) @@ -324,7 +325,7 @@ func TestIngressTranslator_generateRouteEvents(t *testing.T) { "Rule-less ingress should generate no events": { eventType: watch.Added, ingress: &extensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "empty-ingress", Namespace: "my-namespace", }, @@ -664,7 +665,7 @@ func TestGetNameForHost(t *testing.T) { func getTestIngress() *extensions.Ingress { return &extensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "my-ingress", Namespace: "my-namespace", }, @@ -693,7 +694,7 @@ func getTestIngress() *extensions.Ingress { func getTestSecret(namespace, name, cert, privateKey string) *kapi.Secret { return &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, diff --git a/pkg/router/controller/status.go b/pkg/router/controller/status.go index a20aa7309230..18c56443a29d 100644 --- a/pkg/router/controller/status.go +++ b/pkg/router/controller/status.go @@ -7,12 +7,12 @@ import ( "github.com/golang/glog" lru "github.com/hashicorp/golang-lru" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client" routeapi "github.com/openshift/origin/pkg/route/api" @@ -54,8 +54,8 @@ func NewStatusAdmitter(plugin router.Plugin, client client.RoutesNamespacer, nam // Return a time truncated to the second to ensure that in-memory and // serialized timestamps can be safely compared. -func getRfc3339Timestamp() unversioned.Time { - return unversioned.Now().Rfc3339Copy() +func getRfc3339Timestamp() metav1.Time { + return metav1.Now().Rfc3339Copy() } // nowFn allows the package to be tested @@ -133,8 +133,8 @@ func setIngressCondition(ingress *routeapi.RouteIngress, condition routeapi.Rout return true } -func ingressConditionTouched(ingress *routeapi.RouteIngress) *unversioned.Time { - var lastTouch *unversioned.Time +func ingressConditionTouched(ingress *routeapi.RouteIngress) *metav1.Time { + var lastTouch *metav1.Time for _, condition := range ingress.Conditions { if t := condition.LastTransitionTime; t != nil { switch { @@ -148,7 +148,7 @@ func ingressConditionTouched(ingress *routeapi.RouteIngress) *unversioned.Time { // recordIngressConditionFailure updates the matching ingress on the route (or adds a new one) with the specified // condition, returning true if the object was modified. -func recordIngressConditionFailure(route *routeapi.Route, name, hostName string, condition routeapi.RouteIngressCondition) (*routeapi.RouteIngress, bool, *unversioned.Time) { +func recordIngressConditionFailure(route *routeapi.Route, name, hostName string, condition routeapi.RouteIngressCondition) (*routeapi.RouteIngress, bool, *metav1.Time) { for i := range route.Status.Ingress { existing := &route.Status.Ingress[i] if existing.RouterName != name { @@ -175,7 +175,7 @@ func recordIngressConditionFailure(route *routeapi.Route, name, hostName string, } // hasIngressBeenTouched returns true if the route appears to have been touched since the last time -func (a *StatusAdmitter) hasIngressBeenTouched(route *routeapi.Route, lastTouch *unversioned.Time) bool { +func (a *StatusAdmitter) hasIngressBeenTouched(route *routeapi.Route, lastTouch *metav1.Time) bool { glog.V(4).Infof("has last touch %v for %s/%s", lastTouch, route.Namespace, route.Name) if lastTouch.IsZero() { return false @@ -200,7 +200,7 @@ func (a *StatusAdmitter) hasIngressBeenTouched(route *routeapi.Route, lastTouch // recordIngressTouch tracks whether the ingress record updated succeeded and returns true if the admitter can // continue. Conflict errors are treated as no error, but indicate the touch was not successful and the caller // should retry. -func (a *StatusAdmitter) recordIngressTouch(route *routeapi.Route, touch *unversioned.Time, oldTouch *unversioned.Time, err error) (bool, error) { +func (a *StatusAdmitter) recordIngressTouch(route *routeapi.Route, touch *metav1.Time, oldTouch *metav1.Time, err error) (bool, error) { switch { case err == nil: if touch != nil { diff --git a/pkg/router/controller/status_test.go b/pkg/router/controller/status_test.go index f54b5d85d64e..d8502530d824 100644 --- a/pkg/router/controller/status_test.go +++ b/pkg/router/controller/status_test.go @@ -6,14 +6,14 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client/testclient" routeapi "github.com/openshift/origin/pkg/route/api" @@ -46,12 +46,12 @@ func (p *fakePlugin) Commit() error { func TestStatusNoOp(t *testing.T) { now := nowFn() - touched := unversioned.Time{Time: now.Add(-time.Minute)} + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} c := testclient.NewSimpleFake() admitter := NewStatusAdmitter(p, c, "test", "a.b.c.d") err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -78,7 +78,7 @@ func TestStatusNoOp(t *testing.T) { } } -func checkResult(t *testing.T, err error, c *testclient.Fake, admitter *StatusAdmitter, targetHost string, targetObjTime unversioned.Time, targetCachedTime *time.Time, ingressInd int, actionInd int) *routeapi.Route { +func checkResult(t *testing.T, err error, c *testclient.Fake, admitter *StatusAdmitter, targetHost string, targetObjTime metav1.Time, targetCachedTime *time.Time, ingressInd int, actionInd int) *routeapi.Route { if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -89,7 +89,7 @@ func checkResult(t *testing.T, err error, c *testclient.Fake, admitter *StatusAd if action.GetVerb() != "update" || action.GetResource().Resource != "routes" || action.GetSubresource() != "status" { t.Fatalf("unexpected action: %#v", action) } - obj := c.Actions()[actionInd].(core.UpdateAction).GetObject().(*routeapi.Route) + obj := c.Actions()[actionInd].(clientgotesting.UpdateAction).GetObject().(*routeapi.Route) if len(obj.Status.Ingress) != ingressInd+1 || obj.Status.Ingress[ingressInd].Host != targetHost { t.Fatalf("expected route reset: expected %q / actual %q -- %#v", targetHost, obj.Status.Ingress[ingressInd].Host, obj) } @@ -112,14 +112,14 @@ func checkResult(t *testing.T, err error, c *testclient.Fake, admitter *StatusAd } func TestStatusResetsHost(t *testing.T) { - now := unversioned.Now() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + now := metav1.Now() + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter := NewStatusAdmitter(p, c, "test", "") err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -143,11 +143,11 @@ func TestStatusResetsHost(t *testing.T) { func TestStatusAdmitsRouteOnForbidden(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) - c.PrependReactor("update", "routes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c.PrependReactor("update", "routes", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { return false, nil, nil } @@ -155,7 +155,7 @@ func TestStatusAdmitsRouteOnForbidden(t *testing.T) { }) admitter := NewStatusAdmitter(p, c, "test", "") err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -178,11 +178,11 @@ func TestStatusAdmitsRouteOnForbidden(t *testing.T) { func TestStatusBackoffOnConflict(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) - c.PrependReactor("update", "routes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c.PrependReactor("update", "routes", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { return false, nil, nil } @@ -190,7 +190,7 @@ func TestStatusBackoffOnConflict(t *testing.T) { }) admitter := NewStatusAdmitter(p, c, "test", "") err := admitter.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -213,12 +213,12 @@ func TestStatusBackoffOnConflict(t *testing.T) { func TestStatusRecordRejection(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } + nowFn = func() metav1.Time { return now } p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter := NewStatusAdmitter(p, c, "test", "") admitter.RecordRouteRejection(&routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, }, "Failed", "generic error") @@ -229,7 +229,7 @@ func TestStatusRecordRejection(t *testing.T) { if action.GetVerb() != "update" || action.GetResource().Resource != "routes" || action.GetSubresource() != "status" { t.Fatalf("unexpected action: %#v", action) } - obj := c.Actions()[0].(core.UpdateAction).GetObject().(*routeapi.Route) + obj := c.Actions()[0].(clientgotesting.UpdateAction).GetObject().(*routeapi.Route) if len(obj.Status.Ingress) != 1 || obj.Status.Ingress[0].Host != "route1.test.local" { t.Fatalf("expected route reset: %#v", obj) } @@ -244,13 +244,13 @@ func TestStatusRecordRejection(t *testing.T) { func TestStatusRecordRejectionNoChange(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter := NewStatusAdmitter(p, c, "test", "") admitter.RecordRouteRejection(&routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -281,13 +281,13 @@ func TestStatusRecordRejectionNoChange(t *testing.T) { func TestStatusRecordRejectionWithStatus(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter := NewStatusAdmitter(p, c, "test", "") admitter.RecordRouteRejection(&routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -313,7 +313,7 @@ func TestStatusRecordRejectionWithStatus(t *testing.T) { if action.GetVerb() != "update" || action.GetResource().Resource != "routes" || action.GetSubresource() != "status" { t.Fatalf("unexpected action: %#v", action) } - obj := c.Actions()[0].(core.UpdateAction).GetObject().(*routeapi.Route) + obj := c.Actions()[0].(clientgotesting.UpdateAction).GetObject().(*routeapi.Route) if len(obj.Status.Ingress) != 1 || obj.Status.Ingress[0].Host != "route1.test.local" { t.Fatalf("expected route reset: %#v", obj) } @@ -328,13 +328,13 @@ func TestStatusRecordRejectionWithStatus(t *testing.T) { func TestStatusRecordRejectionOnHostUpdateOnly(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter := NewStatusAdmitter(p, c, "test", "") admitter.RecordRouteRejection(&routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -362,7 +362,7 @@ func TestStatusRecordRejectionOnHostUpdateOnly(t *testing.T) { if action.GetVerb() != "update" || action.GetResource().Resource != "routes" || action.GetSubresource() != "status" { t.Fatalf("unexpected action: %#v", action) } - obj := c.Actions()[0].(core.UpdateAction).GetObject().(*routeapi.Route) + obj := c.Actions()[0].(clientgotesting.UpdateAction).GetObject().(*routeapi.Route) if len(obj.Status.Ingress) != 1 || obj.Status.Ingress[0].Host != "route1.test.local" { t.Fatalf("expected route reset: %#v", obj) } @@ -377,11 +377,11 @@ func TestStatusRecordRejectionOnHostUpdateOnly(t *testing.T) { func TestStatusRecordRejectionConflict(t *testing.T) { now := nowFn() - nowFn = func() unversioned.Time { return now } - touched := unversioned.Time{Time: now.Add(-time.Minute)} + nowFn = func() metav1.Time { return now } + touched := metav1.Time{Time: now.Add(-time.Minute)} p := &fakePlugin{} - c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) - c.PrependReactor("update", "routes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + c := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + c.PrependReactor("update", "routes", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { return false, nil, nil } @@ -389,7 +389,7 @@ func TestStatusRecordRejectionConflict(t *testing.T) { }) admitter := NewStatusAdmitter(p, c, "test", "") admitter.RecordRouteRejection(&routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -415,7 +415,7 @@ func TestStatusRecordRejectionConflict(t *testing.T) { if action.GetVerb() != "update" || action.GetResource().Resource != "routes" || action.GetSubresource() != "status" { t.Fatalf("unexpected action: %#v", action) } - obj := c.Actions()[0].(core.UpdateAction).GetObject().(*routeapi.Route) + obj := c.Actions()[0].(clientgotesting.UpdateAction).GetObject().(*routeapi.Route) if len(obj.Status.Ingress) != 1 || obj.Status.Ingress[0].Host != "route1.test.local" { t.Fatalf("expected route reset: %#v", obj) } @@ -432,12 +432,12 @@ func TestStatusFightBetweenReplicas(t *testing.T) { p := &fakePlugin{} // the initial pre-population - now1 := unversioned.Now() - nowFn = func() unversioned.Time { return now1 } - c1 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + now1 := metav1.Now() + nowFn = func() metav1.Time { return now1 } + c1 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter1 := NewStatusAdmitter(p, c1, "test", "") err := admitter1.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route1.test.local"}, Status: routeapi.RouteStatus{}, }) @@ -445,17 +445,17 @@ func TestStatusFightBetweenReplicas(t *testing.T) { outObj1 := checkResult(t, err, c1, admitter1, "route1.test.local", now1, &now1.Time, 0, 0) // the new deployment's replica - now2 := unversioned.Time{Time: now1.Time.Add(time.Minute)} - nowFn = func() unversioned.Time { return now2 } - c2 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + now2 := metav1.Time{Time: now1.Time.Add(time.Minute)} + nowFn = func() metav1.Time { return now2 } + c2 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) admitter2 := NewStatusAdmitter(p, c2, "test", "") outObj1.Spec.Host = "route1.test-new.local" err = admitter2.HandleRoute(watch.Added, outObj1) outObj2 := checkResult(t, err, c2, admitter2, "route1.test-new.local", now2, &now2.Time, 0, 0) - now3 := unversioned.Time{Time: now1.Time.Add(time.Minute)} - nowFn = func() unversioned.Time { return now3 } + now3 := metav1.Time{Time: now1.Time.Add(time.Minute)} + nowFn = func() metav1.Time { return now3 } outObj2.Spec.Host = "route1.test.local" err = admitter1.HandleRoute(watch.Modified, outObj2) @@ -474,12 +474,12 @@ func TestStatusFightBetweenRouters(t *testing.T) { p := &fakePlugin{} // initial try, results in conflict - now1 := unversioned.Now() - nowFn = func() unversioned.Time { return now1 } - touched1 := unversioned.Time{Time: now1.Add(-time.Minute)} - c1 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) + now1 := metav1.Now() + nowFn = func() metav1.Time { return now1 } + touched1 := metav1.Time{Time: now1.Add(-time.Minute)} + c1 := testclient.NewSimpleFake(&routeapi.Route{ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}}) returnConflict := true - c1.PrependReactor("update", "routes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + c1.PrependReactor("update", "routes", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { return false, nil, nil } @@ -491,7 +491,7 @@ func TestStatusFightBetweenRouters(t *testing.T) { }) admitter1 := NewStatusAdmitter(p, c1, "test2", "") err := admitter1.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route2.test-new.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -524,12 +524,12 @@ func TestStatusFightBetweenRouters(t *testing.T) { checkResult(t, err, c1, admitter1, "route2.test-new.local", now1, nil, 1, 0) // second try, result should be ok - now2 := unversioned.Now() - nowFn = func() unversioned.Time { return now2 } - touched2 := unversioned.Time{Time: now2.Add(-time.Minute)} + now2 := metav1.Now() + nowFn = func() metav1.Time { return now2 } + touched2 := metav1.Time{Time: now2.Add(-time.Minute)} //c2 := testclient.NewSimpleFake(&routeapi.Route{}) err = admitter1.HandleRoute(watch.Added, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: "route2.test-new.local"}, Status: routeapi.RouteStatus{ Ingress: []routeapi.RouteIngress{ @@ -566,7 +566,7 @@ func makePass(t *testing.T, host string, admitter *StatusAdmitter, srcObj *route // initialize a new client c := testclient.NewSimpleFake(srcObj) if conflict { - c.PrependReactor("update", "routes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + c.PrependReactor("update", "routes", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { return false, nil, nil } @@ -618,11 +618,11 @@ func TestProtractedStatusFightBetweenRouters(t *testing.T) { newHost2 := "route2.test-new.local" newHost3 := "route3.test-new.local" - now := unversioned.Now() - nowFn = func() unversioned.Time { return now } + now := metav1.Now() + nowFn = func() metav1.Time { return now } initObj := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, + ObjectMeta: metav1.ObjectMeta{Name: "route1", Namespace: "default", UID: types.UID("uid1")}, Spec: routeapi.RouteSpec{Host: newHost}, Status: routeapi.RouteStatus{}, } @@ -640,15 +640,15 @@ func TestProtractedStatusFightBetweenRouters(t *testing.T) { makePass(t, oldHost, oldAdmitter2, currObj, false, false) t.Logf("Phase in the two 'new' routers (with the second getting a conflict)...") - now = unversioned.Time{Time: now.Add(10 * time.Minute)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(10 * time.Minute)} + nowFn = func() metav1.Time { return now } makePass(t, newHost, newAdmitter2, currObj, true, true) currObj = makePass(t, newHost, newAdmitter1, currObj, true, false) t.Logf("...which should cause 'new' router #2 to receive an update and ignore it...") - now = unversioned.Time{Time: now.Add(1 * time.Second)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(1 * time.Second)} + nowFn = func() metav1.Time { return now } makePass(t, newHost, newAdmitter2, currObj, false, false) @@ -657,8 +657,8 @@ func TestProtractedStatusFightBetweenRouters(t *testing.T) { currObj = makePass(t, oldHost, oldAdmitter1, currObj, true, false) t.Logf("...causing 'old' #2 and 'new' #1 and #2 to receive updates...") - now = unversioned.Time{Time: now.Add(1 * time.Second)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(1 * time.Second)} + nowFn = func() metav1.Time { return now } t.Logf("...where none of them react (leaving the 'old' status during the rolling update)") makePass(t, newHost, newAdmitter1, currObj, false, false) @@ -666,8 +666,8 @@ func TestProtractedStatusFightBetweenRouters(t *testing.T) { makePass(t, newHost, newAdmitter2, currObj, false, false) t.Logf("If we now send out a route update, 'old' router #1 should update the status...") - now = unversioned.Time{Time: now.Add(4 * time.Second)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(4 * time.Second)} + nowFn = func() metav1.Time { return now } currObj = makePass(t, oldHost2, oldAdmitter1, currObj, true, false) @@ -677,16 +677,16 @@ func TestProtractedStatusFightBetweenRouters(t *testing.T) { makePass(t, oldHost2, oldAdmitter2, currObj, false, false) t.Logf("...and should receive an second update due to 'old' router #1, and ignore that as well") - now = unversioned.Time{Time: now.Add(1 * time.Second)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(1 * time.Second)} + nowFn = func() metav1.Time { return now } makePass(t, newHost2, newAdmitter2, currObj, false, false) makePass(t, oldHost2, oldAdmitter1, currObj, false, false) makePass(t, oldHost2, oldAdmitter2, currObj, false, false) t.Logf("If an update occurs after the contention period has elapsed...") - now = unversioned.Time{Time: now.Add(1 * time.Minute)} - nowFn = func() unversioned.Time { return now } + now = metav1.Time{Time: now.Add(1 * time.Minute)} + nowFn = func() metav1.Time { return now } t.Logf("both of the 'new' routers should try to update the status, since the cache has expired") makePass(t, newHost3, newAdmitter1, currObj, true, true) diff --git a/pkg/router/controller/unique_host.go b/pkg/router/controller/unique_host.go index 44317b044c74..613b0424ba3d 100644 --- a/pkg/router/controller/unique_host.go +++ b/pkg/router/controller/unique_host.go @@ -5,9 +5,9 @@ import ( "strings" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/route/api/validation" diff --git a/pkg/router/f5/f5.go b/pkg/router/f5/f5.go index 7a3e10255178..37616ebb87aa 100644 --- a/pkg/router/f5/f5.go +++ b/pkg/router/f5/f5.go @@ -16,7 +16,7 @@ import ( "github.com/golang/glog" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" ) const ( diff --git a/pkg/router/f5/plugin.go b/pkg/router/f5/plugin.go index ac850bf2dac9..ce30e158d83e 100644 --- a/pkg/router/f5/plugin.go +++ b/pkg/router/f5/plugin.go @@ -4,10 +4,10 @@ import ( "fmt" "github.com/golang/glog" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/router/controller" diff --git a/pkg/router/f5/plugin_test.go b/pkg/router/f5/plugin_test.go index cb562d3969d4..aa09c415b18d 100644 --- a/pkg/router/f5/plugin_test.go +++ b/pkg/router/f5/plugin_test.go @@ -15,8 +15,9 @@ import ( "github.com/gorilla/mux" "github.com/openshift/origin/pkg/cmd/util" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" ) @@ -1510,7 +1511,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint add", eventType: watch.Added, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -1552,7 +1553,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint modify", eventType: watch.Modified, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -1594,7 +1595,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint delete", eventType: watch.Modified, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -1660,7 +1661,7 @@ func TestHandleRoute(t *testing.T) { name: "Unsecure route add", eventType: watch.Added, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "unsecuretest", }, @@ -1715,7 +1716,7 @@ func TestHandleRoute(t *testing.T) { name: "Unsecure route modify", eventType: watch.Modified, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "unsecuretest", }, @@ -1769,7 +1770,7 @@ func TestHandleRoute(t *testing.T) { name: "Unsecure route delete", eventType: watch.Deleted, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "unsecuretest", }, @@ -1799,7 +1800,7 @@ func TestHandleRoute(t *testing.T) { name: "Edge route add", eventType: watch.Added, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "edgetest", }, @@ -1867,7 +1868,7 @@ func TestHandleRoute(t *testing.T) { name: "Edge route delete", eventType: watch.Deleted, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "edgetest", }, @@ -1935,7 +1936,7 @@ func TestHandleRoute(t *testing.T) { name: "Passthrough route add", eventType: watch.Added, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "passthroughtest", }, @@ -1967,7 +1968,7 @@ func TestHandleRoute(t *testing.T) { name: "Add route with same hostname as passthrough route", eventType: watch.Added, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "conflictingroutetest", }, @@ -2001,7 +2002,7 @@ func TestHandleRoute(t *testing.T) { name: "Modify route with same hostname as passthrough route", eventType: watch.Modified, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "conflictingroutetest", }, @@ -2030,7 +2031,7 @@ func TestHandleRoute(t *testing.T) { name: "Delete route with same hostname as passthrough route", eventType: watch.Deleted, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "conflictingroutetest", }, @@ -2059,7 +2060,7 @@ func TestHandleRoute(t *testing.T) { name: "Passthrough route delete", eventType: watch.Deleted, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "passthroughtest", }, @@ -2091,7 +2092,7 @@ func TestHandleRoute(t *testing.T) { name: "Reencrypted route add", eventType: watch.Added, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "reencryptedtest", }, @@ -2177,7 +2178,7 @@ func TestHandleRoute(t *testing.T) { name: "Reencrypted route delete", eventType: watch.Deleted, route: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "reencryptedtest", }, @@ -2275,7 +2276,7 @@ func TestHandleRouteModifications(t *testing.T) { defer mockF5.close() testRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "mutatingroute", }, @@ -2344,7 +2345,7 @@ func TestF5RouterSuccessiveInstances(t *testing.T) { } testRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "xyzzy", Name: "testroute", }, @@ -2364,7 +2365,7 @@ func TestF5RouterSuccessiveInstances(t *testing.T) { } testPassthroughRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "quux", Name: "testpassthroughroute", }, @@ -2380,7 +2381,7 @@ func TestF5RouterSuccessiveInstances(t *testing.T) { } testHttpEndpoint := &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "xyzzy", Name: "testhttpendpoint", }, @@ -2391,7 +2392,7 @@ func TestF5RouterSuccessiveInstances(t *testing.T) { } testHttpsEndpoint := &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "quux", Name: "testhttpsendpoint", }, diff --git a/pkg/router/interfaces.go b/pkg/router/interfaces.go index b292589ff547..206b4cc3ee29 100644 --- a/pkg/router/interfaces.go +++ b/pkg/router/interfaces.go @@ -1,9 +1,9 @@ package router import ( + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" ) diff --git a/pkg/router/metrics/haproxy/haproxy.go b/pkg/router/metrics/haproxy/haproxy.go index bef6fcef35d0..8e868fd124d7 100644 --- a/pkg/router/metrics/haproxy/haproxy.go +++ b/pkg/router/metrics/haproxy/haproxy.go @@ -19,7 +19,8 @@ import ( "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) const ( diff --git a/pkg/router/metrics/metrics.go b/pkg/router/metrics/metrics.go index e741e1dc6b97..3273dc338525 100644 --- a/pkg/router/metrics/metrics.go +++ b/pkg/router/metrics/metrics.go @@ -4,7 +4,7 @@ import ( "net/http" "net/http/pprof" - "k8s.io/kubernetes/pkg/healthz" + "k8s.io/apiserver/pkg/server/healthz" "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" diff --git a/pkg/router/template/plugin.go b/pkg/router/template/plugin.go index a9f85d540535..3ab3c5e7f285 100644 --- a/pkg/router/template/plugin.go +++ b/pkg/router/template/plugin.go @@ -10,11 +10,11 @@ import ( "time" "github.com/golang/glog" + ktypes "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - ktypes "k8s.io/kubernetes/pkg/types" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" unidlingapi "github.com/openshift/origin/pkg/unidling/api" diff --git a/pkg/router/template/plugin_test.go b/pkg/router/template/plugin_test.go index 85997b06e8eb..fd65db730a2e 100644 --- a/pkg/router/template/plugin_test.go +++ b/pkg/router/template/plugin_test.go @@ -7,10 +7,10 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" routeapi "github.com/openshift/origin/pkg/route/api" "github.com/openshift/origin/pkg/router/controller" @@ -255,7 +255,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint add", eventType: watch.Added, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", //kapi.endpoints inherits the name of the service }, @@ -279,7 +279,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint mod", eventType: watch.Modified, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -303,7 +303,7 @@ func TestHandleEndpoints(t *testing.T) { name: "Endpoint delete", eventType: watch.Deleted, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -359,7 +359,7 @@ func TestHandleTCPEndpoints(t *testing.T) { name: "Endpoint add", eventType: watch.Added, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", //kapi.endpoints inherits the name of the service }, @@ -386,7 +386,7 @@ func TestHandleTCPEndpoints(t *testing.T) { name: "Endpoint mod", eventType: watch.Modified, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -413,7 +413,7 @@ func TestHandleTCPEndpoints(t *testing.T) { name: "Endpoint delete", eventType: watch.Deleted, endpoints: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "test", }, @@ -477,11 +477,11 @@ func TestHandleRoute(t *testing.T) { // here plugin := controller.NewUniqueHost(templatePlugin, controller.HostForRoute, false, rejections) - original := unversioned.Time{Time: time.Now()} + original := metav1.Time{Time: time.Now()} //add route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: original, Namespace: "foo", Name: "test", @@ -520,8 +520,8 @@ func TestHandleRoute(t *testing.T) { // attempt to add a second route with a newer time, verify it is ignored duplicateRoute := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: original.Add(time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: original.Add(time.Hour)}, Namespace: "foo", Name: "dupe", }, @@ -572,7 +572,7 @@ func TestHandleRoute(t *testing.T) { rejections.rejections = nil // add a second route with an older time, verify it takes effect - duplicateRoute.CreationTimestamp = unversioned.Time{Time: original.Add(-time.Hour)} + duplicateRoute.CreationTimestamp = metav1.Time{Time: original.Add(-time.Hour)} if err := plugin.HandleRoute(watch.Added, duplicateRoute); err != nil { t.Fatal("unexpected error") } @@ -646,11 +646,11 @@ func TestHandleRouteExtendedValidation(t *testing.T) { extendedValidatorPlugin := controller.NewExtendedValidator(templatePlugin, rejections) plugin := controller.NewUniqueHost(extendedValidatorPlugin, controller.HostForRoute, false, rejections) - original := unversioned.Time{Time: time.Now()} + original := metav1.Time{Time: time.Now()} //add route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: original, Namespace: "foo", Name: "test", @@ -999,7 +999,7 @@ func TestNamespaceScopingFromEmpty(t *testing.T) { //add route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}, Spec: routeapi.RouteSpec{ Host: "www.example.com", To: routeapi.RouteTargetReference{ diff --git a/pkg/router/template/router.go b/pkg/router/template/router.go index dd014159af22..74a027b45802 100644 --- a/pkg/router/template/router.go +++ b/pkg/router/template/router.go @@ -19,7 +19,7 @@ import ( "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" cmdutil "github.com/openshift/origin/pkg/cmd/util" routeapi "github.com/openshift/origin/pkg/route/api" diff --git a/pkg/router/template/router_test.go b/pkg/router/template/router_test.go index 3dd0847297af..0515a6ac961a 100644 --- a/pkg/router/template/router_test.go +++ b/pkg/router/template/router_test.go @@ -7,8 +7,8 @@ import ( "regexp" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/intstr" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" routeapi "github.com/openshift/origin/pkg/route/api" ) @@ -200,7 +200,7 @@ func TestDeleteEndpoints(t *testing.T) { func TestRouteKey(t *testing.T) { router := NewFakeTemplateRouter() route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, @@ -249,7 +249,7 @@ func TestRouteKey(t *testing.T) { startCount := len(router.state) for _, tc := range testCases { route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: tc.Namespace, Name: tc.Name, }, @@ -291,7 +291,7 @@ func TestCreateServiceAliasConfig(t *testing.T) { serviceWeight := int32(30) route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: "bar", }, @@ -339,7 +339,7 @@ func TestAddRoute(t *testing.T) { serviceName := "TestService" route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: "bar", }, @@ -384,7 +384,7 @@ func TestUpdateRoute(t *testing.T) { // Add a route that can be targeted for an update route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, @@ -459,7 +459,7 @@ func findCert(cert string, certs map[string]Certificate, isPrivateKey bool, t *t func TestRemoveRoute(t *testing.T) { router := NewFakeTemplateRouter() route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, @@ -468,7 +468,7 @@ func TestRemoveRoute(t *testing.T) { }, } route2 := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar2", }, @@ -637,7 +637,7 @@ func TestAddRouteEdgeTerminationInsecurePolicy(t *testing.T) { for _, tc := range testCases { route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: tc.Name, }, diff --git a/pkg/router/template/service_lookup.go b/pkg/router/template/service_lookup.go index d7ab9ab934e4..e68b251de112 100644 --- a/pkg/router/template/service_lookup.go +++ b/pkg/router/template/service_lookup.go @@ -3,13 +3,13 @@ package templaterouter import ( "time" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // ServiceLookup is an interface for fetching the service associated with the given endpoints @@ -46,7 +46,7 @@ func (c *serviceLWLookup) LookupService(endpoints *api.Endpoints) (*api.Service, if rawSvc, ok, err = c.store.Get(endpoints); err != nil { return nil, err } else if !ok { - return nil, errors.NewNotFound(unversioned.GroupResource{ + return nil, errors.NewNotFound(schema.GroupResource{ Group: api.GroupName, Resource: "Service", }, endpoints.Name) diff --git a/pkg/scheduler/admission/podnodeconstraints/admission.go b/pkg/scheduler/admission/podnodeconstraints/admission.go index cd984a8c5449..70edbc01f8a0 100644 --- a/pkg/scheduler/admission/podnodeconstraints/admission.go +++ b/pkg/scheduler/admission/podnodeconstraints/admission.go @@ -7,14 +7,13 @@ import ( "github.com/golang/glog" - admission "k8s.io/kubernetes/pkg/admission" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + admission "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/auth/authorizer" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/meta" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" @@ -24,7 +23,7 @@ import ( // kindsToIgnore is a list of kinds that contain a PodSpec that // we choose not to handle in this plugin -var kindsToIgnore = []unversioned.GroupKind{ +var kindsToIgnore = []schema.GroupKind{ extensions.Kind("DaemonSet"), } @@ -63,7 +62,7 @@ type podNodeConstraints struct { authorizer authorizer.Authorizer } -func shouldCheckResource(resource unversioned.GroupResource, kind unversioned.GroupKind) (bool, error) { +func shouldCheckResource(resource schema.GroupResource, kind schema.GroupKind) (bool, error) { expectedKind, shouldCheck := meta.HasPodSpec(resource) if !shouldCheck { return false, nil diff --git a/pkg/scheduler/admission/podnodeconstraints/admission_test.go b/pkg/scheduler/admission/podnodeconstraints/admission_test.go index bcc2edd858ab..b8990af9762f 100644 --- a/pkg/scheduler/admission/podnodeconstraints/admission_test.go +++ b/pkg/scheduler/admission/podnodeconstraints/admission_test.go @@ -5,14 +5,15 @@ import ( "fmt" "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/auth/authorizer" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/serviceaccount" _ "github.com/openshift/origin/pkg/api/install" @@ -24,12 +25,12 @@ import ( ) func TestPodNodeConstraints(t *testing.T) { - ns := kapi.NamespaceDefault + ns := metav1.NamespaceDefault tests := []struct { config *api.PodNodeConstraintsConfig resource runtime.Object - kind unversioned.GroupKind - groupresource unversioned.GroupResource + kind schema.GroupKind + groupresource schema.GroupResource userinfo user.Info reviewResponse *authorizationapi.SubjectAccessReviewResponse expectedResource string @@ -119,7 +120,7 @@ func TestPodNodeConstraints(t *testing.T) { } func TestPodNodeConstraintsPodUpdate(t *testing.T) { - ns := kapi.NamespaceDefault + ns := metav1.NamespaceDefault var expectedError error errPrefix := "PodUpdate" prc := NewPodNodeConstraints(testConfig()) @@ -135,7 +136,7 @@ func TestPodNodeConstraintsPodUpdate(t *testing.T) { } func TestPodNodeConstraintsNonHandledResources(t *testing.T) { - ns := kapi.NamespaceDefault + ns := metav1.NamespaceDefault errPrefix := "ResourceQuotaTest" var expectedError error prc := NewPodNodeConstraints(testConfig()) @@ -151,7 +152,7 @@ func TestPodNodeConstraintsNonHandledResources(t *testing.T) { } func TestPodNodeConstraintsResources(t *testing.T) { - ns := kapi.NamespaceDefault + ns := metav1.NamespaceDefault testconfigs := []struct { config *api.PodNodeConstraintsConfig userinfo user.Info @@ -165,8 +166,8 @@ func TestPodNodeConstraintsResources(t *testing.T) { } testresources := []struct { resource func(bool) runtime.Object - kind unversioned.GroupKind - groupresource unversioned.GroupResource + kind schema.GroupKind + groupresource schema.GroupResource prefix string }{ { diff --git a/pkg/scheduler/admission/podnodeconstraints/api/install/install.go b/pkg/scheduler/admission/podnodeconstraints/api/install/install.go index a3b6b616e3e4..63c4ef7e2aaa 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/install/install.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/install/install.go @@ -3,8 +3,8 @@ package install import ( "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/scheduler/admission/podnodeconstraints/api" @@ -16,7 +16,7 @@ const importPrefix = "github.com/openshift/origin/pkg/scheduler/admission/podnod var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.SchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.SchemeGroupVersion} func init() { if err := enableVersions(availableVersions); err != nil { @@ -28,12 +28,12 @@ func init() { // group. // We can combine registered.RegisterVersions, registered.EnableVersions and // registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToScheme(configapi.Scheme) // add the enabled external versions to Scheme diff --git a/pkg/scheduler/admission/podnodeconstraints/api/register.go b/pkg/scheduler/admission/podnodeconstraints/api/register.go index 839c6fb8cd2d..c8a4a084af3d 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/register.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/register.go @@ -1,20 +1,20 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal} // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -30,4 +30,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *PodNodeConstraintsConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *PodNodeConstraintsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/scheduler/admission/podnodeconstraints/api/types.go b/pkg/scheduler/admission/podnodeconstraints/api/types.go index 5d69ca176e84..a765c702a35f 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/types.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/types.go @@ -1,7 +1,7 @@ package api import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // PodNodeConstraintsConfig is the configuration for the pod node name @@ -11,7 +11,7 @@ import ( // setting NodeSelectors whose labels appear in the blacklist field // "NodeSelectorLabelBlacklist" type PodNodeConstraintsConfig struct { - unversioned.TypeMeta + metav1.TypeMeta // NodeSelectorLabelBlacklist specifies a list of labels which cannot be set by entities without the "pods/binding" permission NodeSelectorLabelBlacklist []string } diff --git a/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults.go b/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults.go index a9f0f5f0ae86..ef4f93000302 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults.go @@ -1,14 +1,14 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" ) func SetDefaults_PodNodeConstraintsConfig(obj *PodNodeConstraintsConfig) { if obj.NodeSelectorLabelBlacklist == nil { obj.NodeSelectorLabelBlacklist = []string{ - unversioned.LabelHostname, + metav1.LabelHostname, } } } diff --git a/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults_test.go b/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults_test.go index 85775473a1af..84a8a4000b1d 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults_test.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/v1/defaults_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" configapi "github.com/openshift/origin/pkg/cmd/server/api" v1 "github.com/openshift/origin/pkg/cmd/server/api/v1" diff --git a/pkg/scheduler/admission/podnodeconstraints/api/v1/register.go b/pkg/scheduler/admission/podnodeconstraints/api/v1/register.go index 0f20051ef075..2cfddf904495 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/v1/register.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/v1/register.go @@ -1,12 +1,12 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" ) // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = unversioned.GroupVersion{Group: "", Version: "v1"} +var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addDefaultingFuncs) @@ -20,4 +20,4 @@ func addKnownTypes(scheme *runtime.Scheme) error { return nil } -func (obj *PodNodeConstraintsConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *PodNodeConstraintsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/scheduler/admission/podnodeconstraints/api/v1/types.go b/pkg/scheduler/admission/podnodeconstraints/api/v1/types.go index 57da37c46c3a..95b115fce964 100644 --- a/pkg/scheduler/admission/podnodeconstraints/api/v1/types.go +++ b/pkg/scheduler/admission/podnodeconstraints/api/v1/types.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // PodNodeConstraintsConfig is the configuration for the pod node name @@ -11,7 +11,7 @@ import ( // setting NodeSelectors whose labels appear in the blacklist field // "NodeSelectorLabelBlacklist" type PodNodeConstraintsConfig struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // NodeSelectorLabelBlacklist specifies a list of labels which cannot be set by entities without the "pods/binding" permission NodeSelectorLabelBlacklist []string `json:"nodeSelectorLabelBlacklist",description:"list of labels which cannot be set by entities without the 'pods/binding' permission"` diff --git a/pkg/sdn/api/fields.go b/pkg/sdn/api/fields.go index 587f47c42379..16e44a0d5195 100644 --- a/pkg/sdn/api/fields.go +++ b/pkg/sdn/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // ClusterNetworkToSelectableFields returns a label set that represents the object func ClusterNetworkToSelectableFields(network *ClusterNetwork) fields.Set { diff --git a/pkg/sdn/api/install/apigroup.go b/pkg/sdn/api/install/apigroup.go index 09ef7cf3d655..5d5d26bf0f80 100644 --- a/pkg/sdn/api/install/apigroup.go +++ b/pkg/sdn/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/v1" diff --git a/pkg/sdn/api/install/install.go b/pkg/sdn/api/install/install.go index af785b20eff2..1ab6053a6089 100644 --- a/pkg/sdn/api/install/install.go +++ b/pkg/sdn/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/sdn/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("ClusterNetwork", "HostSubnet", "NetNamespace") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/sdn/api/register.go b/pkg/sdn/api/register.go index a53a8744610c..791db4a22415 100644 --- a/pkg/sdn/api/register.go +++ b/pkg/sdn/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +25,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,7 +35,7 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -70,10 +70,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/sdn/api/types.go b/pkg/sdn/api/types.go index 0ba7e2c59da0..5b71bdba74b6 100644 --- a/pkg/sdn/api/types.go +++ b/pkg/sdn/api/types.go @@ -1,8 +1,7 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) const ( @@ -13,8 +12,8 @@ const ( // +genclient=true type ClusterNetwork struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Network string HostSubnetLength uint32 @@ -23,15 +22,15 @@ type ClusterNetwork struct { } type ClusterNetworkList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []ClusterNetwork } // HostSubnet encapsulates the inputs needed to define the container subnet network on a node type HostSubnet struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // host may just be an IP address, resolvable hostname or a complete DNS Host string @@ -41,15 +40,15 @@ type HostSubnet struct { // HostSubnetList is a collection of HostSubnets type HostSubnetList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []HostSubnet } // NetNamespace holds the network id against its name type NetNamespace struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta NetName string NetID uint32 @@ -57,8 +56,8 @@ type NetNamespace struct { // NetNamespaceList is a collection of NetNamespaces type NetNamespaceList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []NetNamespace } @@ -89,15 +88,15 @@ type EgressNetworkPolicySpec struct { // EgressNetworkPolicy describes the current egress network policy type EgressNetworkPolicy struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Spec EgressNetworkPolicySpec } // EgressNetworkPolicyList is a collection of EgressNetworkPolicy type EgressNetworkPolicyList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []EgressNetworkPolicy } diff --git a/pkg/sdn/api/v1/conversion.go b/pkg/sdn/api/v1/conversion.go index ed9c71b0d913..f90cf77c7a37 100644 --- a/pkg/sdn/api/v1/conversion.go +++ b/pkg/sdn/api/v1/conversion.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/sdn/api" diff --git a/pkg/sdn/api/v1/register.go b/pkg/sdn/api/v1/register.go index 62a0f42beb3c..9e5910fe4116 100644 --- a/pkg/sdn/api/v1/register.go +++ b/pkg/sdn/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -38,10 +38,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/sdn/api/v1/types.go b/pkg/sdn/api/v1/types.go index bf4ac99e39fd..1f90182ede0e 100644 --- a/pkg/sdn/api/v1/types.go +++ b/pkg/sdn/api/v1/types.go @@ -1,8 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - kapi "k8s.io/kubernetes/pkg/api/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) const ( @@ -15,9 +14,9 @@ const ( // named "default", which is created by the SDN network plugin based on the master configuration // when the cluster is brought up for the first time. type ClusterNetwork struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Network is a CIDR string specifying the global overlay network's L3 space Network string `json:"network" protobuf:"bytes,2,opt,name=network"` @@ -31,9 +30,9 @@ type ClusterNetwork struct { // ClusterNetworkList is a collection of ClusterNetworks type ClusterNetworkList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of cluster networks Items []ClusterNetwork `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -41,9 +40,9 @@ type ClusterNetworkList struct { // HostSubnet describes the container subnet network on a node. The HostSubnet object must have the // same name as the Node object it corresponds to. type HostSubnet struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Host is the name of the node. (This is the same as the object's name, but both fields must be set.) Host string `json:"host" protobuf:"bytes,2,opt,name=host"` @@ -55,9 +54,9 @@ type HostSubnet struct { // HostSubnetList is a collection of HostSubnets type HostSubnetList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of host subnets Items []HostSubnet `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -66,9 +65,9 @@ type HostSubnetList struct { // plugin, every Namespace will have a corresponding NetNamespace object with the same name. // (When using redhat/openshift-ovs-subnet, NetNamespaces are not used.) type NetNamespace struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // NetName is the name of the network namespace. (This is the same as the object's name, but both fields must be set.) NetName string `json:"netname" protobuf:"bytes,2,opt,name=netname"` @@ -78,9 +77,9 @@ type NetNamespace struct { // NetNamespaceList is a collection of NetNamespaces type NetNamespaceList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of net namespaces Items []NetNamespace `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -121,9 +120,9 @@ type EgressNetworkPolicySpec struct { // namespace's EgressNetworkPolicy, in order. If no rule matches (or no EgressNetworkPolicy // is present) then the traffic will be allowed by default. type EgressNetworkPolicy struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for EgressNetworkPolicy - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec is the specification of the current egress network policy Spec EgressNetworkPolicySpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -131,9 +130,9 @@ type EgressNetworkPolicy struct { // EgressNetworkPolicyList is a collection of EgressNetworkPolicy type EgressNetworkPolicyList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // metadata for EgressNetworkPolicyList - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is the list of policies Items []EgressNetworkPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/pkg/sdn/api/v1/zz_generated.conversion.go b/pkg/sdn/api/v1/zz_generated.conversion.go index 60922b9f1aee..63e6df0ce1b2 100644 --- a/pkg/sdn/api/v1/zz_generated.conversion.go +++ b/pkg/sdn/api/v1/zz_generated.conversion.go @@ -5,11 +5,12 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/sdn/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { diff --git a/pkg/sdn/api/v1/zz_generated.deepcopy.go b/pkg/sdn/api/v1/zz_generated.deepcopy.go index 09461d997764..91b6800af6ef 100644 --- a/pkg/sdn/api/v1/zz_generated.deepcopy.go +++ b/pkg/sdn/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/sdn/api/validation/validation.go b/pkg/sdn/api/validation/validation.go index 6eecfcee0547..c90d8bccc980 100644 --- a/pkg/sdn/api/validation/validation.go +++ b/pkg/sdn/api/validation/validation.go @@ -4,10 +4,10 @@ import ( "fmt" "net" + "k8s.io/apimachinery/pkg/api/validation/path" + utilvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - utilvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" sdnapi "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/util/netutils" diff --git a/pkg/sdn/api/validation/validation_test.go b/pkg/sdn/api/validation/validation_test.go index 45e2caaddeff..ea47d764ee49 100644 --- a/pkg/sdn/api/validation/validation_test.go +++ b/pkg/sdn/api/validation/validation_test.go @@ -3,7 +3,7 @@ package validation import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/sdn/api" ) @@ -19,7 +19,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Good one", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.0.0/16", HostSubnetLength: 8, ServiceNetwork: "172.30.0.0/16", @@ -29,7 +29,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Bad network", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.0.0.0/16", HostSubnetLength: 8, ServiceNetwork: "172.30.0.0/16", @@ -49,7 +49,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Invalid subnet length", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.30.0/24", HostSubnetLength: 16, ServiceNetwork: "172.30.0.0/16", @@ -59,7 +59,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Bad service network", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.0.0/16", HostSubnetLength: 8, ServiceNetwork: "1172.30.0.0/16", @@ -79,7 +79,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Service network overlaps with cluster network", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.0.0/16", HostSubnetLength: 8, ServiceNetwork: "10.20.1.0/24", @@ -89,7 +89,7 @@ func TestValidateClusterNetwork(t *testing.T) { { name: "Cluster network overlaps with service network", cn: &api.ClusterNetwork{ - ObjectMeta: kapi.ObjectMeta{Name: "any"}, + ObjectMeta: metav1.ObjectMeta{Name: "any"}, Network: "10.20.0.0/16", HostSubnetLength: 8, ServiceNetwork: "10.0.0.0/8", @@ -116,7 +116,7 @@ func TestValidateHostSubnet(t *testing.T) { { name: "Good one", hs: &api.HostSubnet{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "abc.def.com", }, Host: "abc.def.com", @@ -128,7 +128,7 @@ func TestValidateHostSubnet(t *testing.T) { { name: "Malformed HostIP", hs: &api.HostSubnet{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "abc.def.com", }, Host: "abc.def.com", @@ -140,7 +140,7 @@ func TestValidateHostSubnet(t *testing.T) { { name: "Malformed subnet", hs: &api.HostSubnet{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "abc.def.com", }, Host: "abc.def.com", @@ -181,7 +181,7 @@ func TestValidateEgressNetworkPolicy(t *testing.T) { { name: "Empty", fw: &api.EgressNetworkPolicy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Namespace: "testing", }, @@ -194,7 +194,7 @@ func TestValidateEgressNetworkPolicy(t *testing.T) { { name: "Good one", fw: &api.EgressNetworkPolicy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Namespace: "testing", }, @@ -232,7 +232,7 @@ func TestValidateEgressNetworkPolicy(t *testing.T) { { name: "Bad policy", fw: &api.EgressNetworkPolicy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Namespace: "testing", }, @@ -258,7 +258,7 @@ func TestValidateEgressNetworkPolicy(t *testing.T) { { name: "Bad destination", fw: &api.EgressNetworkPolicy{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Namespace: "testing", }, diff --git a/pkg/sdn/api/zz_generated.deepcopy.go b/pkg/sdn/api/zz_generated.deepcopy.go index a49301e3bb89..9d97849abd90 100644 --- a/pkg/sdn/api/zz_generated.deepcopy.go +++ b/pkg/sdn/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/sdn/client/clientset_generated/internalclientset/clientset.go b/pkg/sdn/client/clientset_generated/internalclientset/clientset.go index 05b4e4ba2534..3cc7f1893bc7 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/sdn/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/sdn/client/clientset_generated/internalclientset/fake/clientset_generated.go index ab88771b5b80..922499773c2c 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/sdn/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/clusternetwork.go b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/clusternetwork.go index 7b2b63acf6a1..8dae4163c205 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/clusternetwork.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/clusternetwork.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/sdn/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ClusterNetworksGetter has a method to return a ClusterNetworkInterface. diff --git a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index 0101184c1d4a..0512d87cdc5e 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { ClusterNetworksGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_clusternetwork.go b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_clusternetwork.go index 7e72a67fef41..c452f7cc3a54 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_clusternetwork.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_clusternetwork.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/sdn/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeClusterNetworks implements ClusterNetworkInterface @@ -15,7 +15,7 @@ type FakeClusterNetworks struct { ns string } -var clusternetworksResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusternetworks"} +var clusternetworksResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusternetworks"} func (c *FakeClusterNetworks) Create(clusterNetwork *api.ClusterNetwork) (result *api.ClusterNetwork, err error) { obj, err := c.Fake. diff --git a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index 3b8eccfd9e7a..175749480b4e 100644 --- a/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/sdn/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/clientset.go b/pkg/sdn/client/clientset_generated/release_v1_5/clientset.go index b517326ab1e0..45c3851de2cb 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/sdn/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 861fda130ce5..27c9e03c4d63 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/sdn/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/clusternetwork.go b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/clusternetwork.go index b3f7921c791f..bbeed6c407af 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/clusternetwork.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/clusternetwork.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/sdn/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // ClusterNetworksGetter has a method to return a ClusterNetworkInterface. diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index cbeeef49bb56..662f521ed43e 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { ClusterNetworksGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_clusternetwork.go b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_clusternetwork.go index e893b0fd51f8..f8daddf72a04 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_clusternetwork.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_clusternetwork.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/sdn/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeClusterNetworks implements ClusterNetworkInterface @@ -16,7 +16,7 @@ type FakeClusterNetworks struct { ns string } -var clusternetworksResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "clusternetworks"} +var clusternetworksResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "clusternetworks"} func (c *FakeClusterNetworks) Create(clusterNetwork *v1.ClusterNetwork) (result *v1.ClusterNetwork, err error) { obj, err := c.Fake. diff --git a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 6f30df2bc724..5d6e8ca3eece 100644 --- a/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/sdn/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/sdn/plugin/cniserver/cniserver.go b/pkg/sdn/plugin/cniserver/cniserver.go index 49ff88537ff4..482ccefaf09f 100644 --- a/pkg/sdn/plugin/cniserver/cniserver.go +++ b/pkg/sdn/plugin/cniserver/cniserver.go @@ -13,8 +13,8 @@ import ( "github.com/golang/glog" "github.com/gorilla/mux" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - utilwait "k8s.io/kubernetes/pkg/util/wait" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + utilwait "k8s.io/apimachinery/pkg/util/wait" ) // *** The CNIServer is PRIVATE API between OpenShift SDN components and may be diff --git a/pkg/sdn/plugin/cniserver/cniserver_test.go b/pkg/sdn/plugin/cniserver/cniserver_test.go index 16d46486ba10..97144150be0f 100644 --- a/pkg/sdn/plugin/cniserver/cniserver_test.go +++ b/pkg/sdn/plugin/cniserver/cniserver_test.go @@ -13,7 +13,7 @@ import ( "strings" "testing" - utiltesting "k8s.io/kubernetes/pkg/util/testing" + utiltesting "k8s.io/client-go/util/testing" cnitypes "github.com/containernetworking/cni/pkg/types" ) diff --git a/pkg/sdn/plugin/common.go b/pkg/sdn/plugin/common.go index 478db30842a3..67dacba49ff1 100644 --- a/pkg/sdn/plugin/common.go +++ b/pkg/sdn/plugin/common.go @@ -12,10 +12,11 @@ import ( osapi "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/util/netutils" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + kcache "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/fields" kcontainer "k8s.io/kubernetes/pkg/kubelet/container" ) @@ -86,7 +87,7 @@ func (ni *NetworkInfo) validateNodeIP(nodeIP string) error { } func getNetworkInfo(osClient *osclient.Client) (*NetworkInfo, error) { - cn, err := osClient.ClusterNetwork().Get(osapi.ClusterNetworkDefault) + cn, err := osClient.ClusterNetwork().Get(osapi.ClusterNetworkDefault, metav1.GetOptions{}) if err != nil { return nil, err } @@ -150,7 +151,7 @@ func RunEventQueue(client kcache.Getter, resourceName ResourceName, process Proc glog.Fatalf("Unknown resource %s during initialization of event queue", resourceName) } - eventQueue := newEventQueue(client, resourceName, expectedType, kapi.NamespaceAll) + eventQueue := newEventQueue(client, resourceName, expectedType, metav1.NamespaceAll) for { eventQueue.Pop(process, expectedType) } diff --git a/pkg/sdn/plugin/controller.go b/pkg/sdn/plugin/controller.go index 5a8f3976bc8b..c95bfb7b989c 100644 --- a/pkg/sdn/plugin/controller.go +++ b/pkg/sdn/plugin/controller.go @@ -14,13 +14,14 @@ import ( "github.com/openshift/origin/pkg/util/ipcmd" "github.com/openshift/origin/pkg/util/netutils" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" utildbus "k8s.io/kubernetes/pkg/util/dbus" kexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/iptables" "k8s.io/kubernetes/pkg/util/sysctl" - utilwait "k8s.io/kubernetes/pkg/util/wait" ) func (plugin *OsdnNode) getLocalSubnet() (string, error) { @@ -32,7 +33,7 @@ func (plugin *OsdnNode) getLocalSubnet() (string, error) { } err := utilwait.ExponentialBackoff(backoff, func() (bool, error) { var err error - subnet, err = plugin.osClient.HostSubnets().Get(plugin.hostName) + subnet, err = plugin.osClient.HostSubnets().Get(plugin.hostName, metav1.GetOptions{}) if err == nil { return true, nil } else if kapierrors.IsNotFound(err) { diff --git a/pkg/sdn/plugin/dns.go b/pkg/sdn/plugin/dns.go index 11647c040719..3f2265e6df08 100644 --- a/pkg/sdn/plugin/dns.go +++ b/pkg/sdn/plugin/dns.go @@ -10,7 +10,7 @@ import ( "github.com/golang/glog" - kerrors "k8s.io/kubernetes/pkg/util/errors" + kerrors "k8s.io/apimachinery/pkg/util/errors" kexec "k8s.io/kubernetes/pkg/util/exec" ) diff --git a/pkg/sdn/plugin/egress_dns.go b/pkg/sdn/plugin/egress_dns.go index 9d0b603003f9..de441608d5f8 100644 --- a/pkg/sdn/plugin/egress_dns.go +++ b/pkg/sdn/plugin/egress_dns.go @@ -9,7 +9,7 @@ import ( osapi "github.com/openshift/origin/pkg/sdn/api" - ktypes "k8s.io/kubernetes/pkg/types" + ktypes "k8s.io/apimachinery/pkg/types" kexec "k8s.io/kubernetes/pkg/util/exec" ) diff --git a/pkg/sdn/plugin/egress_network_policy.go b/pkg/sdn/plugin/egress_network_policy.go index a40e56d29c48..54958ffc2d0b 100644 --- a/pkg/sdn/plugin/egress_network_policy.go +++ b/pkg/sdn/plugin/egress_network_policy.go @@ -7,13 +7,13 @@ import ( osapi "github.com/openshift/origin/pkg/sdn/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - utilwait "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" ) func (plugin *OsdnNode) SetupEgressNetworkPolicy() error { - policies, err := plugin.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policies, err := plugin.osClient.EgressNetworkPolicies(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("could not get EgressNetworkPolicies: %s", err) } diff --git a/pkg/sdn/plugin/eventqueue.go b/pkg/sdn/plugin/eventqueue.go index 31394869d73c..a136624bfafd 100644 --- a/pkg/sdn/plugin/eventqueue.go +++ b/pkg/sdn/plugin/eventqueue.go @@ -4,8 +4,8 @@ import ( "fmt" "reflect" - "k8s.io/kubernetes/pkg/client/cache" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/cache" ) // EventQueue is an enhanced DeltaFIFO that provides reliable Deleted deltas diff --git a/pkg/sdn/plugin/eventqueue_test.go b/pkg/sdn/plugin/eventqueue_test.go index 7ab12fc4609a..32e9d0965a02 100644 --- a/pkg/sdn/plugin/eventqueue_test.go +++ b/pkg/sdn/plugin/eventqueue_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/cache" ) func testKeyFunc(obj interface{}) (string, error) { @@ -238,7 +238,7 @@ func TestEventQueueDeltaCompressor(t *testing.T) { func TestEventQueueDeltaCompressorDeletedFinalStateUnknown(t *testing.T) { deletedObj := cache.DeletedFinalStateUnknown{ Key: "namespace1/obj1", - Obj: &api.ObjectMeta{Name: "obj1", Namespace: "namespace1"}, + Obj: &metav1.ObjectMeta{Name: "obj1", Namespace: "namespace1"}, } initial := cache.Deltas{ { @@ -270,7 +270,7 @@ func TestEventQueueDeltaCompressorDeletedFinalStateUnknown2(t *testing.T) { Type: cache.Deleted, Object: cache.DeletedFinalStateUnknown{ Key: "namespace1/obj1", - Obj: &api.ObjectMeta{Name: "obj1", Namespace: "namespace1"}, + Obj: &metav1.ObjectMeta{Name: "obj1", Namespace: "namespace1"}, }, }, } @@ -602,8 +602,8 @@ func TestEventQueueUncompressed(t *testing.T) { func TestEventQueueDeletedFinalStateUnknown(t *testing.T) { queue := NewEventQueue(DeletionHandlingMetaNamespaceKeyFunc) - obj1 := &api.ObjectMeta{Name: "obj1", Namespace: "namespace1"} - obj2 := &api.ObjectMeta{Name: "obj2", Namespace: "namespace1"} + obj1 := &metav1.ObjectMeta{Name: "obj1", Namespace: "namespace1"} + obj2 := &metav1.ObjectMeta{Name: "obj2", Namespace: "namespace1"} // Make sure objects are in knownObjects but not in the delta queue, // to ensure we get DeletedFinalStateUnknown delta objects @@ -642,18 +642,18 @@ func TestEventQueueDeletedFinalStateUnknown(t *testing.T) { // This should create two DeletedFinalStateUnknown objects queue.Replace([]interface{}{}, "123") - // Now test that we only get api.ObjectMeta objects since we passed that + // Now test that we only get metav1.ObjectMeta objects since we passed that // as the expected type called = false if _, err := queue.Pop(func(delta cache.Delta) error { called = true - if _, ok := delta.Object.(*api.ObjectMeta); !ok { + if _, ok := delta.Object.(*metav1.ObjectMeta); !ok { // Capture error that Pop() logs the error but doesn't return processErr = fmt.Errorf("unexpected item type %T", delta.Object) return processErr } return nil - }, &api.ObjectMeta{}); err != nil { + }, &metav1.ObjectMeta{}); err != nil { t.Fatalf(fmt.Sprintf("%v", err)) } if !called { diff --git a/pkg/sdn/plugin/master.go b/pkg/sdn/plugin/master.go index 73df57c690d1..1d75ae4c0663 100644 --- a/pkg/sdn/plugin/master.go +++ b/pkg/sdn/plugin/master.go @@ -11,21 +11,20 @@ import ( osapi "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/util/netutils" - kapi "k8s.io/kubernetes/pkg/api" - kapiunversioned "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kerrors "k8s.io/kubernetes/pkg/util/errors" ) type OsdnMaster struct { - kClient *kclientset.Clientset + kClient kclientset.Interface osClient *osclient.Client networkInfo *NetworkInfo subnetAllocator *netutils.SubnetAllocator vnids *masterVNIDMap } -func StartMaster(networkConfig osconfigapi.MasterNetworkConfig, osClient *osclient.Client, kClient *kclientset.Clientset) error { +func StartMaster(networkConfig osconfigapi.MasterNetworkConfig, osClient *osclient.Client, kClient kclientset.Interface) error { if !osapi.IsOpenShiftNetworkPlugin(networkConfig.NetworkPluginName) { return nil } @@ -45,7 +44,7 @@ func StartMaster(networkConfig osconfigapi.MasterNetworkConfig, osClient *osclie createConfig := false updateConfig := false - cn, err := master.osClient.ClusterNetwork().Get(osapi.ClusterNetworkDefault) + cn, err := master.osClient.ClusterNetwork().Get(osapi.ClusterNetworkDefault, metav1.GetOptions{}) if err == nil { if master.networkInfo.ClusterNetwork.String() != cn.Network || networkConfig.HostSubnetLength != cn.HostSubnetLength || @@ -55,8 +54,8 @@ func StartMaster(networkConfig osconfigapi.MasterNetworkConfig, osClient *osclie } } else { cn = &osapi.ClusterNetwork{ - TypeMeta: kapiunversioned.TypeMeta{Kind: "ClusterNetwork"}, - ObjectMeta: kapi.ObjectMeta{Name: osapi.ClusterNetworkDefault}, + TypeMeta: metav1.TypeMeta{Kind: "ClusterNetwork"}, + ObjectMeta: metav1.ObjectMeta{Name: osapi.ClusterNetworkDefault}, } createConfig = true } @@ -134,7 +133,7 @@ func (master *OsdnMaster) validateNetworkConfig() error { } // Ensure each host subnet is within the cluster network - subnets, err := master.osClient.HostSubnets().List(kapi.ListOptions{}) + subnets, err := master.osClient.HostSubnets().List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("error in initializing/fetching subnets: %v", err) } @@ -150,7 +149,7 @@ func (master *OsdnMaster) validateNetworkConfig() error { } // Ensure each service is within the services network - services, err := master.kClient.Core().Services(kapi.NamespaceAll).List(kapi.ListOptions{}) + services, err := master.kClient.Core().Services(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/sdn/plugin/multitenant.go b/pkg/sdn/plugin/multitenant.go index 22f50207d6ac..0820f9831f9f 100644 --- a/pkg/sdn/plugin/multitenant.go +++ b/pkg/sdn/plugin/multitenant.go @@ -5,6 +5,7 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" osapi "github.com/openshift/origin/pkg/sdn/api" @@ -58,7 +59,7 @@ func (mp *multiTenantPlugin) updatePodNetwork(namespace string, oldNetID, netID if err != nil { glog.Errorf("Could not get list of local pods in namespace %q: %v", namespace, err) } - services, err := mp.node.kClient.Core().Services(namespace).List(kapi.ListOptions{}) + services, err := mp.node.kClient.Core().Services(namespace).List(metav1.ListOptions{}) if err != nil { glog.Errorf("Could not get list of services in namespace %q: %v", namespace, err) services = &kapi.ServiceList{} diff --git a/pkg/sdn/plugin/netid/allocator_test.go b/pkg/sdn/plugin/netid/allocator_test.go index 6b28ca33292d..07f44094cef5 100644 --- a/pkg/sdn/plugin/netid/allocator_test.go +++ b/pkg/sdn/plugin/netid/allocator_test.go @@ -4,7 +4,7 @@ import ( "strconv" "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) func TestAllocate(t *testing.T) { diff --git a/pkg/sdn/plugin/networkpolicy.go b/pkg/sdn/plugin/networkpolicy.go index a06f58074160..a91271f26c63 100644 --- a/pkg/sdn/plugin/networkpolicy.go +++ b/pkg/sdn/plugin/networkpolicy.go @@ -10,15 +10,15 @@ import ( "github.com/golang/glog" + kapierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + ktypes "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/intstr" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/labels" - ktypes "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/intstr" - utilwait "k8s.io/kubernetes/pkg/util/wait" osapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -99,7 +99,7 @@ func (np *networkPolicyPlugin) initNamespaces() error { np.lock.Lock() defer np.lock.Unlock() - namespaces, err := np.node.kClient.Namespaces().List(kapi.ListOptions{}) + namespaces, err := np.node.kClient.Core().Namespaces().List(metav1.ListOptions{}) if err != nil { return err } @@ -117,7 +117,7 @@ func (np *networkPolicyPlugin) initNamespaces() error { } } - policies, err := np.node.kClient.Extensions().NetworkPolicies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policies, err := np.node.kClient.Extensions().NetworkPolicies(kapi.NamespaceAll).List(metav1.ListOptions{}) if err != nil { if kapierrs.IsForbidden(err) { glog.Errorf("Unable to query NetworkPolicies (%v) - please ensure your nodes have access to view NetworkPolicy (eg, 'oadm policy reconcile-cluster-roles')", err) @@ -247,7 +247,7 @@ func (np *networkPolicyPlugin) UnrefVNID(vnid uint32) { // because it's possible another thread will already have cancelled the watch // (and changed the npns fields) before this function runs. func (np *networkPolicyPlugin) watchPods(npns *npNamespace, pods map[ktypes.UID]kapi.Pod, stopPodWatch chan struct{}) { - RunNamespacedPodEventQueue(np.node.kClient.CoreClient.RESTClient(), npns.name, stopPodWatch, func(delta cache.Delta) error { + RunNamespacedPodEventQueue(np.node.kClient.Core().RESTClient(), npns.name, stopPodWatch, func(delta cache.Delta) error { pod := delta.Object.(*kapi.Pod) glog.V(5).Infof("Watch %s event for Pod %s/%s", delta.Type, pod.Namespace, pod.Name) @@ -328,9 +328,9 @@ func (np *networkPolicyPlugin) updatePodWatch(npns *npNamespace) { } } -func (np *networkPolicyPlugin) selectNamespaces(lsel *unversioned.LabelSelector) []uint32 { +func (np *networkPolicyPlugin) selectNamespaces(lsel *metav1.LabelSelector) []uint32 { vnids := []uint32{} - sel, err := unversioned.LabelSelectorAsSelector(lsel) + sel, err := metav1.LabelSelectorAsSelector(lsel) if err != nil { // Shouldn't happen glog.Errorf("ValidateNetworkPolicy() failure! Invalid NamespaceSelector: %v", err) @@ -346,9 +346,9 @@ func (np *networkPolicyPlugin) selectNamespaces(lsel *unversioned.LabelSelector) return vnids } -func (np *networkPolicyPlugin) selectPods(npns *npNamespace, lsel *unversioned.LabelSelector) []string { +func (np *networkPolicyPlugin) selectPods(npns *npNamespace, lsel *metav1.LabelSelector) []string { ips := []string{} - sel, err := unversioned.LabelSelectorAsSelector(lsel) + sel, err := metav1.LabelSelectorAsSelector(lsel) if err != nil { // Shouldn't happen glog.Errorf("ValidateNetworkPolicy() failure! Invalid PodSelector: %v", err) @@ -464,7 +464,7 @@ func (np *networkPolicyPlugin) updateNetworkPolicy(npns *npNamespace, policy *ex } func (np *networkPolicyPlugin) watchNetworkPolicies() { - RunEventQueue(np.node.kClient.ExtensionsClient.RESTClient(), NetworkPolicies, func(delta cache.Delta) error { + RunEventQueue(np.node.kClient.Extensions().RESTClient(), NetworkPolicies, func(delta cache.Delta) error { policy := delta.Object.(*extensions.NetworkPolicy) glog.V(5).Infof("Watch %s event for NetworkPolicy %s/%s", delta.Type, policy.Namespace, policy.Name) @@ -531,7 +531,7 @@ func namespaceIsIsolated(ns *kapi.Namespace) bool { } func (np *networkPolicyPlugin) watchNamespaces() { - RunEventQueue(np.node.kClient.CoreClient.RESTClient(), Namespaces, func(delta cache.Delta) error { + RunEventQueue(np.node.kClient.Core().RESTClient(), Namespaces, func(delta cache.Delta) error { ns := delta.Object.(*kapi.Namespace) glog.V(5).Infof("Watch %s event for Namespace %q", delta.Type, ns.Name) diff --git a/pkg/sdn/plugin/node.go b/pkg/sdn/plugin/node.go index 3be702a2b679..a630429a0b6c 100644 --- a/pkg/sdn/plugin/node.go +++ b/pkg/sdn/plugin/node.go @@ -20,15 +20,16 @@ import ( docker "github.com/fsouza/go-dockerclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + kubeutilnet "k8s.io/apimachinery/pkg/util/net" + kwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/fields" knetwork "k8s.io/kubernetes/pkg/kubelet/network" - "k8s.io/kubernetes/pkg/labels" kexec "k8s.io/kubernetes/pkg/util/exec" - kubeutilnet "k8s.io/kubernetes/pkg/util/net" - kwait "k8s.io/kubernetes/pkg/util/wait" ) type osdnPolicy interface { @@ -49,7 +50,7 @@ type osdnPolicy interface { type OsdnNode struct { policy osdnPolicy - kClient *kclientset.Clientset + kClient kclientset.Interface osClient *osclient.Client oc *ovsController networkInfo *NetworkInfo @@ -74,7 +75,7 @@ type OsdnNode struct { } // Called by higher layers to create the plugin SDN node instance -func NewNodePlugin(pluginName string, osClient *osclient.Client, kClient *kclientset.Clientset, hostname string, selfIP string, iptablesSyncPeriod time.Duration, mtu uint32) (*OsdnNode, error) { +func NewNodePlugin(pluginName string, osClient *osclient.Client, kClient kclientset.Interface, hostname string, selfIP string, iptablesSyncPeriod time.Duration, mtu uint32) (*OsdnNode, error) { var policy osdnPolicy var pluginId int var minOvsVersion string @@ -259,7 +260,7 @@ func (node *OsdnNode) Start() error { if networkChanged { var pods []kapi.Pod - pods, err = node.GetLocalPods(kapi.NamespaceAll) + pods, err = node.GetLocalPods(metav1.NamespaceAll) if err != nil { return err } @@ -300,9 +301,9 @@ func (node *OsdnNode) UpdatePod(pod kapi.Pod) error { func (node *OsdnNode) GetLocalPods(namespace string) ([]kapi.Pod, error) { fieldSelector := fields.Set{"spec.nodeName": node.hostName}.AsSelector() - opts := kapi.ListOptions{ - LabelSelector: labels.Everything(), - FieldSelector: fieldSelector, + opts := metav1.ListOptions{ + LabelSelector: labels.Everything().String(), + FieldSelector: fieldSelector.String(), } podList, err := node.kClient.Core().Pods(namespace).List(opts) if err != nil { @@ -347,7 +348,7 @@ func isServiceChanged(oldsvc, newsvc *kapi.Service) bool { func (node *OsdnNode) watchServices() { services := make(map[string]*kapi.Service) - RunEventQueue(node.kClient.CoreClient.RESTClient(), Services, func(delta cache.Delta) error { + RunEventQueue(node.kClient.Core().RESTClient(), Services, func(delta cache.Delta) error { serv := delta.Object.(*kapi.Service) // Ignore headless services diff --git a/pkg/sdn/plugin/node_iptables.go b/pkg/sdn/plugin/node_iptables.go index 1d2c2a050078..6f0220514535 100644 --- a/pkg/sdn/plugin/node_iptables.go +++ b/pkg/sdn/plugin/node_iptables.go @@ -7,10 +7,10 @@ import ( "github.com/golang/glog" + utilwait "k8s.io/apimachinery/pkg/util/wait" utildbus "k8s.io/kubernetes/pkg/util/dbus" kexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/iptables" - utilwait "k8s.io/kubernetes/pkg/util/wait" ) type FirewallRule struct { diff --git a/pkg/sdn/plugin/plugin.go b/pkg/sdn/plugin/plugin.go index 0bf386d6e3dd..e3d54049c3f4 100644 --- a/pkg/sdn/plugin/plugin.go +++ b/pkg/sdn/plugin/plugin.go @@ -3,11 +3,11 @@ package plugin import ( "fmt" + utilsets "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/apis/componentconfig" kubeletTypes "k8s.io/kubernetes/pkg/kubelet/container" knetwork "k8s.io/kubernetes/pkg/kubelet/network" kcni "k8s.io/kubernetes/pkg/kubelet/network/cni" - utilsets "k8s.io/kubernetes/pkg/util/sets" "github.com/golang/glog" ) @@ -41,8 +41,8 @@ func (node *OsdnNode) Capabilities() utilsets.Int { return utilsets.NewInt(knetwork.NET_PLUGIN_CAPABILITY_SHAPING) } -func (node *OsdnNode) SetUpPod(namespace string, name string, id kubeletTypes.ContainerID) error { - return node.kubeletCniPlugin.SetUpPod(namespace, name, id) +func (node *OsdnNode) SetUpPod(namespace string, name string, id kubeletTypes.ContainerID, annotations map[string]string) error { + return node.kubeletCniPlugin.SetUpPod(namespace, name, id, annotations) } func (node *OsdnNode) TearDownPod(namespace string, name string, id kubeletTypes.ContainerID) error { diff --git a/pkg/sdn/plugin/pod.go b/pkg/sdn/plugin/pod.go index efbeef577b05..c723e6d765c2 100644 --- a/pkg/sdn/plugin/pod.go +++ b/pkg/sdn/plugin/pod.go @@ -41,7 +41,7 @@ type podManager struct { runningPodsLock sync.Mutex // Live pod setup/teardown stuff not used in testing code - kClient *kclientset.Clientset + kClient kclientset.Interface policy osdnPolicy mtu uint32 oc *ovsController @@ -54,7 +54,7 @@ type podManager struct { } // Creates a new live podManager; used by node code -func newPodManager(kClient *kclientset.Clientset, policy osdnPolicy, mtu uint32, oc *ovsController) *podManager { +func newPodManager(kClient kclientset.Interface, policy osdnPolicy, mtu uint32, oc *ovsController) *podManager { pm := newDefaultPodManager() pm.kClient = kClient pm.policy = policy diff --git a/pkg/sdn/plugin/pod_linux.go b/pkg/sdn/plugin/pod_linux.go index 8eabc0db02b9..e42b637c13e1 100644 --- a/pkg/sdn/plugin/pod_linux.go +++ b/pkg/sdn/plugin/pod_linux.go @@ -17,15 +17,16 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + ksets "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kcontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/dockertools" knetwork "k8s.io/kubernetes/pkg/kubelet/network" kubehostport "k8s.io/kubernetes/pkg/kubelet/network/hostport" kbandwidth "k8s.io/kubernetes/pkg/util/bandwidth" - kerrors "k8s.io/kubernetes/pkg/util/errors" kexec "k8s.io/kubernetes/pkg/util/exec" - ksets "k8s.io/kubernetes/pkg/util/sets" "github.com/containernetworking/cni/pkg/invoke" "github.com/containernetworking/cni/pkg/ip" @@ -311,7 +312,7 @@ func (m *podManager) ipamGarbageCollection() { // Set up all networking (host/container veth, OVS flows, IPAM, loopback, etc) func (m *podManager) setup(req *cniserver.PodRequest) (*cnitypes.Result, *runningPod, error) { - pod, err := m.kClient.Pods(req.PodNamespace).Get(req.PodName) + pod, err := m.kClient.Core().Pods(req.PodNamespace).Get(req.PodName, metav1.GetOptions{}) if err != nil { return nil, nil, err } @@ -426,7 +427,7 @@ func (m *podManager) update(req *cniserver.PodRequest) (uint32, error) { req.Netns = netns } - pod, err := m.kClient.Pods(req.PodNamespace).Get(req.PodName) + pod, err := m.kClient.Core().Pods(req.PodNamespace).Get(req.PodName, metav1.GetOptions{}) if err != nil { return 0, err } diff --git a/pkg/sdn/plugin/pod_test.go b/pkg/sdn/plugin/pod_test.go index 8baf9b85f740..1ad2be4db4ce 100644 --- a/pkg/sdn/plugin/pod_test.go +++ b/pkg/sdn/plugin/pod_test.go @@ -12,15 +12,15 @@ import ( "github.com/openshift/origin/pkg/sdn/plugin/cniserver" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utiltesting "k8s.io/client-go/util/testing" kapi "k8s.io/kubernetes/pkg/api" - kunversioned "k8s.io/kubernetes/pkg/api/unversioned" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" kcontainer "k8s.io/kubernetes/pkg/kubelet/container" kcontainertest "k8s.io/kubernetes/pkg/kubelet/container/testing" "k8s.io/kubernetes/pkg/kubelet/network" khostport "k8s.io/kubernetes/pkg/kubelet/network/hostport" - utiltesting "k8s.io/kubernetes/pkg/util/testing" cnitypes "github.com/containernetworking/cni/pkg/types" ) @@ -102,10 +102,10 @@ func (pt *podTester) addExpectedPod(t *testing.T, op *operation) { func fakeRunningPod(namespace, name string, ip net.IP) *runningPod { activePod := &khostport.ActivePod{ Pod: &kapi.Pod{ - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: kmetav1.TypeMeta{ Kind: "Pod", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, }, @@ -177,7 +177,7 @@ func newFakeHost() *fakeHost { } } -func (fnh *fakeHost) GetPodByName(name, namespace string) (*kapi.Pod, bool) { +func (fnh *fakeHost) GetPodByName(name, namespace string) (*kapiv1.Pod, bool) { return nil, false } diff --git a/pkg/sdn/plugin/proxy.go b/pkg/sdn/plugin/proxy.go index b874dbf79fef..e82e7bf21e26 100644 --- a/pkg/sdn/plugin/proxy.go +++ b/pkg/sdn/plugin/proxy.go @@ -10,12 +10,13 @@ import ( osclient "github.com/openshift/origin/pkg/client" osapi "github.com/openshift/origin/pkg/sdn/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + ktypes "k8s.io/apimachinery/pkg/types" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" pconfig "k8s.io/kubernetes/pkg/proxy/config" - ktypes "k8s.io/kubernetes/pkg/types" - utilwait "k8s.io/kubernetes/pkg/util/wait" ) type firewallItem struct { @@ -29,7 +30,7 @@ type proxyFirewallItem struct { } type OsdnProxy struct { - kClient *kclientset.Clientset + kClient kclientset.Interface osClient *osclient.Client networkInfo *NetworkInfo egressDNS *EgressDNS @@ -44,7 +45,7 @@ type OsdnProxy struct { } // Called by higher layers to create the proxy plugin instance; only used by nodes -func NewProxyPlugin(pluginName string, osClient *osclient.Client, kClient *kclientset.Clientset) (*OsdnProxy, error) { +func NewProxyPlugin(pluginName string, osClient *osclient.Client, kClient kclientset.Interface) (*OsdnProxy, error) { if !osapi.IsOpenShiftMultitenantNetworkPlugin(pluginName) { return nil, nil } @@ -68,7 +69,7 @@ func (proxy *OsdnProxy) Start(baseHandler pconfig.EndpointsConfigHandler) error } proxy.baseEndpointsHandler = baseHandler - policies, err := proxy.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policies, err := proxy.osClient.EgressNetworkPolicies(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("could not get EgressNetworkPolicies: %s", err) } @@ -261,7 +262,7 @@ EndpointLoop: } func (proxy *OsdnProxy) syncEgressDNSProxyFirewall() { - policies, err := proxy.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policies, err := proxy.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(metav1.ListOptions{}) if err != nil { glog.Errorf("Could not get EgressNetworkPolicies: %v", err) return @@ -275,7 +276,7 @@ func (proxy *OsdnProxy) syncEgressDNSProxyFirewall() { policy, ok := getPolicy(policyUpdates.UID, policies) if !ok { - policies, err = proxy.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(kapi.ListOptions{}) + policies, err = proxy.osClient.EgressNetworkPolicies(kapi.NamespaceAll).List(metav1.ListOptions{}) if err != nil { glog.Errorf("Failed to update proxy firewall for policy: %v, Could not get EgressNetworkPolicies: %v", policyUpdates.UID, err) continue diff --git a/pkg/sdn/plugin/sdn-cni-plugin/sdn_cni_plugin_test.go b/pkg/sdn/plugin/sdn-cni-plugin/sdn_cni_plugin_test.go index e56c1df7e3c5..5214a48812bf 100644 --- a/pkg/sdn/plugin/sdn-cni-plugin/sdn_cni_plugin_test.go +++ b/pkg/sdn/plugin/sdn-cni-plugin/sdn_cni_plugin_test.go @@ -16,7 +16,7 @@ import ( cnitypes "github.com/containernetworking/cni/pkg/types" "github.com/openshift/origin/pkg/sdn/plugin/cniserver" - utiltesting "k8s.io/kubernetes/pkg/util/testing" + utiltesting "k8s.io/client-go/util/testing" ) var expectedResult cnitypes.Result diff --git a/pkg/sdn/plugin/subnets.go b/pkg/sdn/plugin/subnets.go index f5bc1f558943..209ae4f05f20 100644 --- a/pkg/sdn/plugin/subnets.go +++ b/pkg/sdn/plugin/subnets.go @@ -7,13 +7,13 @@ import ( log "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - kapiunversioned "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/types" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - utilwait "k8s.io/kubernetes/pkg/util/wait" osapi "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/util/netutils" @@ -21,7 +21,7 @@ import ( func (master *OsdnMaster) SubnetStartMaster(clusterNetwork *net.IPNet, hostSubnetLength uint32) error { subrange := make([]string, 0) - subnets, err := master.osClient.HostSubnets().List(kapi.ListOptions{}) + subnets, err := master.osClient.HostSubnets().List(metav1.ListOptions{}) if err != nil { log.Errorf("Error in initializing/fetching subnets: %v", err) return err @@ -56,7 +56,7 @@ func (master *OsdnMaster) addNode(nodeName string, nodeIP string, hsAnnotations } // Check if subnet needs to be created or updated - sub, err := master.osClient.HostSubnets().Get(nodeName) + sub, err := master.osClient.HostSubnets().Get(nodeName, metav1.GetOptions{}) if err == nil { if sub.HostIP == nodeIP { return nodeIP, nil @@ -81,8 +81,8 @@ func (master *OsdnMaster) addNode(nodeName string, nodeIP string, hsAnnotations } sub = &osapi.HostSubnet{ - TypeMeta: kapiunversioned.TypeMeta{Kind: "HostSubnet"}, - ObjectMeta: kapi.ObjectMeta{Name: nodeName, Annotations: hsAnnotations}, + TypeMeta: metav1.TypeMeta{Kind: "HostSubnet"}, + ObjectMeta: metav1.ObjectMeta{Name: nodeName, Annotations: hsAnnotations}, Host: nodeName, HostIP: nodeIP, Subnet: sn.String(), @@ -97,7 +97,7 @@ func (master *OsdnMaster) addNode(nodeName string, nodeIP string, hsAnnotations } func (master *OsdnMaster) deleteNode(nodeName string) error { - sub, err := master.osClient.HostSubnets().Get(nodeName) + sub, err := master.osClient.HostSubnets().Get(nodeName, metav1.GetOptions{}) if err != nil { return fmt.Errorf("error fetching subnet for node %q for deletion: %v", nodeName, err) } @@ -140,7 +140,7 @@ func (master *OsdnMaster) clearInitialNodeNetworkUnavailableCondition(node *kapi var err error if knode != node { - knode, err = master.kClient.Nodes().Get(node.ObjectMeta.Name) + knode, err = master.kClient.Core().Nodes().Get(node.ObjectMeta.Name, metav1.GetOptions{}) if err != nil { return err } @@ -152,8 +152,8 @@ func (master *OsdnMaster) clearInitialNodeNetworkUnavailableCondition(node *kapi condition.Status = kapi.ConditionFalse condition.Reason = "RouteCreated" condition.Message = "openshift-sdn cleared kubelet-set NoRouteCreated" - condition.LastTransitionTime = kapiunversioned.Now() - knode, err = master.kClient.Nodes().UpdateStatus(knode) + condition.LastTransitionTime = metav1.Now() + knode, err = master.kClient.Core().Nodes().UpdateStatus(knode) if err == nil { cleared = true } @@ -169,7 +169,7 @@ func (master *OsdnMaster) clearInitialNodeNetworkUnavailableCondition(node *kapi func (master *OsdnMaster) watchNodes() { nodeAddressMap := map[types.UID]string{} - RunEventQueue(master.kClient.CoreClient.RESTClient(), Nodes, func(delta cache.Delta) error { + RunEventQueue(master.kClient.Core().RESTClient(), Nodes, func(delta cache.Delta) error { node := delta.Object.(*kapi.Node) name := node.ObjectMeta.Name uid := node.ObjectMeta.UID diff --git a/pkg/sdn/plugin/vnids_master.go b/pkg/sdn/plugin/vnids_master.go index 780279fd01f4..2c2cde0abfd2 100644 --- a/pkg/sdn/plugin/vnids_master.go +++ b/pkg/sdn/plugin/vnids_master.go @@ -6,11 +6,11 @@ import ( log "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" osclient "github.com/openshift/origin/pkg/client" osapi "github.com/openshift/origin/pkg/sdn/api" @@ -35,7 +35,7 @@ func newMasterVNIDMap(allowRenumbering bool) *masterVNIDMap { return &masterVNIDMap{ netIDManager: pnetid.NewInMemory(netIDRange), - adminNamespaces: sets.NewString(kapi.NamespaceDefault), + adminNamespaces: sets.NewString(metav1.NamespaceDefault), ids: make(map[string]uint32), allowRenumbering: allowRenumbering, } @@ -74,7 +74,7 @@ func (vmap *masterVNIDMap) isAdminNamespace(nsName string) bool { } func (vmap *masterVNIDMap) populateVNIDs(osClient *osclient.Client) error { - netnsList, err := osClient.NetNamespaces().List(kapi.ListOptions{}) + netnsList, err := osClient.NetNamespaces().List(metav1.ListOptions{}) if err != nil { return err } @@ -210,8 +210,8 @@ func (vmap *masterVNIDMap) assignVNID(osClient *osclient.Client, nsName string) if !exists { // Create NetNamespace Object and update vnid map netns := &osapi.NetNamespace{ - TypeMeta: unversioned.TypeMeta{Kind: "NetNamespace"}, - ObjectMeta: kapi.ObjectMeta{Name: nsName}, + TypeMeta: metav1.TypeMeta{Kind: "NetNamespace"}, + ObjectMeta: metav1.ObjectMeta{Name: nsName}, NetName: nsName, NetID: netid, } @@ -280,7 +280,7 @@ func (master *OsdnMaster) VnidStartMaster() error { } func (master *OsdnMaster) watchNamespaces() { - RunEventQueue(master.kClient.CoreClient.RESTClient(), Namespaces, func(delta cache.Delta) error { + RunEventQueue(master.kClient.Core().RESTClient(), Namespaces, func(delta cache.Delta) error { ns := delta.Object.(*kapi.Namespace) name := ns.ObjectMeta.Name diff --git a/pkg/sdn/plugin/vnids_master_test.go b/pkg/sdn/plugin/vnids_master_test.go index 449d755fa7de..19f4361773e3 100644 --- a/pkg/sdn/plugin/vnids_master_test.go +++ b/pkg/sdn/plugin/vnids_master_test.go @@ -3,7 +3,7 @@ package plugin import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" osapi "github.com/openshift/origin/pkg/sdn/api" ) @@ -15,7 +15,7 @@ func TestMasterVNIDMap(t *testing.T) { checkCurrentVNIDs(t, vmap, 0, 0) // assign vnids - _, _, err := vmap.allocateNetID(kapi.NamespaceDefault) + _, _, err := vmap.allocateNetID(metav1.NamespaceDefault) checkNoErr(t, err) _, exists, err := vmap.allocateNetID("alpha") checkNoErr(t, err) @@ -62,7 +62,7 @@ func TestMasterVNIDMap(t *testing.T) { checkNoErr(t, vmap.releaseNetID("alpha")) checkNoErr(t, vmap.releaseNetID("bravo")) checkNoErr(t, vmap.releaseNetID("charlie")) - checkNoErr(t, vmap.releaseNetID(kapi.NamespaceDefault)) + checkNoErr(t, vmap.releaseNetID(metav1.NamespaceDefault)) checkErr(t, vmap.releaseNetID("bogus")) checkCurrentVNIDs(t, vmap, 0, 0) } diff --git a/pkg/sdn/plugin/vnids_node.go b/pkg/sdn/plugin/vnids_node.go index 383f99ada590..57786f737ce9 100644 --- a/pkg/sdn/plugin/vnids_node.go +++ b/pkg/sdn/plugin/vnids_node.go @@ -7,10 +7,10 @@ import ( log "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/sets" - utilwait "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + utilwait "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" osclient "github.com/openshift/origin/pkg/client" osapi "github.com/openshift/origin/pkg/sdn/api" @@ -152,7 +152,7 @@ func netnsIsMulticastEnabled(netns *osapi.NetNamespace) bool { } func (vmap *nodeVNIDMap) populateVNIDs() error { - nets, err := vmap.osClient.NetNamespaces().List(kapi.ListOptions{}) + nets, err := vmap.osClient.NetNamespaces().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/sdn/plugin/vnids_node_test.go b/pkg/sdn/plugin/vnids_node_test.go index 33959dfe1e7c..d190c0978743 100644 --- a/pkg/sdn/plugin/vnids_node_test.go +++ b/pkg/sdn/plugin/vnids_node_test.go @@ -3,7 +3,7 @@ package plugin import ( "testing" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" osapi "github.com/openshift/origin/pkg/sdn/api" ) diff --git a/pkg/sdn/registry/clusternetwork/etcd/etcd.go b/pkg/sdn/registry/clusternetwork/etcd/etcd.go index 80c97f9e2824..3896f72563a5 100644 --- a/pkg/sdn/registry/clusternetwork/etcd/etcd.go +++ b/pkg/sdn/registry/clusternetwork/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/registry/clusternetwork" diff --git a/pkg/sdn/registry/clusternetwork/strategy.go b/pkg/sdn/registry/clusternetwork/strategy.go index 3b1443dca4fd..620773d56911 100644 --- a/pkg/sdn/registry/clusternetwork/strategy.go +++ b/pkg/sdn/registry/clusternetwork/strategy.go @@ -3,12 +3,13 @@ package clusternetwork import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/validation" @@ -23,7 +24,7 @@ type sdnStrategy struct { // objects via the REST API. var Strategy = sdnStrategy{kapi.Scheme} -func (sdnStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (sdnStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for sdns func (sdnStrategy) NamespaceScoped() bool { @@ -34,7 +35,7 @@ func (sdnStrategy) GenerateName(base string) string { return base } -func (sdnStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (sdnStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -42,7 +43,7 @@ func (sdnStrategy) Canonicalize(obj runtime.Object) { } // Validate validates a new sdn -func (sdnStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (sdnStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateClusterNetwork(obj.(*api.ClusterNetwork)) } @@ -56,7 +57,7 @@ func (sdnStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for a ClusterNetwork -func (sdnStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (sdnStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateClusterNetworkUpdate(obj.(*api.ClusterNetwork), old.(*api.ClusterNetwork)) } diff --git a/pkg/sdn/registry/egressnetworkpolicy/etcd/etcd.go b/pkg/sdn/registry/egressnetworkpolicy/etcd/etcd.go index 633a3ff6f6ff..74b4ae3373e9 100644 --- a/pkg/sdn/registry/egressnetworkpolicy/etcd/etcd.go +++ b/pkg/sdn/registry/egressnetworkpolicy/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/registry/egressnetworkpolicy" diff --git a/pkg/sdn/registry/egressnetworkpolicy/strategy.go b/pkg/sdn/registry/egressnetworkpolicy/strategy.go index 3dbb5a78ad36..e745d237ef3c 100644 --- a/pkg/sdn/registry/egressnetworkpolicy/strategy.go +++ b/pkg/sdn/registry/egressnetworkpolicy/strategy.go @@ -3,12 +3,13 @@ package egressnetworkpolicy import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/validation" @@ -23,7 +24,7 @@ type enpStrategy struct { // objects via the REST API. var Strategy = enpStrategy{kapi.Scheme} -func (enpStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (enpStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is true for egress network policy func (enpStrategy) NamespaceScoped() bool { @@ -34,7 +35,7 @@ func (enpStrategy) GenerateName(base string) string { return base } -func (enpStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (enpStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -42,7 +43,7 @@ func (enpStrategy) Canonicalize(obj runtime.Object) { } // Validate validates a new egress network policy -func (enpStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (enpStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateEgressNetworkPolicy(obj.(*api.EgressNetworkPolicy)) } @@ -56,7 +57,7 @@ func (enpStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for a EgressNetworkPolicy -func (enpStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (enpStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateEgressNetworkPolicyUpdate(obj.(*api.EgressNetworkPolicy), old.(*api.EgressNetworkPolicy)) } diff --git a/pkg/sdn/registry/hostsubnet/etcd/etcd.go b/pkg/sdn/registry/hostsubnet/etcd/etcd.go index 089c28a560c1..7bc17e4296d5 100644 --- a/pkg/sdn/registry/hostsubnet/etcd/etcd.go +++ b/pkg/sdn/registry/hostsubnet/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/registry/hostsubnet" diff --git a/pkg/sdn/registry/hostsubnet/strategy.go b/pkg/sdn/registry/hostsubnet/strategy.go index 0c84e89a6bd3..f757b7f8fb68 100644 --- a/pkg/sdn/registry/hostsubnet/strategy.go +++ b/pkg/sdn/registry/hostsubnet/strategy.go @@ -3,12 +3,13 @@ package hostsubnet import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/validation" @@ -23,7 +24,7 @@ type sdnStrategy struct { // objects via the REST API. var Strategy = sdnStrategy{kapi.Scheme} -func (sdnStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (sdnStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // Canonicalize normalizes the object after validation. func (sdnStrategy) Canonicalize(obj runtime.Object) { @@ -38,11 +39,11 @@ func (sdnStrategy) GenerateName(base string) string { return base } -func (sdnStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (sdnStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new sdn -func (sdnStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (sdnStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateHostSubnet(obj.(*api.HostSubnet)) } @@ -56,7 +57,7 @@ func (sdnStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for a HostSubnet -func (sdnStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (sdnStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateHostSubnetUpdate(obj.(*api.HostSubnet), old.(*api.HostSubnet)) } diff --git a/pkg/sdn/registry/netnamespace/etcd/etcd.go b/pkg/sdn/registry/netnamespace/etcd/etcd.go index a9a341681f89..f854bca363b0 100644 --- a/pkg/sdn/registry/netnamespace/etcd/etcd.go +++ b/pkg/sdn/registry/netnamespace/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/registry/netnamespace" diff --git a/pkg/sdn/registry/netnamespace/strategy.go b/pkg/sdn/registry/netnamespace/strategy.go index 4da1987605bd..e58c568f17e8 100644 --- a/pkg/sdn/registry/netnamespace/strategy.go +++ b/pkg/sdn/registry/netnamespace/strategy.go @@ -3,12 +3,13 @@ package netnamespace import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/sdn/api" "github.com/openshift/origin/pkg/sdn/api/validation" @@ -23,7 +24,7 @@ type sdnStrategy struct { // objects via the REST API. var Strategy = sdnStrategy{kapi.Scheme} -func (sdnStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (sdnStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // Canonicalize normalizes the object after validation. func (sdnStrategy) Canonicalize(obj runtime.Object) { @@ -38,11 +39,11 @@ func (sdnStrategy) GenerateName(base string) string { return base } -func (sdnStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (sdnStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new NetNamespace -func (sdnStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (sdnStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateNetNamespace(obj.(*api.NetNamespace)) } @@ -56,7 +57,7 @@ func (sdnStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for a NetNamespace -func (sdnStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (sdnStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateNetNamespaceUpdate(obj.(*api.NetNamespace), old.(*api.NetNamespace)) } diff --git a/pkg/security/admission/admission.go b/pkg/security/admission/admission.go index 18cdaebb8d35..a16882d35d1e 100644 --- a/pkg/security/admission/admission.go +++ b/pkg/security/admission/admission.go @@ -10,14 +10,15 @@ import ( oadmission "github.com/openshift/origin/pkg/cmd/server/admission" "github.com/openshift/origin/pkg/controller/shared" oscc "github.com/openshift/origin/pkg/security/scc" - kadmission "k8s.io/kubernetes/pkg/admission" + admission "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" scc "k8s.io/kubernetes/pkg/securitycontextconstraints" "k8s.io/kubernetes/pkg/serviceaccount" allocator "github.com/openshift/origin/pkg/security" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/golang/glog" ) @@ -30,12 +31,12 @@ func init() { } type constraint struct { - *kadmission.Handler - client clientset.Interface + *admission.Handler + client kclientset.Interface sccLister *oscache.IndexerToSecurityContextConstraintsLister } -var _ kadmission.Interface = &constraint{} +var _ admission.Interface = &constraint{} var _ = oadmission.WantsInformers(&constraint{}) // NewConstraint creates a new SCC constraint admission plugin. @@ -59,7 +60,7 @@ func NewConstraint(kclient clientset.Interface) *constraint { // On updates, the BeforeUpdate of the pod strategy only zeroes out the status. That means that // any change that claims the pod is no longer privileged will be removed. That should hold until // we get a true old/new set of objects in. -func (c *constraint) Admit(a kadmission.Attributes) error { +func (c *constraint) Admit(a admission.Attributes) error { if a.GetResource().GroupResource() != kapi.Resource("pods") { return nil } @@ -79,7 +80,7 @@ func (c *constraint) Admit(a kadmission.Attributes) error { sccMatcher := oscc.NewDefaultSCCMatcher(c.sccLister) matchedConstraints, err := sccMatcher.FindApplicableSCCs(a.GetUserInfo()) if err != nil { - return kadmission.NewForbidden(a, err) + return admission.NewForbidden(a, err) } // get all constraints that are usable by the SA @@ -88,7 +89,7 @@ func (c *constraint) Admit(a kadmission.Attributes) error { glog.V(4).Infof("getting security context constraints for pod %s (generate: %s) with service account info %v", pod.Name, pod.GenerateName, userInfo) saConstraints, err := sccMatcher.FindApplicableSCCs(userInfo) if err != nil { - return kadmission.NewForbidden(a, err) + return admission.NewForbidden(a, err) } matchedConstraints = append(matchedConstraints, saConstraints...) } @@ -101,7 +102,7 @@ func (c *constraint) Admit(a kadmission.Attributes) error { logProviders(pod, providers, errs) if len(providers) == 0 { - return kadmission.NewForbidden(a, fmt.Errorf("no providers available to validate pod request")) + return admission.NewForbidden(a, fmt.Errorf("no providers available to validate pod request")) } // all containers in a single pod must validate under a single provider or we will reject the request @@ -123,7 +124,7 @@ func (c *constraint) Admit(a kadmission.Attributes) error { // we didn't validate against any security context constraint provider, reject the pod and give the errors for each attempt glog.V(4).Infof("unable to validate pod %s (generate: %s) against any security context constraint: %v", pod.Name, pod.GenerateName, validationErrs) - return kadmission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs)) + return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs)) } // SetInformers implements WantsInformers interface for constraint. diff --git a/pkg/security/admission/admission_test.go b/pkg/security/admission/admission_test.go index 600a87b9ef0f..7de8f3b25c32 100644 --- a/pkg/security/admission/admission_test.go +++ b/pkg/security/admission/admission_test.go @@ -6,13 +6,14 @@ import ( "strings" "testing" - kadmission "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" + kadmission "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/util/diff" oscache "github.com/openshift/origin/pkg/client/cache" allocator "github.com/openshift/origin/pkg/security" @@ -176,7 +177,7 @@ func TestAdmit(t *testing.T) { // create scc that requires allocation retrieval saSCC := &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "scc-sa", }, RunAsUser: kapi.RunAsUserStrategyOptions{ @@ -199,7 +200,7 @@ func TestAdmit(t *testing.T) { // validate the requests so we should try scc-sa. var exactUID int64 = 999 saExactSCC := &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "scc-sa-exact", }, RunAsUser: kapi.RunAsUserStrategyOptions{ @@ -452,7 +453,7 @@ func TestAdmit(t *testing.T) { // now add an escalated scc to the group and re-run the cases that expected failure, they should // now pass by validating against the escalated scc. adminSCC := &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "scc-admin", }, AllowPrivilegedContainer: true, @@ -510,7 +511,7 @@ func hasSupGroup(group int64, groups []int64) bool { func TestCreateProvidersFromConstraints(t *testing.T) { namespaceValid := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.UIDRangeAnnotation: "1/3", @@ -520,7 +521,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { }, } namespaceNoUID := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.MCSAnnotation: "s0:c1,c0", @@ -529,7 +530,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { }, } namespaceNoMCS := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.UIDRangeAnnotation: "1/3", @@ -539,7 +540,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { } namespaceNoSupplementalGroupsFallbackToUID := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.UIDRangeAnnotation: "1/3", @@ -549,7 +550,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { } namespaceBadSupGroups := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.UIDRangeAnnotation: "1/3", @@ -568,7 +569,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "valid non-preallocated scc": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "valid non-preallocated scc", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -590,7 +591,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "valid pre-allocated scc": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "valid pre-allocated scc", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -613,7 +614,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "pre-allocated no uid annotation": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pre-allocated no uid annotation", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -636,7 +637,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "pre-allocated no mcs annotation": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pre-allocated no mcs annotation", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -659,7 +660,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "pre-allocated group falls back to UID annotation": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pre-allocated no sup group annotation", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -681,7 +682,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "pre-allocated group bad value fails": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pre-allocated no sup group annotation", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -704,7 +705,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { "bad scc strategy options": { scc: func() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "bad scc user options", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -760,13 +761,13 @@ func TestCreateProvidersFromConstraints(t *testing.T) { func TestMatchingSecurityContextConstraints(t *testing.T) { sccs := []*kapi.SecurityContextConstraints{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match group", }, Groups: []string{"group"}, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match user", }, Users: []string{"user"}, @@ -1072,7 +1073,7 @@ func testSCCAdmission(pod *kapi.Pod, plugin kadmission.Interface, expectedSCC st func laxSCC() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "lax", }, RunAsUser: kapi.RunAsUserStrategyOptions{ @@ -1094,7 +1095,7 @@ func laxSCC() *kapi.SecurityContextConstraints { func restrictiveSCC() *kapi.SecurityContextConstraints { var exactUID int64 = 999 return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "restrictive", }, RunAsUser: kapi.RunAsUserStrategyOptions{ @@ -1128,7 +1129,7 @@ func restrictiveSCC() *kapi.SecurityContextConstraints { // SCC when defaults are filled in. func goodPod() *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, Spec: kapi.PodSpec{ diff --git a/pkg/security/admission/scc_exec.go b/pkg/security/admission/scc_exec.go index 7cad324478bc..c28381f42e12 100644 --- a/pkg/security/admission/scc_exec.go +++ b/pkg/security/admission/scc_exec.go @@ -6,9 +6,11 @@ import ( oadmission "github.com/openshift/origin/pkg/cmd/server/admission" "github.com/openshift/origin/pkg/controller/shared" - kadmission "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + admission "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" ) func init() { @@ -18,19 +20,20 @@ func init() { }) } -var _ kadmission.Interface = &sccExecRestrictions{} +var _ admission.Interface = &sccExecRestrictions{} var _ = oadmission.WantsInformers(&sccExecRestrictions{}) +var _ = kadmission.WantsInternalKubeClientSet(&sccExecRestrictions{}) // sccExecRestrictions is an implementation of admission.Interface which says no to a pod/exec on // a pod that the user would not be allowed to create type sccExecRestrictions struct { - *kadmission.Handler + *admission.Handler constraintAdmission *constraint - client clientset.Interface + client kclientset.Interface } -func (d *sccExecRestrictions) Admit(a kadmission.Attributes) (err error) { - if a.GetOperation() != kadmission.Connect { +func (d *sccExecRestrictions) Admit(a admission.Attributes) (err error) { + if a.GetOperation() != admission.Connect { return nil } if a.GetResource().GroupResource() != kapi.Resource("pods") { @@ -40,16 +43,16 @@ func (d *sccExecRestrictions) Admit(a kadmission.Attributes) (err error) { return nil } - pod, err := d.client.Core().Pods(a.GetNamespace()).Get(a.GetName()) + pod, err := d.client.Core().Pods(a.GetNamespace()).Get(a.GetName(), metav1.GetOptions{}) if err != nil { - return kadmission.NewForbidden(a, err) + return admission.NewForbidden(a, err) } // TODO, if we want to actually limit who can use which service account, then we'll need to add logic here to make sure that // we're allowed to use the SA the pod is using. Otherwise, user-A creates pod and user-B (who can't use the SA) can exec into it. - createAttributes := kadmission.NewAttributesRecord(pod, pod, kapi.Kind("Pod").WithVersion(""), a.GetNamespace(), a.GetName(), a.GetResource(), "", kadmission.Create, a.GetUserInfo()) + createAttributes := admission.NewAttributesRecord(pod, pod, kapi.Kind("Pod").WithVersion(""), a.GetNamespace(), a.GetName(), a.GetResource(), "", admission.Create, a.GetUserInfo()) if err := d.constraintAdmission.Admit(createAttributes); err != nil { - return kadmission.NewForbidden(a, fmt.Errorf("%s operation is not allowed because the pod's security context exceeds your permissions: %v", a.GetSubresource(), err)) + return admission.NewForbidden(a, fmt.Errorf("%s operation is not allowed because the pod's security context exceeds your permissions: %v", a.GetSubresource(), err)) } return nil @@ -58,9 +61,9 @@ func (d *sccExecRestrictions) Admit(a kadmission.Attributes) (err error) { // NewSCCExecRestrictions creates a new admission controller that denies an exec operation on a privileged pod func NewSCCExecRestrictions(client clientset.Interface) *sccExecRestrictions { return &sccExecRestrictions{ - Handler: kadmission.NewHandler(kadmission.Connect), - constraintAdmission: NewConstraint(client), client: client, + Handler: admission.NewHandler(admission.Connect), + constraintAdmission: NewConstraint(), } } diff --git a/pkg/security/admission/scc_exec_test.go b/pkg/security/admission/scc_exec_test.go index 2ec69212294d..dcc57ac5932c 100644 --- a/pkg/security/admission/scc_exec_test.go +++ b/pkg/security/admission/scc_exec_test.go @@ -3,13 +3,14 @@ package admission import ( "testing" - kadmission "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kadmission "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authentication/user" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - testingcore "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" oscache "github.com/openshift/origin/pkg/client/cache" ) @@ -19,7 +20,7 @@ import ( func TestExecAdmit(t *testing.T) { goodPod := func() *kapi.Pod { return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "default", }, Spec: kapi.PodSpec{ @@ -86,7 +87,7 @@ func TestExecAdmit(t *testing.T) { for k, v := range testCases { tc := clientsetfake.NewSimpleClientset(v.pod) - tc.PrependReactor("get", "pods", func(action testingcore.Action) (handled bool, ret runtime.Object, err error) { + tc.PrependReactor("get", "pods", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, v.pod, nil }) diff --git a/pkg/security/admission/testing/util.go b/pkg/security/admission/testing/util.go index 25889d60d000..f63f41f979a3 100644 --- a/pkg/security/admission/testing/util.go +++ b/pkg/security/admission/testing/util.go @@ -1,6 +1,7 @@ package testing import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" allocator "github.com/openshift/origin/pkg/security" @@ -9,7 +10,7 @@ import ( // CreateSAForTest Build and Initializes a ServiceAccount for tests func CreateSAForTest() *kapi.ServiceAccount { return &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Namespace: "default", }, @@ -19,7 +20,7 @@ func CreateSAForTest() *kapi.ServiceAccount { // CreateNamespaceForTest builds and initializes a Namespaces for tests func CreateNamespaceForTest() *kapi.Namespace { return &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{ allocator.UIDRangeAnnotation: "1/3", @@ -35,7 +36,7 @@ func UserScc(user string) *kapi.SecurityContextConstraints { var uid int64 = 9999 fsGroup := int64(1) return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/" + user, Name: user, }, diff --git a/pkg/security/api/install/apigroup.go b/pkg/security/api/install/apigroup.go index dc7e7cf965d0..de94f90d9306 100644 --- a/pkg/security/api/install/apigroup.go +++ b/pkg/security/api/install/apigroup.go @@ -1,7 +1,7 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/announced" "github.com/openshift/origin/pkg/security/api" "github.com/openshift/origin/pkg/security/api/v1" diff --git a/pkg/security/api/install/install.go b/pkg/security/api/install/install.go index 1672b4a86650..baede7829440 100644 --- a/pkg/security/api/install/install.go +++ b/pkg/security/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/security/api" "github.com/openshift/origin/pkg/security/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/security/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -88,13 +87,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString() ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -103,7 +102,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/security/api/register.go b/pkg/security/api/register.go index f0a7fccb794b..133f133499d3 100644 --- a/pkg/security/api/register.go +++ b/pkg/security/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,20 +25,20 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -63,10 +63,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/security/api/types.go b/pkg/security/api/types.go index a343a911659d..fad4c1f3bf81 100644 --- a/pkg/security/api/types.go +++ b/pkg/security/api/types.go @@ -1,15 +1,15 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // +genclient=true // PodSecurityPolicySubjectReview checks whether a particular user/SA tuple can create the PodTemplateSpec. type PodSecurityPolicySubjectReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Spec defines specification for the PodSecurityPolicySubjectReview. Spec PodSecurityPolicySubjectReviewSpec @@ -51,7 +51,7 @@ type PodSecurityPolicySubjectReviewStatus struct { // PodSecurityPolicySelfSubjectReview checks whether this user/SA tuple can create the PodTemplateSpec. type PodSecurityPolicySelfSubjectReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Spec defines specification the PodSecurityPolicySelfSubjectReview. Spec PodSecurityPolicySelfSubjectReviewSpec @@ -68,7 +68,7 @@ type PodSecurityPolicySelfSubjectReviewSpec struct { // PodSecurityPolicyReview checks which service accounts (not users, since that would be cluster-wide) can create the `PodTemplateSpec` in question. type PodSecurityPolicyReview struct { - unversioned.TypeMeta + metav1.TypeMeta // Spec is the PodSecurityPolicy to check. Spec PodSecurityPolicyReviewSpec diff --git a/pkg/security/api/v1/defaults.go b/pkg/security/api/v1/defaults.go index fc52747ff9c4..515fa3667d57 100644 --- a/pkg/security/api/v1/defaults.go +++ b/pkg/security/api/v1/defaults.go @@ -1,6 +1,6 @@ package v1 -import "k8s.io/kubernetes/pkg/runtime" +import "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *runtime.Scheme) error { RegisterDefaults(scheme) diff --git a/pkg/security/api/v1/register.go b/pkg/security/api/v1/register.go index 791a7b9fb275..f707d4a29cae 100644 --- a/pkg/security/api/v1/register.go +++ b/pkg/security/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -33,10 +33,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/security/api/v1/types.go b/pkg/security/api/v1/types.go index 02779807ac6e..8f48cc6d6645 100644 --- a/pkg/security/api/v1/types.go +++ b/pkg/security/api/v1/types.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api/v1" ) @@ -9,7 +9,7 @@ import ( // PodSecurityPolicySubjectReview checks whether a particular user/SA tuple can create the PodTemplateSpec. type PodSecurityPolicySubjectReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // spec defines specification for the PodSecurityPolicySubjectReview. Spec PodSecurityPolicySubjectReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` @@ -51,7 +51,7 @@ type PodSecurityPolicySubjectReviewStatus struct { // PodSecurityPolicySelfSubjectReview checks whether this user/SA tuple can create the PodTemplateSpec type PodSecurityPolicySelfSubjectReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // spec defines specification the PodSecurityPolicySelfSubjectReview. Spec PodSecurityPolicySelfSubjectReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` @@ -68,7 +68,7 @@ type PodSecurityPolicySelfSubjectReviewSpec struct { // PodSecurityPolicyReview checks which service accounts (not users, since that would be cluster-wide) can create the `PodTemplateSpec` in question. type PodSecurityPolicyReview struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // spec is the PodSecurityPolicy to check. Spec PodSecurityPolicyReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` diff --git a/pkg/security/api/v1/zz_generated.conversion.go b/pkg/security/api/v1/zz_generated.conversion.go index c515b8373b51..59814a5235ee 100644 --- a/pkg/security/api/v1/zz_generated.conversion.go +++ b/pkg/security/api/v1/zz_generated.conversion.go @@ -5,12 +5,13 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/security/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" pkg_api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { diff --git a/pkg/security/api/v1/zz_generated.deepcopy.go b/pkg/security/api/v1/zz_generated.deepcopy.go index d46d7926b63f..16e091436f46 100644 --- a/pkg/security/api/v1/zz_generated.deepcopy.go +++ b/pkg/security/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/security/api/v1/zz_generated.defaults.go b/pkg/security/api/v1/zz_generated.defaults.go index 402874f81a68..d0fc8b030395 100644 --- a/pkg/security/api/v1/zz_generated.defaults.go +++ b/pkg/security/api/v1/zz_generated.defaults.go @@ -5,8 +5,8 @@ package v1 import ( + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - runtime "k8s.io/kubernetes/pkg/runtime" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/pkg/security/api/validation/validation.go b/pkg/security/api/validation/validation.go index 20d8fff8c4b1..081b3a94e87a 100644 --- a/pkg/security/api/validation/validation.go +++ b/pkg/security/api/validation/validation.go @@ -3,8 +3,8 @@ package validation import ( "strings" + "k8s.io/apimachinery/pkg/util/validation/field" kapivalidation "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" securityapi "github.com/openshift/origin/pkg/security/api" ) diff --git a/pkg/security/api/zz_generated.deepcopy.go b/pkg/security/api/zz_generated.deepcopy.go index 60bab508fc7f..ea82bfde1279 100644 --- a/pkg/security/api/zz_generated.deepcopy.go +++ b/pkg/security/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/security/controller/controller.go b/pkg/security/controller/controller.go index ee65e18daf4a..30f7b6605989 100644 --- a/pkg/security/controller/controller.go +++ b/pkg/security/controller/controller.go @@ -3,10 +3,11 @@ package controller import ( "fmt" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" "github.com/openshift/origin/pkg/security" "github.com/openshift/origin/pkg/security/mcs" @@ -87,7 +88,7 @@ func (c *Allocation) Next(ns *kapi.Namespace) error { if !errors.IsConflict(err) { return err } - newNs, err := c.client.Get(ns.Name) + newNs, err := c.client.Get(ns.Name, metav1.GetOptions{}) if errors.IsNotFound(err) { return nil } diff --git a/pkg/security/controller/controller_test.go b/pkg/security/controller/controller_test.go index 43e9eaef29cf..14adb37675af 100644 --- a/pkg/security/controller/controller_test.go +++ b/pkg/security/controller/controller_test.go @@ -5,11 +5,12 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/security" "github.com/openshift/origin/pkg/security/mcs" @@ -18,9 +19,9 @@ import ( ) func TestController(t *testing.T) { - var action core.Action + var action clientgotesting.Action client := &fake.Clientset{} - client.AddReactor("*", "*", func(a core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("*", "*", func(a clientgotesting.Action) (handled bool, ret runtime.Object, err error) { action = a return true, (*kapi.Namespace)(nil), nil }) @@ -34,12 +35,12 @@ func TestController(t *testing.T) { client: client.Core().Namespaces(), } - err := c.Next(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: "test"}}) + err := c.Next(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test"}}) if err != nil { t.Fatal(err) } - got := action.(core.CreateAction).GetObject().(*kapi.Namespace) + got := action.(clientgotesting.CreateAction).GetObject().(*kapi.Namespace) if got.Annotations[security.UIDRangeAnnotation] != "10/2" { t.Errorf("unexpected uid annotation: %#v", got) } @@ -58,7 +59,7 @@ func TestControllerError(t *testing.T) { testCases := map[string]struct { err func() error errFn func(err error) bool - reactFn core.ReactionFunc + reactFn clientgotesting.ReactionFunc actions int }{ "not found": { @@ -73,9 +74,9 @@ func TestControllerError(t *testing.T) { }, "conflict": { actions: 4, - reactFn: func(a core.Action) (bool, runtime.Object, error) { + reactFn: func(a clientgotesting.Action) (bool, runtime.Object, error) { if a.Matches("get", "namespaces") { - return true, &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: "test"}}, nil + return true, &kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test"}}, nil } return true, (*kapi.Namespace)(nil), errors.NewConflict(kapi.Resource("namespace"), "test", fmt.Errorf("test conflict")) }, @@ -89,7 +90,7 @@ func TestControllerError(t *testing.T) { client := &fake.Clientset{} if testCase.reactFn == nil { - testCase.reactFn = func(a core.Action) (bool, runtime.Object, error) { + testCase.reactFn = func(a clientgotesting.Action) (bool, runtime.Object, error) { return true, (*kapi.Namespace)(nil), testCase.err() } } @@ -105,7 +106,7 @@ func TestControllerError(t *testing.T) { client: client.Core().Namespaces(), } - err := c.Next(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: "test"}}) + err := c.Next(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test"}}) if !testCase.errFn(err) { t.Errorf("%s: unexpected error: %v", s, err) } diff --git a/pkg/security/controller/factory.go b/pkg/security/controller/factory.go index 7b6b78357d8b..a33a21abeecb 100644 --- a/pkg/security/controller/factory.go +++ b/pkg/security/controller/factory.go @@ -3,13 +3,14 @@ package controller import ( "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/controller" "github.com/openshift/origin/pkg/security/uidallocator" @@ -29,10 +30,10 @@ type AllocationFactory struct { func (f *AllocationFactory) Create() controller.RunnableController { if f.Queue == nil { lw := &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return f.Client.List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return f.Client.Watch(options) }, } diff --git a/pkg/security/controller/repair.go b/pkg/security/controller/repair.go index 57eb5f54d198..a96cec714f62 100644 --- a/pkg/security/controller/repair.go +++ b/pkg/security/controller/repair.go @@ -4,11 +4,11 @@ import ( "fmt" "time" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + utilwait "k8s.io/apimachinery/pkg/util/wait" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - utilwait "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/security" "github.com/openshift/origin/pkg/security/uid" @@ -63,7 +63,7 @@ func (c *Repair) RunOnce() error { return fmt.Errorf("unable to refresh the security allocation UID blocks: %v", err) } - list, err := c.client.List(kapi.ListOptions{}) + list, err := c.client.List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("unable to refresh the security allocation UID blocks: %v", err) } diff --git a/pkg/security/controller/repair_test.go b/pkg/security/controller/repair_test.go index ff1412c58369..f7b3cc589fd5 100644 --- a/pkg/security/controller/repair_test.go +++ b/pkg/security/controller/repair_test.go @@ -4,10 +4,11 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/security" "github.com/openshift/origin/pkg/security/uid" @@ -31,10 +32,10 @@ func (r *fakeRange) CreateOrUpdate(update *kapi.RangeAllocation) error { func TestRepair(t *testing.T) { client := &fake.Clientset{} - client.AddReactor("*", "*", func(a core.Action) (bool, runtime.Object, error) { + client.AddReactor("*", "*", func(a clientgotesting.Action) (bool, runtime.Object, error) { list := &kapi.NamespaceList{ Items: []kapi.Namespace{ - {ObjectMeta: kapi.ObjectMeta{Name: "default"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "default"}}, }, } return true, list, nil @@ -64,11 +65,11 @@ func TestRepair(t *testing.T) { func TestRepairIgnoresMismatch(t *testing.T) { client := &fake.Clientset{} - client.AddReactor("*", "*", func(a core.Action) (bool, runtime.Object, error) { + client.AddReactor("*", "*", func(a clientgotesting.Action) (bool, runtime.Object, error) { list := &kapi.NamespaceList{ Items: []kapi.Namespace{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", Annotations: map[string]string{security.UIDRangeAnnotation: "1/5"}, }, diff --git a/pkg/security/mcsallocator/allocator_test.go b/pkg/security/mcsallocator/allocator_test.go index 8697534365bb..915065b9578c 100644 --- a/pkg/security/mcsallocator/allocator_test.go +++ b/pkg/security/mcsallocator/allocator_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/registry/core/service/allocator" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/security/mcs" ) diff --git a/pkg/security/registry/podsecuritypolicyreview/rest.go b/pkg/security/registry/podsecuritypolicyreview/rest.go index c348f3de8e21..81c269d93a9a 100644 --- a/pkg/security/registry/podsecuritypolicyreview/rest.go +++ b/pkg/security/registry/podsecuritypolicyreview/rest.go @@ -6,14 +6,15 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + kerrors "k8s.io/apimachinery/pkg/util/errors" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" + kcorelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" kscc "k8s.io/kubernetes/pkg/securitycontextconstraints" "k8s.io/kubernetes/pkg/serviceaccount" - kerrors "k8s.io/kubernetes/pkg/util/errors" securityapi "github.com/openshift/origin/pkg/security/api" securityvalidation "github.com/openshift/origin/pkg/security/api/validation" @@ -24,12 +25,12 @@ import ( // REST implements the RESTStorage interface in terms of an Registry. type REST struct { sccMatcher oscc.SCCMatcher - saCache *cache.StoreToServiceAccountLister + saCache kcorelisters.ServiceAccountLister client clientset.Interface } // NewREST creates a new REST for policies.. -func NewREST(m oscc.SCCMatcher, saCache *cache.StoreToServiceAccountLister, c clientset.Interface) *REST { +func NewREST(m oscc.SCCMatcher, saCache kcorelisters.ServiceAccountLister, c clientset.Interface) *REST { return &REST{sccMatcher: m, saCache: saCache, client: c} } @@ -39,7 +40,7 @@ func (r *REST) New() runtime.Object { } // Create registers a given new PodSecurityPolicyReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { pspr, ok := obj.(*securityapi.PodSecurityPolicyReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a PodSecurityPolicyReview: %#v", obj)) @@ -47,7 +48,7 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if errs := securityvalidation.ValidatePodSecurityPolicyReview(pspr); len(errs) > 0 { return nil, kapierrors.NewInvalid(kapi.Kind("PodSecurityPolicyReview"), "", errs) } - ns, ok := kapi.NamespaceFrom(ctx) + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("namespace parameter required.") } @@ -99,10 +100,10 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err return pspr, nil } -func getServiceAccounts(psprSpec securityapi.PodSecurityPolicyReviewSpec, saCache *cache.StoreToServiceAccountLister, namespace string) ([]*kapi.ServiceAccount, error) { +func getServiceAccounts(psprSpec securityapi.PodSecurityPolicyReviewSpec, saCache kcorelisters.ServiceAccountLister, namespace string) ([]*kapi.ServiceAccount, error) { serviceAccounts := []*kapi.ServiceAccount{} // TODO: express 'all service accounts' - //if serviceAccountList, err := client.Core().ServiceAccounts(namespace).List(kapi.ListOptions{}); err == nil { + //if serviceAccountList, err := client.Core().ServiceAccounts(namespace).List(metainternal.ListOptions{}); err == nil { // serviceAccounts = serviceAccountList.Items // return serviceAccounts, fmt.Errorf("unable to retrieve service accounts: %v", err) //} diff --git a/pkg/security/registry/podsecuritypolicyreview/rest_test.go b/pkg/security/registry/podsecuritypolicyreview/rest_test.go index b3c528302008..209fabd4ec2f 100644 --- a/pkg/security/registry/podsecuritypolicyreview/rest_test.go +++ b/pkg/security/registry/podsecuritypolicyreview/rest_test.go @@ -4,14 +4,17 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + cache "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - cache "k8s.io/kubernetes/pkg/client/cache" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" oscache "github.com/openshift/origin/pkg/client/cache" admissionttesting "github.com/openshift/origin/pkg/security/admission/testing" securityapi "github.com/openshift/origin/pkg/security/api" oscc "github.com/openshift/origin/pkg/security/scc" + "k8s.io/kubernetes/pkg/client/listers/core/internalversion" ) func TestNoErrors(t *testing.T) { @@ -37,7 +40,7 @@ func TestNoErrors(t *testing.T) { }, sccs: []*kapi.SecurityContextConstraints{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/scc-sa", Name: "scc-sa", }, @@ -85,7 +88,7 @@ func TestNoErrors(t *testing.T) { }, sccs: []*kapi.SecurityContextConstraints{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/restrictive", Name: "restrictive", }, @@ -138,7 +141,7 @@ func TestNoErrors(t *testing.T) { saCache.Indexer.Add(serviceAccount) csf := clientsetfake.NewSimpleClientset(namespace) storage := REST{oscc.NewDefaultSCCMatcher(sccCache), saCache, csf} - ctx := kapi.WithNamespace(kapi.NewContext(), namespace.Name) + ctx := apirequest.WithNamespace(apirequest.NewContext(), namespace.Name) obj, err := storage.Create(ctx, testcase.request) if err != nil { t.Errorf("%s - Unexpected error: %v", testName, err) @@ -223,7 +226,7 @@ func TestErrors(t *testing.T) { csf := clientsetfake.NewSimpleClientset(namespace) storage := REST{oscc.NewDefaultSCCMatcher(sccCache), saCache, csf} - ctx := kapi.WithNamespace(kapi.NewContext(), namespace.Name) + ctx := apirequest.WithNamespace(apirequest.NewContext(), namespace.Name) _, err := storage.Create(ctx, testcase.request) if err == nil { t.Errorf("%s - Expected error", testName) @@ -265,7 +268,7 @@ func TestSpecificSAs(t *testing.T) { }, sccs: []*kapi.SecurityContextConstraints{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/myscc", Name: "myscc", }, @@ -286,19 +289,19 @@ func TestSpecificSAs(t *testing.T) { }, serviceAccounts: []*kapi.ServiceAccount{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "my-sa", Namespace: "default", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "yours-sa", Namespace: "default", }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "our-sa", Namespace: "default", }, @@ -329,7 +332,7 @@ func TestSpecificSAs(t *testing.T) { }, sccs: []*kapi.SecurityContextConstraints{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/myscc", Name: "myscc", }, @@ -350,7 +353,7 @@ func TestSpecificSAs(t *testing.T) { }, serviceAccounts: []*kapi.ServiceAccount{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "my-sa", Namespace: "default", }, @@ -380,7 +383,7 @@ func TestSpecificSAs(t *testing.T) { } csf := clientsetfake.NewSimpleClientset(namespace) storage := REST{oscc.NewDefaultSCCMatcher(sccCache), saCache, csf} - ctx := kapi.WithNamespace(kapi.NewContext(), namespace.Name) + ctx := apirequest.WithNamespace(apirequest.NewContext(), namespace.Name) _, err := storage.Create(ctx, testcase.request) switch { case err == nil && len(testcase.errorMessage) == 0: diff --git a/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest.go b/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest.go index 927673dc9efb..262c4e1f6760 100644 --- a/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest.go +++ b/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest.go @@ -4,10 +4,11 @@ import ( "fmt" "sort" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" kscc "k8s.io/kubernetes/pkg/securitycontextconstraints" "k8s.io/kubernetes/pkg/serviceaccount" @@ -35,7 +36,7 @@ func (r *REST) New() runtime.Object { } // Create registers a given new pspssr instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { pspssr, ok := obj.(*securityapi.PodSecurityPolicySelfSubjectReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a PodSecurityPolicySelfSubjectReview: %#v", obj)) @@ -43,11 +44,11 @@ func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err if errs := securityvalidation.ValidatePodSecurityPolicySelfSubjectReview(pspssr); len(errs) > 0 { return nil, kapierrors.NewInvalid(kapi.Kind("PodSecurityPolicySelfSubjectReview"), "", errs) } - userInfo, ok := kapi.UserFrom(ctx) + userInfo, ok := apirequest.UserFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("no user data associated with context")) } - ns, ok := kapi.NamespaceFrom(ctx) + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("namespace parameter required.") } diff --git a/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest_test.go b/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest_test.go index 86d1a6148c45..11ccc15e8fdf 100644 --- a/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest_test.go +++ b/pkg/security/registry/podsecuritypolicyselfsubjectreview/rest_test.go @@ -4,9 +4,11 @@ import ( "fmt" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" oscache "github.com/openshift/origin/pkg/client/cache" @@ -89,7 +91,7 @@ func TestPodSecurityPolicySelfSubjectReview(t *testing.T) { csf := clientsetfake.NewSimpleClientset(namespace, serviceAccount) storage := REST{oscc.NewDefaultSCCMatcher(cache), csf} - ctx := kapi.WithUser(kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll), &user.DefaultInfo{Name: "foo", Groups: []string{"bar", "baz"}}) + ctx := apirequest.WithUser(apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll), &user.DefaultInfo{Name: "foo", Groups: []string{"bar", "baz"}}) obj, err := storage.Create(ctx, reviewRequest) if err != nil { t.Errorf("%s - Unexpected error", testName) diff --git a/pkg/security/registry/podsecuritypolicysubjectreview/rest.go b/pkg/security/registry/podsecuritypolicysubjectreview/rest.go index f9e9a4843e94..e842e2ea756f 100644 --- a/pkg/security/registry/podsecuritypolicysubjectreview/rest.go +++ b/pkg/security/registry/podsecuritypolicysubjectreview/rest.go @@ -6,14 +6,15 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" kscc "k8s.io/kubernetes/pkg/securitycontextconstraints" "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/validation/field" securityapi "github.com/openshift/origin/pkg/security/api" securityvalidation "github.com/openshift/origin/pkg/security/api/validation" @@ -37,13 +38,13 @@ func (r *REST) New() runtime.Object { } // Create registers a given new PodSecurityPolicySubjectReview instance to r.registry. -func (r *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (r *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { pspsr, ok := obj.(*securityapi.PodSecurityPolicySubjectReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a PodSecurityPolicySubjectReview: %#v", obj)) } - ns, ok := kapi.NamespaceFrom(ctx) + ns, ok := apirequest.NamespaceFrom(ctx) if !ok { return nil, kapierrors.NewBadRequest("namespace parameter required.") } @@ -101,7 +102,7 @@ func FillPodSecurityPolicySubjectReviewStatus(s *securityapi.PodSecurityPolicySu s.Reason = "CantAssignSecurityContextConstraintProvider" return false, fmt.Errorf("unable to assign SecurityContextConstraints provider: %v", errs.ToAggregate()) } - ref, err := kapi.GetReference(constraint) + ref, err := kapi.GetReference(kapi.Scheme, constraint) if err != nil { s.Reason = "CantObtainReference" return false, fmt.Errorf("unable to get SecurityContextConstraints reference: %v", err) diff --git a/pkg/security/registry/podsecuritypolicysubjectreview/rest_test.go b/pkg/security/registry/podsecuritypolicysubjectreview/rest_test.go index 5ddabe1a93ab..feae9a17a22a 100644 --- a/pkg/security/registry/podsecuritypolicysubjectreview/rest_test.go +++ b/pkg/security/registry/podsecuritypolicysubjectreview/rest_test.go @@ -3,8 +3,10 @@ package podsecuritypolicysubjectreview import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" oscache "github.com/openshift/origin/pkg/client/cache" @@ -15,7 +17,7 @@ import ( func saSCC() *kapi.SecurityContextConstraints { return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ SelfLink: "/api/version/securitycontextconstraints/scc-sa", Name: "scc-sa", }, @@ -124,7 +126,7 @@ func TestAllowed(t *testing.T) { csf := clientsetfake.NewSimpleClientset(namespace, serviceAccount) storage := REST{oscc.NewDefaultSCCMatcher(cache), csf} - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) obj, err := storage.Create(ctx, reviewRequest) if err != nil { t.Errorf("%s - Unexpected error: %v", testName, err) @@ -235,7 +237,7 @@ func TestRequests(t *testing.T) { } csf := clientsetfake.NewSimpleClientset(namespace, serviceAccount) storage := REST{oscc.NewDefaultSCCMatcher(cache), csf} - ctx := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + ctx := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) _, err := storage.Create(ctx, testcase.request) switch { case err == nil && len(testcase.errorMessage) == 0: diff --git a/pkg/security/scc/bypriority_test.go b/pkg/security/scc/bypriority_test.go index 64f732401630..3728bfc161b2 100644 --- a/pkg/security/scc/bypriority_test.go +++ b/pkg/security/scc/bypriority_test.go @@ -4,6 +4,7 @@ import ( "sort" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" ) @@ -79,7 +80,7 @@ func TestByPrioritiesMixedSCCs(t *testing.T) { func testSCC(name string, priority int) *kapi.SecurityContextConstraints { newPriority := int32(priority) return &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Priority: &newPriority, diff --git a/pkg/security/scc/matcher.go b/pkg/security/scc/matcher.go index 238c51e75bac..8d47f0a967f4 100644 --- a/pkg/security/scc/matcher.go +++ b/pkg/security/scc/matcher.go @@ -6,13 +6,14 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" sc "k8s.io/kubernetes/pkg/securitycontext" kscc "k8s.io/kubernetes/pkg/securitycontextconstraints" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" oscache "github.com/openshift/origin/pkg/client/cache" allocator "github.com/openshift/origin/pkg/security" @@ -37,7 +38,7 @@ func NewDefaultSCCMatcher(c *oscache.IndexerToSecurityContextConstraintsLister) // FindApplicableSCCs implements SCCMatcher interface for DefaultSCCMatcher func (d DefaultSCCMatcher) FindApplicableSCCs(userInfo user.Info) ([]*kapi.SecurityContextConstraints, error) { var matchedConstraints []*kapi.SecurityContextConstraints - constraints, err := d.cache.List() + constraints, err := d.cache.List(labels.Everything()) if err != nil { return nil, err } @@ -179,7 +180,7 @@ func getNamespaceByName(name string, ns *kapi.Namespace, client clientset.Interf if ns != nil && name == ns.Name { return ns, nil } - return client.Core().Namespaces().Get(name) + return client.Core().Namespaces().Get(name, metav1.GetOptions{}) } // CreateProvidersFromConstraints creates providers from the constraints supplied, including diff --git a/pkg/security/scc/matcher_test.go b/pkg/security/scc/matcher_test.go index 5b2445b23522..39652d7ee4a3 100644 --- a/pkg/security/scc/matcher_test.go +++ b/pkg/security/scc/matcher_test.go @@ -3,6 +3,7 @@ package scc import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kscc "k8s.io/kubernetes/pkg/securitycontextconstraints" @@ -12,14 +13,14 @@ import ( func TestDeduplicateSecurityContextConstraints(t *testing.T) { duped := []*kapi.SecurityContextConstraints{ - {ObjectMeta: kapi.ObjectMeta{Name: "a"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "a"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "b"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "b"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "c"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "d"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "e"}}, - {ObjectMeta: kapi.ObjectMeta{Name: "e"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "a"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "b"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "b"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "c"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "d"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "e"}}, + {ObjectMeta: metav1.ObjectMeta{Name: "e"}}, } deduped := DeduplicateSecurityContextConstraints(duped) @@ -51,7 +52,7 @@ func TestAssignSecurityContext(t *testing.T) { var uid int64 = 9999 fsGroup := int64(1) scc := &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test scc", }, SELinuxContext: kapi.SELinuxContextStrategyOptions{ @@ -416,7 +417,7 @@ func hasBlock(block uid.Block, blocks []uid.Block) bool { func TestGetPreallocatedFSGroup(t *testing.T) { ns := func() *kapi.Namespace { return &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{}, }, } @@ -492,7 +493,7 @@ func TestGetPreallocatedFSGroup(t *testing.T) { func TestGetPreallocatedSupplementalGroups(t *testing.T) { ns := func() *kapi.Namespace { return &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{}, }, } diff --git a/pkg/security/uidallocator/allocator_test.go b/pkg/security/uidallocator/allocator_test.go index 4d3d80a35826..dcf40c7b5852 100644 --- a/pkg/security/uidallocator/allocator_test.go +++ b/pkg/security/uidallocator/allocator_test.go @@ -3,8 +3,8 @@ package uidallocator import ( "testing" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/registry/core/service/allocator" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/security/uid" ) diff --git a/pkg/service/admission/endpoint_admission.go b/pkg/service/admission/endpoint_admission.go index d84c75962cd4..7e967c67670c 100644 --- a/pkg/service/admission/endpoint_admission.go +++ b/pkg/service/admission/endpoint_admission.go @@ -9,22 +9,21 @@ import ( "github.com/openshift/origin/pkg/client" oadmission "github.com/openshift/origin/pkg/cmd/server/admission" - kadmission "k8s.io/kubernetes/pkg/admission" + admission "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/authorization/authorizer" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/authorizer" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) const RestrictedEndpointsPluginName = "openshift.io/RestrictedEndpointsAdmission" func init() { - kadmission.RegisterPlugin(RestrictedEndpointsPluginName, func(client clientset.Interface, config io.Reader) (kadmission.Interface, error) { + admission.RegisterPlugin(RestrictedEndpointsPluginName, func(client clientset.Interface, config io.Reader) (admission.Interface, error) { return NewRestrictedEndpointsAdmission(nil), nil }) } type restrictedEndpointsAdmission struct { - *kadmission.Handler + *admission.Handler client client.Interface authorizer authorizer.Authorizer @@ -48,7 +47,7 @@ func ParseSimpleCIDRRules(rules []string) (networks []*net.IPNet, err error) { // NewRestrictedEndpointsAdmission creates a new endpoints admission plugin. func NewRestrictedEndpointsAdmission(restrictedNetworks []*net.IPNet) *restrictedEndpointsAdmission { return &restrictedEndpointsAdmission{ - Handler: kadmission.NewHandler(kadmission.Create, kadmission.Update), + Handler: admission.NewHandler(admission.Create, admission.Update), restrictedNetworks: restrictedNetworks, } } @@ -81,7 +80,7 @@ func (r *restrictedEndpointsAdmission) findRestrictedIP(ep *kapi.Endpoints) stri return "" } -func (r *restrictedEndpointsAdmission) checkAccess(attr kadmission.Attributes) (bool, error) { +func (r *restrictedEndpointsAdmission) checkAccess(attr admission.Attributes) (bool, error) { authzAttr := authorizer.AttributesRecord{ User: attr.GetUserInfo(), Verb: "create", @@ -97,7 +96,7 @@ func (r *restrictedEndpointsAdmission) checkAccess(attr kadmission.Attributes) ( } // Admit determines if the endpoints object should be admitted -func (r *restrictedEndpointsAdmission) Admit(a kadmission.Attributes) error { +func (r *restrictedEndpointsAdmission) Admit(a admission.Attributes) error { if a.GetResource().GroupResource() != kapi.Resource("endpoints") { return nil } @@ -120,7 +119,7 @@ func (r *restrictedEndpointsAdmission) Admit(a kadmission.Attributes) error { return err } if !allow { - return kadmission.NewForbidden(a, fmt.Errorf("endpoint address %s is not allowed", restrictedIP)) + return admission.NewForbidden(a, fmt.Errorf("endpoint address %s is not allowed", restrictedIP)) } return nil } diff --git a/pkg/service/admission/externalip_admission.go b/pkg/service/admission/externalip_admission.go index 28e12562ef2e..1d5e8229b59f 100644 --- a/pkg/service/admission/externalip_admission.go +++ b/pkg/service/admission/externalip_admission.go @@ -5,11 +5,10 @@ import ( "net" "strings" - kadmission "k8s.io/kubernetes/pkg/admission" + apierrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/validation/field" + admission "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/util/validation/field" ) const ExternalIPPluginName = "ExternalIPRanger" @@ -21,13 +20,13 @@ func init() { } type externalIPRanger struct { - *kadmission.Handler + *admission.Handler reject []*net.IPNet admit []*net.IPNet allowIngressIP bool } -var _ kadmission.Interface = &externalIPRanger{} +var _ admission.Interface = &externalIPRanger{} // ParseRejectAdmitCIDRRules calculates a blacklist and whitelist from a list of string CIDR rules (treating // a leading ! as a negation). Returns an error if any rule is invalid. @@ -54,7 +53,7 @@ func ParseRejectAdmitCIDRRules(rules []string) (reject, admit []*net.IPNet, err // NewConstraint creates a new SCC constraint admission plugin. func NewExternalIPRanger(reject, admit []*net.IPNet, allowIngressIP bool) *externalIPRanger { return &externalIPRanger{ - Handler: kadmission.NewHandler(kadmission.Create, kadmission.Update), + Handler: admission.NewHandler(admission.Create, admission.Update), reject: reject, admit: admit, allowIngressIP: allowIngressIP, @@ -75,7 +74,7 @@ func (s NetworkSlice) Contains(ip net.IP) bool { } // Admit determines if the service should be admitted based on the configured network CIDR. -func (r *externalIPRanger) Admit(a kadmission.Attributes) error { +func (r *externalIPRanger) Admit(a admission.Attributes) error { if a.GetResource().GroupResource() != kapi.Resource("services") { return nil } @@ -92,7 +91,7 @@ func (r *externalIPRanger) Admit(a kadmission.Attributes) error { // ingress ip since the loadbalancer status cannot be set on // create. ingressIP := "" - retrieveIngressIP := a.GetOperation() == kadmission.Update && + retrieveIngressIP := a.GetOperation() == admission.Update && r.allowIngressIP && svc.Spec.Type == kapi.ServiceTypeLoadBalancer if retrieveIngressIP { old, ok := a.GetOldObject().(*kapi.Service) diff --git a/pkg/service/admission/externalip_admission_test.go b/pkg/service/admission/externalip_admission_test.go index 6b0578ba46bb..da58a8e773ac 100644 --- a/pkg/service/admission/externalip_admission_test.go +++ b/pkg/service/admission/externalip_admission_test.go @@ -5,14 +5,15 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/admission" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" ) // TestAdmission verifies various scenarios involving pod/project/global node label selectors func TestAdmission(t *testing.T) { svc := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, } var oldSvc *kapi.Service @@ -200,7 +201,7 @@ func TestAdmission(t *testing.T) { if len(test.ingressIP) > 0 { // Provide an ingress ip via the previous object state oldSvc = &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Status: kapi.ServiceStatus{ LoadBalancer: kapi.LoadBalancerStatus{ Ingress: []kapi.LoadBalancerIngress{ diff --git a/pkg/service/controller/ingressip/controller.go b/pkg/service/controller/ingressip/controller.go index 7f11064d9106..54020848de16 100644 --- a/pkg/service/controller/ingressip/controller.go +++ b/pkg/service/controller/ingressip/controller.go @@ -8,21 +8,23 @@ import ( "time" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + kv1core "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/registry/core/service/allocator" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" ) const ( @@ -42,7 +44,7 @@ const ( type IngressIPController struct { client kcoreclient.ServicesGetter - controller *cache.Controller + controller cache.Controller maxRetries int @@ -91,11 +93,11 @@ func NewIngressIPController(kc kclientset.Interface, ipNet *net.IPNet, resyncInt ic.cache, ic.controller = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return ic.client.Services(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return ic.client.Services(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return ic.client.Services(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return ic.client.Services(metav1.NamespaceAll).Watch(options) }, }, &kapi.Service{}, diff --git a/pkg/service/controller/ingressip/controller_test.go b/pkg/service/controller/ingressip/controller_test.go index 3e92c71c4c13..e7753eff58fc 100644 --- a/pkg/service/controller/ingressip/controller_test.go +++ b/pkg/service/controller/ingressip/controller_test.go @@ -8,14 +8,15 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" ) const namespace = "ns" @@ -35,17 +36,17 @@ func controllerSetup(t *testing.T, startingObjects []runtime.Object) (*fake.Clie client := fake.NewSimpleClientset(startingObjects...) fakeWatch := watch.NewFake() - client.PrependWatchReactor("*", core.DefaultWatchReactor(fakeWatch, nil)) + client.PrependWatchReactor("*", clientgotesting.DefaultWatchReactor(fakeWatch, nil)) - client.PrependReactor("create", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := action.(core.CreateAction).GetObject() + client.PrependReactor("create", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + obj := action.(clientgotesting.CreateAction).GetObject() fakeWatch.Add(obj) return true, obj, nil }) // Ensure that updates the controller makes are passed through to the watcher. - client.PrependReactor("update", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := action.(core.CreateAction).GetObject() + client.PrependReactor("update", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + obj := action.(clientgotesting.CreateAction).GetObject() fakeWatch.Modify(obj) return true, obj, nil }) @@ -61,7 +62,7 @@ func newService(name, ip string, typeLoadBalancer bool) *kapi.Service { serviceType = kapi.ServiceTypeLoadBalancer } service := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: name, }, diff --git a/pkg/service/controller/servingcert/secret_creating_controller.go b/pkg/service/controller/servingcert/secret_creating_controller.go index a9e218c1c687..c6f2d74a1cd2 100644 --- a/pkg/service/controller/servingcert/secret_creating_controller.go +++ b/pkg/service/controller/servingcert/secret_creating_controller.go @@ -8,17 +8,18 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/server/crypto/extensions" @@ -57,11 +58,11 @@ type ServiceServingCertController struct { maxRetries int serviceCache cache.Store - serviceController *cache.Controller + serviceController cache.Controller serviceHasSynced informerSynced secretCache cache.Store - secretController *cache.Controller + secretController cache.Controller secretHasSynced informerSynced ca *crypto.CA @@ -88,11 +89,11 @@ func NewServiceServingCertController(serviceClient kcoreclient.ServicesGetter, s sc.serviceCache, sc.serviceController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return sc.serviceClient.Services(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return sc.serviceClient.Services(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return sc.serviceClient.Services(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return sc.serviceClient.Services(metav1.NamespaceAll).Watch(options) }, }, &kapi.Service{}, @@ -115,11 +116,11 @@ func NewServiceServingCertController(serviceClient kcoreclient.ServicesGetter, s sc.secretCache, sc.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return sc.secretClient.Secrets(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return sc.secretClient.Secrets(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return sc.secretClient.Secrets(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return sc.secretClient.Secrets(metav1.NamespaceAll).Watch(options) }, }, &kapi.Secret{}, @@ -266,7 +267,7 @@ func (sc *ServiceServingCertController) syncService(key string) error { } secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: service.Namespace, Name: service.Annotations[ServingCertSecretAnnotation], Annotations: map[string]string{ @@ -297,7 +298,7 @@ func (sc *ServiceServingCertController) syncService(key string) error { return err } if kapierrors.IsAlreadyExists(err) { - actualSecret, err := sc.secretClient.Secrets(service.Namespace).Get(secret.Name) + actualSecret, err := sc.secretClient.Secrets(service.Namespace).Get(secret.Name, metav1.GetOptions{}) if err != nil { // if we have an error creating the secret, then try to update the service with that information. If it fails, // then we'll just try again later on re-list or because the service had already been updated and we'll get triggered again. diff --git a/pkg/service/controller/servingcert/secret_creating_controller_test.go b/pkg/service/controller/servingcert/secret_creating_controller_test.go index f8091e18c397..60b04dad4c69 100644 --- a/pkg/service/controller/servingcert/secret_creating_controller_test.go +++ b/pkg/service/controller/servingcert/secret_creating_controller_test.go @@ -10,13 +10,13 @@ import ( "testing" "time" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/server/admin" "github.com/openshift/origin/pkg/cmd/server/crypto/extensions" @@ -43,14 +43,14 @@ func controllerSetup(startingObjects []runtime.Object, stopChannel chan struct{} kubeclient := fake.NewSimpleClientset(startingObjects...) fakeWatch := watch.NewFake() fakeSecretWatch := watch.NewFake() - kubeclient.PrependReactor("create", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, action.(core.CreateAction).GetObject(), nil + kubeclient.PrependReactor("create", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, action.(clientgotesting.CreateAction).GetObject(), nil }) - kubeclient.PrependReactor("update", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, action.(core.UpdateAction).GetObject(), nil + kubeclient.PrependReactor("update", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, action.(clientgotesting.UpdateAction).GetObject(), nil }) - kubeclient.PrependWatchReactor("services", core.DefaultWatchReactor(fakeWatch, nil)) - kubeclient.PrependWatchReactor("secrets", core.DefaultWatchReactor(fakeSecretWatch, nil)) + kubeclient.PrependWatchReactor("services", clientgotesting.DefaultWatchReactor(fakeWatch, nil)) + kubeclient.PrependWatchReactor("secrets", clientgotesting.DefaultWatchReactor(fakeSecretWatch, nil)) controller := NewServiceServingCertController(kubeclient.Core(), kubeclient.Core(), ca, "cluster.local", 10*time.Minute) controller.serviceHasSynced = func() bool { return true } @@ -148,7 +148,7 @@ func TestBasicControllerFlow(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("create", "secrets"): - createSecret := action.(core.CreateAction) + createSecret := action.(clientgotesting.CreateAction) newSecret := createSecret.GetObject().(*kapi.Secret) if newSecret.Name != expectedSecretName { t.Errorf("expected %v, got %v", expectedSecretName, newSecret.Name) @@ -168,7 +168,7 @@ func TestBasicControllerFlow(t *testing.T) { foundSecret = true case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) @@ -205,7 +205,7 @@ func TestAlreadyExistingSecretControllerFlow(t *testing.T) { existingSecret.Annotations = expectedSecretAnnotations caName, kubeclient, fakeWatch, _, controller := controllerSetup([]runtime.Object{existingSecret}, stopChannel, t) - kubeclient.PrependReactor("create", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("create", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, kapierrors.NewAlreadyExists(kapi.Resource("secrets"), "new-secret") }) controller.syncHandler = func(serviceKey string) error { @@ -244,7 +244,7 @@ func TestAlreadyExistingSecretControllerFlow(t *testing.T) { foundSecret = true case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) @@ -282,7 +282,7 @@ func TestAlreadyExistingSecretForDifferentUIDControllerFlow(t *testing.T) { existingSecret.Annotations = map[string]string{ServiceUIDAnnotation: "wrong-uid", ServiceNameAnnotation: serviceName} _, kubeclient, fakeWatch, _, controller := controllerSetup([]runtime.Object{existingSecret}, stopChannel, t) - kubeclient.PrependReactor("create", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("create", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, kapierrors.NewAlreadyExists(kapi.Resource("secrets"), "new-secret") }) controller.syncHandler = func(serviceKey string) error { @@ -321,7 +321,7 @@ func TestAlreadyExistingSecretForDifferentUIDControllerFlow(t *testing.T) { foundSecret = true case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) @@ -352,7 +352,7 @@ func TestSecretCreationErrorControllerFlow(t *testing.T) { namespace := "ns" _, kubeclient, fakeWatch, _, controller := controllerSetup([]runtime.Object{}, stopChannel, t) - kubeclient.PrependReactor("create", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("create", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, kapierrors.NewForbidden(kapi.Resource("secrets"), "new-secret", fmt.Errorf("any reason")) }) controller.syncHandler = func(serviceKey string) error { @@ -387,7 +387,7 @@ func TestSecretCreationErrorControllerFlow(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) @@ -414,13 +414,13 @@ func TestSkipGenerationControllerFlow(t *testing.T) { namespace := "ns" caName, kubeclient, fakeWatch, _, controller := controllerSetup([]runtime.Object{}, stopChannel, t) - kubeclient.PrependReactor("update", "service", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("update", "service", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Service{}, kapierrors.NewForbidden(kapi.Resource("fdsa"), "new-service", fmt.Errorf("any service reason")) }) - kubeclient.PrependReactor("create", "secret", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("create", "secret", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, kapierrors.NewForbidden(kapi.Resource("asdf"), "new-secret", fmt.Errorf("any reason")) }) - kubeclient.PrependReactor("update", "secret", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("update", "secret", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, kapierrors.NewForbidden(kapi.Resource("asdf"), "new-secret", fmt.Errorf("any reason")) }) controller.syncHandler = func(serviceKey string) error { @@ -524,7 +524,7 @@ func TestRecreateSecretControllerFlow(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("create", "secrets"): - createSecret := action.(core.CreateAction) + createSecret := action.(clientgotesting.CreateAction) newSecret := createSecret.GetObject().(*kapi.Secret) if newSecret.Name != expectedSecretName { t.Errorf("expected %v, got %v", expectedSecretName, newSecret.Name) @@ -544,7 +544,7 @@ func TestRecreateSecretControllerFlow(t *testing.T) { foundSecret = true case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) @@ -576,7 +576,7 @@ func TestRecreateSecretControllerFlow(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("create", "secrets"): - createSecret := action.(core.CreateAction) + createSecret := action.(clientgotesting.CreateAction) newSecret := createSecret.GetObject().(*kapi.Secret) if newSecret.Name != expectedSecretName { t.Errorf("expected %v, got %v", expectedSecretName, newSecret.Name) @@ -596,7 +596,7 @@ func TestRecreateSecretControllerFlow(t *testing.T) { foundSecret = true case action.Matches("update", "services"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) service := updateService.GetObject().(*kapi.Service) if !reflect.DeepEqual(service.Annotations, expectedServiceAnnotations) { t.Errorf("expected %v, got %v", expectedServiceAnnotations, service.Annotations) diff --git a/pkg/service/controller/servingcert/secret_updating_controller.go b/pkg/service/controller/servingcert/secret_updating_controller.go index 34a99c151003..15de8336f573 100644 --- a/pkg/service/controller/servingcert/secret_updating_controller.go +++ b/pkg/service/controller/servingcert/secret_updating_controller.go @@ -6,16 +6,17 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/server/crypto" "github.com/openshift/origin/pkg/cmd/server/crypto/extensions" @@ -30,11 +31,11 @@ type ServiceServingCertUpdateController struct { queue workqueue.RateLimitingInterface serviceCache cache.Store - serviceController *cache.Controller + serviceController cache.Controller serviceHasSynced informerSynced secretCache cache.Store - secretController *cache.Controller + secretController cache.Controller secretHasSynced informerSynced ca *crypto.CA @@ -63,11 +64,11 @@ func NewServiceServingCertUpdateController(serviceClient kcoreclient.ServicesGet sc.serviceCache, sc.serviceController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return serviceClient.Services(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return serviceClient.Services(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return serviceClient.Services(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return serviceClient.Services(metav1.NamespaceAll).Watch(options) }, }, &kapi.Service{}, @@ -78,11 +79,11 @@ func NewServiceServingCertUpdateController(serviceClient kcoreclient.ServicesGet sc.secretCache, sc.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return sc.secretClient.Secrets(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return sc.secretClient.Secrets(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return sc.secretClient.Secrets(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return sc.secretClient.Secrets(metav1.NamespaceAll).Watch(options) }, }, &kapi.Secret{}, diff --git a/pkg/service/controller/servingcert/secret_updating_controller_test.go b/pkg/service/controller/servingcert/secret_updating_controller_test.go index e56a0793a63a..38c5d6e967f0 100644 --- a/pkg/service/controller/servingcert/secret_updating_controller_test.go +++ b/pkg/service/controller/servingcert/secret_updating_controller_test.go @@ -4,9 +4,10 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/types" ) func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { @@ -20,7 +21,7 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "no service annotation", primeServices: func(serviceCache cache.Store) {}, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{}, }, @@ -31,7 +32,7 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "missing service", primeServices: func(serviceCache cache.Store) {}, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -44,11 +45,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "service-uid-mismatch", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-2"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-2"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -62,11 +63,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "service secret name mismatch", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret2"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret2"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -80,11 +81,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "no expiry", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -98,11 +99,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "bad expiry", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -117,11 +118,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "expired expiry", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", @@ -136,11 +137,11 @@ func TestRequiresRegenerationServiceUIDMismatch(t *testing.T) { name: "distant expiry", primeServices: func(serviceCache cache.Store) { serviceCache.Add(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, + ObjectMeta: metav1.ObjectMeta{Namespace: "ns1", Name: "foo", UID: types.UID("uid-1"), Annotations: map[string]string{ServingCertSecretAnnotation: "mysecret"}}, }) }, secret: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns1", Name: "mysecret", Annotations: map[string]string{ ServiceNameAnnotation: "foo", diff --git a/pkg/service/environmentresolvercache.go b/pkg/service/environmentresolvercache.go index 55b559c01781..50da14a1af95 100644 --- a/pkg/service/environmentresolvercache.go +++ b/pkg/service/environmentresolvercache.go @@ -7,6 +7,7 @@ import ( "strings" "sync" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/api" ) @@ -21,7 +22,7 @@ type serviceEntry struct { } // ResolverCacheFunc is used for resolving names to services -type ResolverCacheFunc func(name string) (*api.Service, error) +type ResolverCacheFunc func(name string, options metav1.GetOptions) (*api.Service, error) // ServiceResolverCache is a cache used for resolving names to services type ServiceResolverCache struct { @@ -53,7 +54,7 @@ func (c *ServiceResolverCache) get(name string) (host, port string, ok bool) { if entry, found := c.cache[name]; found { return entry.host, entry.port, true } - service, err := c.fill(name) + service, err := c.fill(name, metav1.GetOptions{}) if err != nil { return } diff --git a/pkg/service/environmentresolvercache_test.go b/pkg/service/environmentresolvercache_test.go index 147c78770db8..0d602fdb9cc0 100644 --- a/pkg/service/environmentresolvercache_test.go +++ b/pkg/service/environmentresolvercache_test.go @@ -3,16 +3,17 @@ package service import ( "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" ) func TestServiceResolverCacheEmpty(t *testing.T) { fakeClient := fake.NewSimpleClientset(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, Spec: kapi.ServiceSpec{ Ports: []kapi.ServicePort{{Port: 80}}, @@ -40,7 +41,7 @@ type fakeRetriever struct { err error } -func (r fakeRetriever) Get(name string) (*kapi.Service, error) { +func (r fakeRetriever) Get(name string, options metav1.GetOptions) (*kapi.Service, error) { return r.service, r.err } diff --git a/pkg/serviceaccounts/client.go b/pkg/serviceaccounts/client.go index 50c138bb79bb..8f6157820b29 100644 --- a/pkg/serviceaccounts/client.go +++ b/pkg/serviceaccounts/client.go @@ -4,9 +4,10 @@ import ( "fmt" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" "github.com/openshift/origin/pkg/client" ) @@ -30,7 +31,7 @@ func (s *ClientLookupTokenRetriever) GetToken(namespace, name string) (string, e } // Get the service account - serviceAccount, err := s.Client.Core().ServiceAccounts(namespace).Get(name) + serviceAccount, err := s.Client.Core().ServiceAccounts(namespace).Get(name, metav1.GetOptions{}) if err != nil { continue } @@ -38,7 +39,7 @@ func (s *ClientLookupTokenRetriever) GetToken(namespace, name string) (string, e // Get the secrets // TODO: JTL: create one directly once we have that ability for _, secretRef := range serviceAccount.Secrets { - secret, err2 := s.Client.Core().Secrets(namespace).Get(secretRef.Name) + secret, err2 := s.Client.Core().Secrets(namespace).Get(secretRef.Name, metav1.GetOptions{}) if err2 != nil { // Tolerate fetch errors on a particular secret continue diff --git a/pkg/serviceaccounts/controllers/create_dockercfg_secrets.go b/pkg/serviceaccounts/controllers/create_dockercfg_secrets.go index a4e0dc450393..9a86399b9218 100644 --- a/pkg/serviceaccounts/controllers/create_dockercfg_secrets.go +++ b/pkg/serviceaccounts/controllers/create_dockercfg_secrets.go @@ -9,22 +9,23 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/retry" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/credentialprovider" - "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/registry/core/secret" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" osautil "github.com/openshift/origin/pkg/serviceaccounts/util" ) @@ -69,10 +70,10 @@ func NewDockercfgController(cl kclientset.Interface, options DockercfgController var serviceAccountCache cache.Store serviceAccountCache, e.serviceAccountController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options api.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return e.client.Core().ServiceAccounts(api.NamespaceAll).List(options) }, - WatchFunc: func(options api.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return e.client.Core().ServiceAccounts(api.NamespaceAll).Watch(options) }, }, @@ -97,12 +98,12 @@ func NewDockercfgController(cl kclientset.Interface, options DockercfgController tokenSecretSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeServiceAccountToken)) e.secretCache, e.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options api.ListOptions) (runtime.Object, error) { - options.FieldSelector = tokenSecretSelector + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + options.FieldSelector = tokenSecretSelector.String() return e.client.Core().Secrets(api.NamespaceAll).List(options) }, - WatchFunc: func(options api.ListOptions) (watch.Interface, error) { - options.FieldSelector = tokenSecretSelector + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + options.FieldSelector = tokenSecretSelector.String() return e.client.Core().Secrets(api.NamespaceAll).Watch(options) }, }, @@ -129,9 +130,9 @@ type DockercfgController struct { dockerURLsIntialized chan struct{} serviceAccountCache MutationCache - serviceAccountController *cache.Controller + serviceAccountController cache.Controller secretCache cache.Store - secretController *cache.Controller + secretController cache.Controller queue workqueue.RateLimitingInterface @@ -190,7 +191,7 @@ func (e *DockercfgController) handleTokenSecretDelete(obj interface{}) { func (e *DockercfgController) enqueueServiceAccountForToken(tokenSecret *api.Secret) { serviceAccount := &api.ServiceAccount{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: tokenSecret.Annotations[api.ServiceAccountNameKey], Namespace: tokenSecret.Namespace, UID: types.UID(tokenSecret.Annotations[api.ServiceAccountUIDKey]), @@ -443,7 +444,7 @@ func (e *DockercfgController) createTokenSecret(serviceAccount *api.ServiceAccou // Try to create the named pending token tokenSecret := &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: pendingTokenName, Namespace: serviceAccount.Namespace, Annotations: map[string]string{ @@ -480,7 +481,7 @@ func (e *DockercfgController) createDockerPullSecret(serviceAccount *api.Service } dockercfgSecret := &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: secret.Strategy.GenerateName(osautil.GetDockercfgSecretNamePrefix(serviceAccount)), Namespace: tokenSecret.Namespace, Annotations: map[string]string{ diff --git a/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets.go b/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets.go index 68e4d47ca03b..9d6e314b245f 100644 --- a/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets.go +++ b/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets.go @@ -6,15 +6,16 @@ import ( "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" ) // NumServiceAccountUpdateRetries controls the number of times we will retry on conflict errors. @@ -37,12 +38,12 @@ func NewDockercfgDeletedController(cl kclientset.Interface, options DockercfgDel dockercfgSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg)) _, e.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options api.ListOptions) (runtime.Object, error) { - opts := api.ListOptions{FieldSelector: dockercfgSelector} + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + opts := metav1.ListOptions{FieldSelector: dockercfgSelector.String()} return e.client.Core().Secrets(api.NamespaceAll).List(opts) }, - WatchFunc: func(options api.ListOptions) (watch.Interface, error) { - opts := api.ListOptions{FieldSelector: dockercfgSelector, ResourceVersion: options.ResourceVersion} + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{FieldSelector: dockercfgSelector.String(), ResourceVersion: options.ResourceVersion} return e.client.Core().Secrets(api.NamespaceAll).Watch(opts) }, }, @@ -63,7 +64,7 @@ type DockercfgDeletedController struct { client kclientset.Interface - secretController *cache.Controller + secretController cache.Controller } // Runs controller loops and returns immediately @@ -165,7 +166,7 @@ func (e *DockercfgDeletedController) getServiceAccount(secret *api.Secret) (*api return nil, nil } - serviceAccount, err := e.client.Core().ServiceAccounts(secret.Namespace).Get(saName) + serviceAccount, err := e.client.Core().ServiceAccounts(secret.Namespace).Get(saName, metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets_test.go b/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets_test.go index 80ddd3979d5d..74dab02d0570 100644 --- a/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets_test.go +++ b/pkg/serviceaccounts/controllers/deleted_dockercfg_secrets_test.go @@ -5,11 +5,11 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" ) func TestDockercfgDeletion(t *testing.T) { @@ -18,34 +18,34 @@ func TestDockercfgDeletion(t *testing.T) { DeletedSecret *api.Secret - ExpectedActions []core.Action + ExpectedActions []clientgotesting.Action }{ "deleted dockercfg secret without serviceaccount": { DeletedSecret: createdDockercfgSecret(), - ExpectedActions: []core.Action{ - core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(schema.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, "deleted dockercfg secret with serviceaccount with reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: createdDockercfgSecret(), - ExpectedActions: []core.Action{ - core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), - core.NewUpdateAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(schema.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), + clientgotesting.NewUpdateAction(schema.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, "deleted dockercfg secret with serviceaccount without reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: createdDockercfgSecret(), - ExpectedActions: []core.Action{ - core.NewGetAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), - core.NewUpdateAction(unversioned.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(schema.GroupVersionResource{Resource: "serviceaccounts"}, "default", "default"), + clientgotesting.NewUpdateAction(schema.GroupVersionResource{Resource: "serviceaccounts"}, "default", serviceAccount(tokenSecretReferences(), emptyImagePullSecretReferences())), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "token-secret-1"), }, }, } diff --git a/pkg/serviceaccounts/controllers/deleted_token_secrets.go b/pkg/serviceaccounts/controllers/deleted_token_secrets.go index ffcd23947174..f8a997754443 100644 --- a/pkg/serviceaccounts/controllers/deleted_token_secrets.go +++ b/pkg/serviceaccounts/controllers/deleted_token_secrets.go @@ -5,14 +5,15 @@ import ( "github.com/golang/glog" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" ) // DockercfgTokenDeletedControllerOptions contains options for the DockercfgTokenDeletedController @@ -31,12 +32,12 @@ func NewDockercfgTokenDeletedController(cl kclientset.Interface, options Dockerc dockercfgSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeServiceAccountToken)) _, e.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options api.ListOptions) (runtime.Object, error) { - opts := api.ListOptions{FieldSelector: dockercfgSelector} + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + opts := metav1.ListOptions{FieldSelector: dockercfgSelector.String()} return e.client.Core().Secrets(api.NamespaceAll).List(opts) }, - WatchFunc: func(options api.ListOptions) (watch.Interface, error) { - opts := api.ListOptions{FieldSelector: dockercfgSelector, ResourceVersion: options.ResourceVersion} + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + opts := metav1.ListOptions{FieldSelector: dockercfgSelector.String(), ResourceVersion: options.ResourceVersion} return e.client.Core().Secrets(api.NamespaceAll).Watch(opts) }, }, @@ -57,7 +58,7 @@ type DockercfgTokenDeletedController struct { client kclientset.Interface - secretController *cache.Controller + secretController cache.Controller } // Runs controller loops and returns immediately @@ -104,7 +105,7 @@ func (e *DockercfgTokenDeletedController) secretDeleted(obj interface{}) { func (e *DockercfgTokenDeletedController) findDockercfgSecrets(tokenSecret *api.Secret) ([]*api.Secret, error) { dockercfgSecrets := []*api.Secret{} - options := api.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg))} + options := metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg)).String()} potentialSecrets, err := e.client.Core().Secrets(tokenSecret.Namespace).List(options) if err != nil { return nil, err diff --git a/pkg/serviceaccounts/controllers/deleted_token_secrets_test.go b/pkg/serviceaccounts/controllers/deleted_token_secrets_test.go index cf9150bccb7b..f36aae979042 100644 --- a/pkg/serviceaccounts/controllers/deleted_token_secrets_test.go +++ b/pkg/serviceaccounts/controllers/deleted_token_secrets_test.go @@ -5,12 +5,13 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" ) // emptySecretReferences is used by a service account without any secrets @@ -49,7 +50,7 @@ func imagePullSecretReferences() []api.LocalObjectReference { // serviceAccount returns a service account with the given secret refs func serviceAccount(secretRefs []api.ObjectReference, imagePullSecretRefs []api.LocalObjectReference) *api.ServiceAccount { return &api.ServiceAccount{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default", UID: "12345", Namespace: "default", @@ -64,7 +65,7 @@ func serviceAccount(secretRefs []api.ObjectReference, imagePullSecretRefs []api. // Named "default-token-fplln", since that is the first generated name after rand.Seed(1) func createdDockercfgSecret() *api.Secret { return &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "default-dockercfg-fplln", Namespace: "default", Annotations: map[string]string{ @@ -83,7 +84,7 @@ func createdDockercfgSecret() *api.Secret { // opaqueSecret returns a persisted non-ServiceAccountToken secret named "regular-secret-1" func opaqueSecret() *api.Secret { return &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "regular-secret-1", Namespace: "default", UID: "23456", @@ -99,7 +100,7 @@ func opaqueSecret() *api.Secret { // serviceAccountTokenSecret returns an existing ServiceAccountToken secret named "token-secret-1" func serviceAccountTokenSecret() *api.Secret { return &api.Secret{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "token-secret-1", Namespace: "default", UID: "23456", @@ -131,33 +132,33 @@ func TestTokenDeletion(t *testing.T) { DeletedSecret *api.Secret - ExpectedActions []core.Action + ExpectedActions []clientgotesting.Action }{ "deleted token secret without serviceaccount": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: serviceAccountTokenSecret(), - ExpectedActions: []core.Action{ - core.NewListAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", api.ListOptions{FieldSelector: dockercfgSecretFieldSelector}), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewListAction(schema.GroupVersionResource{Resource: "secrets"}, "default", metav1.ListOptions{FieldSelector: dockercfgSecretFieldSelector.String()}), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), }, }, "deleted token secret with serviceaccount with reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: serviceAccountTokenSecret(), - ExpectedActions: []core.Action{ - core.NewListAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", api.ListOptions{FieldSelector: dockercfgSecretFieldSelector}), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewListAction(schema.GroupVersionResource{Resource: "secrets"}, "default", metav1.ListOptions{FieldSelector: dockercfgSecretFieldSelector.String()}), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), }, }, "deleted token secret with serviceaccount without reference": { ClientObjects: []runtime.Object{serviceAccount(addTokenSecretReference(tokenSecretReferences()), imagePullSecretReferences()), createdDockercfgSecret()}, DeletedSecret: serviceAccountTokenSecret(), - ExpectedActions: []core.Action{ - core.NewListAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", api.ListOptions{FieldSelector: dockercfgSecretFieldSelector}), - core.NewDeleteAction(unversioned.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), + ExpectedActions: []clientgotesting.Action{ + clientgotesting.NewListAction(schema.GroupVersionResource{Resource: "secrets"}, "default", metav1.ListOptions{FieldSelector: dockercfgSecretFieldSelector.String()}), + clientgotesting.NewDeleteAction(schema.GroupVersionResource{Resource: "secrets"}, "default", "default-dockercfg-fplln"), }, }, } diff --git a/pkg/serviceaccounts/controllers/docker_registry_service.go b/pkg/serviceaccounts/controllers/docker_registry_service.go index 83c2626abd9d..e0bff24ec41b 100644 --- a/pkg/serviceaccounts/controllers/docker_registry_service.go +++ b/pkg/serviceaccounts/controllers/docker_registry_service.go @@ -9,18 +9,19 @@ import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/credentialprovider" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" ) // DockerRegistryServiceControllerOptions contains options for the DockerRegistryServiceController @@ -52,12 +53,12 @@ func NewDockerRegistryServiceController(cl kclientset.Interface, options DockerR e.serviceCache, e.serviceController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(opts kapi.ListOptions) (runtime.Object, error) { - opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", options.RegistryServiceName) + ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", options.RegistryServiceName).String() return e.client.Core().Services(options.RegistryNamespace).List(opts) }, - WatchFunc: func(opts kapi.ListOptions) (watch.Interface, error) { - opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", options.RegistryServiceName) + WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fields.OneTermEqualSelector("metadata.name", options.RegistryServiceName).String() return e.client.Core().Services(options.RegistryNamespace).Watch(opts) }, }, @@ -78,14 +79,14 @@ func NewDockerRegistryServiceController(cl kclientset.Interface, options DockerR e.servicesSynced = e.serviceController.HasSynced e.syncRegistryLocationHandler = e.syncRegistryLocationChange - dockercfgOptions := kapi.ListOptions{FieldSelector: fields.SelectorFromSet(map[string]string{kapi.SecretTypeField: string(kapi.SecretTypeDockercfg)})} + dockercfgOptions := metav1.ListOptions{FieldSelector: fields.SelectorFromSet(map[string]string{kapi.SecretTypeField: string(kapi.SecretTypeDockercfg)}).String()} e.secretCache, e.secretController = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(opts kapi.ListOptions) (runtime.Object, error) { - return e.client.Core().Secrets(kapi.NamespaceAll).List(dockercfgOptions) + ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + return e.client.Core().Secrets(metav1.NamespaceAll).List(dockercfgOptions) }, - WatchFunc: func(opts kapi.ListOptions) (watch.Interface, error) { - return e.client.Core().Secrets(kapi.NamespaceAll).Watch(dockercfgOptions) + WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + return e.client.Core().Secrets(metav1.NamespaceAll).Watch(dockercfgOptions) }, }, &kapi.Secret{}, @@ -107,12 +108,12 @@ type DockerRegistryServiceController struct { dockercfgController *DockercfgController - serviceController *cache.Controller + serviceController cache.Controller serviceCache cache.Store servicesSynced func() bool syncRegistryLocationHandler func(key string) error - secretController *cache.Controller + secretController cache.Controller secretCache cache.Store secretsSynced func() bool syncSecretHandler func(key string) error @@ -228,7 +229,7 @@ func (e *DockerRegistryServiceController) watchForDockerURLChanges() { // getDockerRegistryLocations returns the dns form and the ip form of the secret func (e *DockerRegistryServiceController) getDockerRegistryLocations() []string { - key, err := controller.KeyFunc(&kapi.Service{ObjectMeta: kapi.ObjectMeta{Name: e.serviceName, Namespace: e.serviceNamespace}}) + key, err := controller.KeyFunc(&kapi.Service{ObjectMeta: metav1.ObjectMeta{Name: e.serviceName, Namespace: e.serviceNamespace}}) if err != nil { return []string{} } diff --git a/pkg/serviceaccounts/controllers/docker_registry_service_test.go b/pkg/serviceaccounts/controllers/docker_registry_service_test.go index a80f415820df..a75bbea201c2 100644 --- a/pkg/serviceaccounts/controllers/docker_registry_service_test.go +++ b/pkg/serviceaccounts/controllers/docker_registry_service_test.go @@ -7,12 +7,13 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/credentialprovider" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) const ( @@ -22,7 +23,7 @@ const ( var ( registryService = &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Name: registryName, Namespace: registryNamespace}, + ObjectMeta: metav1.ObjectMeta{Name: registryName, Namespace: registryNamespace}, Spec: kapi.ServiceSpec{ ClusterIP: "172.16.123.123", Ports: []kapi.ServicePort{{Port: 1235}}, @@ -33,13 +34,13 @@ var ( func controllerSetup(startingObjects []runtime.Object, t *testing.T) (*fake.Clientset, *watch.FakeWatcher, *DockerRegistryServiceController) { kubeclient := fake.NewSimpleClientset(startingObjects...) fakeWatch := watch.NewFake() - kubeclient.PrependReactor("create", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, action.(core.CreateAction).GetObject(), nil + kubeclient.PrependReactor("create", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, action.(clientgotesting.CreateAction).GetObject(), nil }) - kubeclient.PrependReactor("update", "*", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, action.(core.UpdateAction).GetObject(), nil + kubeclient.PrependReactor("update", "*", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { + return true, action.(clientgotesting.UpdateAction).GetObject(), nil }) - kubeclient.PrependWatchReactor("services", core.DefaultWatchReactor(fakeWatch, nil)) + kubeclient.PrependWatchReactor("services", clientgotesting.DefaultWatchReactor(fakeWatch, nil)) controller := NewDockerRegistryServiceController(kubeclient, DockerRegistryServiceControllerOptions{ Resync: 10 * time.Minute, @@ -71,10 +72,10 @@ func TestNoChangeNoOp(t *testing.T) { received := make(chan bool) kubeclient, fakeWatch, controller := controllerSetup([]runtime.Object{registryService}, t) - kubeclient.PrependReactor("update", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("update", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, fmt.Errorf("%v unexpected", action) }) - kubeclient.PrependReactor("create", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("create", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, &kapi.Secret{}, fmt.Errorf("%v unexpected", action) }) controller.syncRegistryLocationHandler = wrapHandler(received, controller.syncRegistryLocationChange, t) @@ -104,7 +105,7 @@ func TestUpdateNewStyleSecret(t *testing.T) { updatedSecret := make(chan bool) newStyleDockercfgSecret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "secret-name", Namespace: registryNamespace, Annotations: map[string]string{ ServiceAccountTokenValueAnnotation: "the-token", @@ -154,7 +155,7 @@ func TestUpdateNewStyleSecret(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "secrets"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) secret := updateService.GetObject().(*kapi.Secret) actualDockercfg := &credentialprovider.DockerConfig{} if err := json.Unmarshal(secret.Data[kapi.DockerConfigKey], actualDockercfg); err != nil { @@ -193,7 +194,7 @@ func TestUpdateOldStyleSecretWithKey(t *testing.T) { t.Fatalf("unexpected err %v", err) } oldStyleDockercfgSecret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "secret-name", Namespace: registryNamespace, Annotations: map[string]string{ ServiceAccountTokenSecretNameKey: "sa-token-secret", @@ -243,7 +244,7 @@ func TestUpdateOldStyleSecretWithKey(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "secrets"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) secret := updateService.GetObject().(*kapi.Secret) actualDockercfg := &credentialprovider.DockerConfig{} if err := json.Unmarshal(secret.Data[kapi.DockerConfigKey], actualDockercfg); err != nil { @@ -270,7 +271,7 @@ func TestUpdateOldStyleSecretWithoutKey(t *testing.T) { updatedSecret := make(chan bool) oldStyleDockercfgSecret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "secret-name", Namespace: registryNamespace, Annotations: map[string]string{ ServiceAccountTokenSecretNameKey: "sa-token-secret", @@ -280,7 +281,7 @@ func TestUpdateOldStyleSecretWithoutKey(t *testing.T) { Data: map[string][]byte{kapi.DockerConfigKey: []byte("{}")}, } tokenSecret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "sa-token-secret", Namespace: registryNamespace, Annotations: map[string]string{ ServiceAccountTokenSecretNameKey: "sa-token-secret", @@ -291,7 +292,7 @@ func TestUpdateOldStyleSecretWithoutKey(t *testing.T) { } kubeclient, fakeWatch, controller := controllerSetup([]runtime.Object{tokenSecret, oldStyleDockercfgSecret}, t) - kubeclient.PrependReactor("get", "secrets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + kubeclient.PrependReactor("get", "secrets", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, tokenSecret, nil }) controller.syncRegistryLocationHandler = wrapHandler(received, controller.syncRegistryLocationChange, t) @@ -333,7 +334,7 @@ func TestUpdateOldStyleSecretWithoutKey(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "secrets"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) secret := updateService.GetObject().(*kapi.Secret) actualDockercfg := &credentialprovider.DockerConfig{} if err := json.Unmarshal(secret.Data[kapi.DockerConfigKey], actualDockercfg); err != nil { @@ -372,7 +373,7 @@ func TestClearSecretAndRecreate(t *testing.T) { t.Fatalf("unexpected err %v", err) } oldStyleDockercfgSecret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "secret-name", Namespace: registryNamespace, Annotations: map[string]string{ ServiceAccountTokenValueAnnotation: "the-token", @@ -414,7 +415,7 @@ func TestClearSecretAndRecreate(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "secrets"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) secret := updateService.GetObject().(*kapi.Secret) actualDockercfg := &credentialprovider.DockerConfig{} if err := json.Unmarshal(secret.Data[kapi.DockerConfigKey], actualDockercfg); err != nil { @@ -461,7 +462,7 @@ func TestClearSecretAndRecreate(t *testing.T) { for _, action := range kubeclient.Actions() { switch { case action.Matches("update", "secrets"): - updateService := action.(core.UpdateAction) + updateService := action.(clientgotesting.UpdateAction) secret := updateService.GetObject().(*kapi.Secret) actualDockercfg := &credentialprovider.DockerConfig{} if err := json.Unmarshal(secret.Data[kapi.DockerConfigKey], actualDockercfg); err != nil { diff --git a/pkg/serviceaccounts/controllers/mutation_cache.go b/pkg/serviceaccounts/controllers/mutation_cache.go index f22e783c2156..7765225a76d9 100644 --- a/pkg/serviceaccounts/controllers/mutation_cache.go +++ b/pkg/serviceaccounts/controllers/mutation_cache.go @@ -3,11 +3,11 @@ package controllers import ( lru "github.com/hashicorp/golang-lru" - "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/storage/etcd" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage/etcd" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" ) // MutationCache is able to take the result of update operations and stores them in an LRU diff --git a/pkg/serviceaccounts/oauthclient/oauthclientregistry.go b/pkg/serviceaccounts/oauthclient/oauthclientregistry.go index 2b27f8ae361f..4213e58a70d3 100644 --- a/pkg/serviceaccounts/oauthclient/oauthclientregistry.go +++ b/pkg/serviceaccounts/oauthclient/oauthclientregistry.go @@ -7,9 +7,13 @@ import ( "strconv" "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/serviceaccount" scopeauthorizer "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -17,8 +21,7 @@ import ( oauthapi "github.com/openshift/origin/pkg/oauth/api" "github.com/openshift/origin/pkg/oauth/registry/oauthclient" routeapi "github.com/openshift/origin/pkg/route/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" ) const ( @@ -47,7 +50,7 @@ var modelPrefixes = []string{ // These values can be overridden by user specified data. type namesToObjMapperFunc func(namespace string, names sets.String) map[string]redirectURIList -var emptyGroupKind = unversioned.GroupKind{} // Used with static redirect URIs +var emptyGroupKind = schema.GroupKind{} // Used with static redirect URIs var routeGroupKind = routeapi.SchemeGroupVersion.WithKind(routeKind).GroupKind() var legacyRouteGroupKind = routeapi.LegacySchemeGroupVersion.WithKind(routeKind).GroupKind() // to support redirect reference with old group @@ -83,8 +86,8 @@ type model struct { } // getGroupKind is used to determine if a group and kind combination is supported. -func (m *model) getGroupKind() unversioned.GroupKind { - return unversioned.GroupKind{Group: m.group, Kind: m.kind} +func (m *model) getGroupKind() schema.GroupKind { + return schema.GroupKind{Group: m.group, Kind: m.kind} } // updateFromURI updates the data in the model with the user provided URL data. @@ -187,13 +190,13 @@ func NewServiceAccountOAuthClientGetter(saClient kcoreclient.ServiceAccountsGett return &saOAuthClientAdapter{saClient: saClient, secretClient: secretClient, routeClient: routeClient, delegate: delegate, grantMethod: grantMethod, decoder: kapi.Codecs.UniversalDecoder()} } -func (a *saOAuthClientAdapter) GetClient(ctx kapi.Context, name string) (*oauthapi.OAuthClient, error) { - saNamespace, saName, err := serviceaccount.SplitUsername(name) +func (a *saOAuthClientAdapter) GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*oauthapi.OAuthClient, error) { + saNamespace, saName, err := apiserverserviceaccount.SplitUsername(name) if err != nil { - return a.delegate.GetClient(ctx, name) + return a.delegate.GetClient(ctx, name, options) } - sa, err := a.saClient.ServiceAccounts(saNamespace).Get(saName) + sa, err := a.saClient.ServiceAccounts(saNamespace).Get(saName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -222,7 +225,7 @@ func (a *saOAuthClientAdapter) GetClient(ctx kapi.Context, name string) (*oautha saWantsChallenges, _ := strconv.ParseBool(sa.Annotations[OAuthWantChallengesAnnotationPrefix]) saClient := &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, ScopeRestrictions: getScopeRestrictionsFor(saNamespace, saName), AdditionalSecrets: tokens, RespondWithChallenges: saWantsChallenges, @@ -279,8 +282,8 @@ func parseModelPrefixName(key string) (string, string, bool) { // The returned redirect URIs may contain duplicates and invalid entries. func (a *saOAuthClientAdapter) extractRedirectURIs(modelsMap map[string]model, namespace string) redirectURIList { var data redirectURIList - groupKindModelListMapper := map[unversioned.GroupKind]modelList{} // map of GroupKind to all models belonging to it - groupKindModelToURI := map[unversioned.GroupKind]namesToObjMapperFunc{ + groupKindModelListMapper := map[schema.GroupKind]modelList{} // map of GroupKind to all models belonging to it + groupKindModelToURI := map[schema.GroupKind]namesToObjMapperFunc{ routeGroupKind: a.redirectURIsFromRoutes, // TODO add support for ingresses by creating the appropriate GroupKind and namesToObjMapperFunc // ingressGroupKind: a.redirectURIsFromIngresses, @@ -317,11 +320,11 @@ func (a *saOAuthClientAdapter) redirectURIsFromRoutes(namespace string, osRouteN var routes []routeapi.Route routeInterface := a.routeClient.Routes(namespace) if osRouteNames.Len() > 1 { - if r, err := routeInterface.List(kapi.ListOptions{}); err == nil { + if r, err := routeInterface.List(metav1.ListOptions{}); err == nil { routes = r.Items } } else { - if r, err := routeInterface.Get(osRouteNames.List()[0]); err == nil { + if r, err := routeInterface.Get(osRouteNames.List()[0], metav1.GetOptions{}); err == nil { routes = append(routes, *r) } } @@ -386,7 +389,7 @@ func getScopeRestrictionsFor(namespace, name string) []oauthapi.ScopeRestriction // getServiceAccountTokens returns all ServiceAccountToken secrets for the given ServiceAccount func (a *saOAuthClientAdapter) getServiceAccountTokens(sa *kapi.ServiceAccount) ([]string, error) { - allSecrets, err := a.secretClient.Secrets(sa.Namespace).List(kapi.ListOptions{}) + allSecrets, err := a.secretClient.Secrets(sa.Namespace).List(metainternal.ListOptions{}) if err != nil { return nil, err } diff --git a/pkg/serviceaccounts/oauthclient/oauthclientregistry_test.go b/pkg/serviceaccounts/oauthclient/oauthclientregistry_test.go index 0a1ac54ebaff..8f848b81d182 100644 --- a/pkg/serviceaccounts/oauthclient/oauthclientregistry_test.go +++ b/pkg/serviceaccounts/oauthclient/oauthclientregistry_test.go @@ -5,13 +5,15 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util/sets" ostestclient "github.com/openshift/origin/pkg/client/testclient" oauthapi "github.com/openshift/origin/pkg/oauth/api" @@ -22,9 +24,9 @@ import ( var ( encoder = kapi.Codecs.LegacyCodec(oauthapiv1.SchemeGroupVersion) decoder = kapi.Codecs.UniversalDecoder() - serviceAccountsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "serviceaccounts"} - secretsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "secrets"} - routesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "routes"} + serviceAccountsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "serviceaccounts"} + secretsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "secrets"} + routesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "routes"} ) func TestGetClient(t *testing.T) { @@ -37,8 +39,8 @@ func TestGetClient(t *testing.T) { expectedDelegation bool expectedErr string expectedClient *oauthapi.OAuthClient - expectedKubeActions []core.Action - expectedOSActions []core.Action + expectedKubeActions []clientgotesting.Action + expectedOSActions []clientgotesting.Action }{ { name: "delegate", @@ -46,8 +48,8 @@ func TestGetClient(t *testing.T) { kubeClient: fake.NewSimpleClientset(), osClient: ostestclient.NewSimpleFake(), expectedDelegation: true, - expectedKubeActions: []core.Action{}, - expectedOSActions: []core.Action{}, + expectedKubeActions: []clientgotesting.Action{}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "missing sa", @@ -55,15 +57,15 @@ func TestGetClient(t *testing.T) { kubeClient: fake.NewSimpleClientset(), osClient: ostestclient.NewSimpleFake(), expectedErr: `ServiceAccount "missing-sa" not found`, - expectedKubeActions: []core.Action{core.NewGetAction(serviceAccountsResource, "ns-01", "missing-sa")}, - expectedOSActions: []core.Action{}, + expectedKubeActions: []clientgotesting.Action{clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "missing-sa")}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "sa no redirects", clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{}, @@ -71,15 +73,15 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake(), expectedErr: `system:serviceaccount:ns-01:default has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.`, - expectedKubeActions: []core.Action{core.NewGetAction(serviceAccountsResource, "ns-01", "default")}, - expectedOSActions: []core.Action{}, + expectedKubeActions: []clientgotesting.Action{clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default")}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "sa no tokens", clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{OAuthRedirectModelAnnotationURIPrefix + "one": "http://anywhere"}, @@ -87,18 +89,18 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake(), expectedErr: `system:serviceaccount:ns-01:default has no tokens`, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "good SA", clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -106,7 +108,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -119,24 +121,24 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake(), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"http://anywhere"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "good SA with valid, simple route redirects", clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -147,7 +149,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -160,7 +162,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -177,18 +179,18 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"http://anywhere", "https://example1.com/defaultpath"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{ - core.NewGetAction(routesResource, "ns-01", "route1"), + expectedOSActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(routesResource, "ns-01", "route1"), }, }, { @@ -196,7 +198,7 @@ func TestGetClient(t *testing.T) { clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -208,7 +210,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -221,7 +223,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -240,24 +242,24 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"http://anywhere"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{}, + expectedOSActions: []clientgotesting.Action{}, }, { name: "good SA with a route that don't have a host", clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -268,7 +270,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -281,7 +283,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -298,18 +300,18 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"http://anywhere"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{ - core.NewGetAction(routesResource, "ns-01", "route1"), + expectedOSActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(routesResource, "ns-01", "route1"), }, }, { @@ -317,7 +319,7 @@ func TestGetClient(t *testing.T) { clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -330,7 +332,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -343,7 +345,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -363,7 +365,7 @@ func TestGetClient(t *testing.T) { }, }, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route2", UID: types.UID("route2"), @@ -384,18 +386,18 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"http://anywhere", "https://a.com/defaultpath", "https://a.com/path2", "https://b.com/defaultpath", "https://b.com/path2"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{ - core.NewListAction(routesResource, "ns-01", kapi.ListOptions{}), + expectedOSActions: []clientgotesting.Action{ + clientgotesting.NewListAction(routesResource, "ns-01", metav1.ListOptions{}), }, }, { @@ -403,7 +405,7 @@ func TestGetClient(t *testing.T) { clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -416,7 +418,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -429,7 +431,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -445,7 +447,7 @@ func TestGetClient(t *testing.T) { }, }, &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route2", UID: types.UID("route2"), @@ -463,18 +465,18 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"https://google.com/otherpath", "https://redhat.com/defaultpath"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{ - core.NewListAction(routesResource, "ns-01", kapi.ListOptions{}), + expectedOSActions: []clientgotesting.Action{ + clientgotesting.NewListAction(routesResource, "ns-01", metav1.ListOptions{}), }, }, { @@ -482,7 +484,7 @@ func TestGetClient(t *testing.T) { clientName: "system:serviceaccount:ns-01:default", kubeClient: fake.NewSimpleClientset( &kapi.ServiceAccount{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", UID: types.UID("any"), @@ -495,7 +497,7 @@ func TestGetClient(t *testing.T) { }, }, &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "default", Annotations: map[string]string{ @@ -508,7 +510,7 @@ func TestGetClient(t *testing.T) { }), osClient: ostestclient.NewSimpleFake( &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "ns-01", Name: "route1", UID: types.UID("route1"), @@ -524,18 +526,18 @@ func TestGetClient(t *testing.T) { }, ), expectedClient: &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:serviceaccount:ns-01:default"}, ScopeRestrictions: getScopeRestrictionsFor("ns-01", "default"), AdditionalSecrets: []string{"foo"}, RedirectURIs: []string{"https://woot.com/awesomepath", "https://woot.com:8000"}, GrantMethod: oauthapi.GrantHandlerPrompt, }, - expectedKubeActions: []core.Action{ - core.NewGetAction(serviceAccountsResource, "ns-01", "default"), - core.NewListAction(secretsResource, "ns-01", kapi.ListOptions{}), + expectedKubeActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(serviceAccountsResource, "ns-01", "default"), + clientgotesting.NewListAction(secretsResource, "ns-01", metav1.ListOptions{}), }, - expectedOSActions: []core.Action{ - core.NewGetAction(routesResource, "ns-01", "route1"), + expectedOSActions: []clientgotesting.Action{ + clientgotesting.NewGetAction(routesResource, "ns-01", "route1"), }, }, } @@ -543,7 +545,7 @@ func TestGetClient(t *testing.T) { for _, tc := range testCases { delegate := &fakeDelegate{} getter := NewServiceAccountOAuthClientGetter(tc.kubeClient.Core(), tc.kubeClient.Core(), tc.osClient, delegate, oauthapi.GrantHandlerPrompt) - client, err := getter.GetClient(kapi.NewContext(), tc.clientName) + client, err := getter.GetClient(apirequest.NewContext(), tc.clientName, &metav1.GetOptions{}) switch { case len(tc.expectedErr) == 0 && err == nil: case len(tc.expectedErr) == 0 && err != nil, @@ -580,7 +582,7 @@ type fakeDelegate struct { called bool } -func (d *fakeDelegate) GetClient(ctx kapi.Context, name string) (*oauthapi.OAuthClient, error) { +func (d *fakeDelegate) GetClient(ctx apirequest.Context, name string, options *metav1.GetOptions) (*oauthapi.OAuthClient, error) { d.called = true return nil, nil } @@ -848,7 +850,7 @@ func TestGetRedirectURIs(t *testing.T) { }, routes: []*routeapi.Route{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route1", Namespace: "ns01", }, @@ -862,7 +864,7 @@ func TestGetRedirectURIs(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route2", Namespace: "ns01", }, @@ -922,7 +924,7 @@ func TestGetRedirectURIs(t *testing.T) { }, routes: []*routeapi.Route{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route1", Namespace: "ns01", }, @@ -938,7 +940,7 @@ func TestGetRedirectURIs(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route2", Namespace: "ns01", }, @@ -1021,7 +1023,7 @@ func TestRedirectURIsFromRoutes(t *testing.T) { names: sets.NewString("routeA"), routes: []*routeapi.Route{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "routeA", Namespace: "ns01", }, @@ -1052,7 +1054,7 @@ func TestRedirectURIsFromRoutes(t *testing.T) { names: sets.NewString("route0", "route1", "route2"), routes: []*routeapi.Route{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route0", Namespace: "ns01", }, @@ -1068,7 +1070,7 @@ func TestRedirectURIsFromRoutes(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route1", Namespace: "ns01", }, @@ -1085,7 +1087,7 @@ func TestRedirectURIsFromRoutes(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "route2", Namespace: "ns01", }, diff --git a/pkg/template/api/fields.go b/pkg/template/api/fields.go index f73be918aeba..f6964a11e132 100644 --- a/pkg/template/api/fields.go +++ b/pkg/template/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // TemplateToSelectableFields returns a label set that represents the object // changes to the returned keys require registering conversions for existing versions using Scheme.AddFieldLabelConversionFunc diff --git a/pkg/template/api/helpers.go b/pkg/template/api/helpers.go index 047cd597fd9d..3cc614d34b5b 100644 --- a/pkg/template/api/helpers.go +++ b/pkg/template/api/helpers.go @@ -4,13 +4,13 @@ import ( "errors" "fmt" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" ) // AddObjectsToTemplate adds the objects to the template using the target versions to choose the conversion destination -func AddObjectsToTemplate(template *Template, objects []runtime.Object, targetVersions ...unversioned.GroupVersion) error { +func AddObjectsToTemplate(template *Template, objects []runtime.Object, targetVersions ...schema.GroupVersion) error { for i := range objects { obj := objects[i] if obj == nil { @@ -25,7 +25,7 @@ func AddObjectsToTemplate(template *Template, objects []runtime.Object, targetVe return err } - var targetVersion *unversioned.GroupVersion + var targetVersion *schema.GroupVersion outerLoop: for j := range targetVersions { possibleVersion := targetVersions[j] diff --git a/pkg/template/api/install/apigroup.go b/pkg/template/api/install/apigroup.go index 73aee7c80dea..aa2243ddcf58 100644 --- a/pkg/template/api/install/apigroup.go +++ b/pkg/template/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/v1" diff --git a/pkg/template/api/install/install.go b/pkg/template/api/install/install.go index a4323bf67422..7df2d2f4dd17 100644 --- a/pkg/template/api/install/install.go +++ b/pkg/template/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/template/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,17 +88,17 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { - worstToBestGroupVersions := []unversioned.GroupVersion{} +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { + worstToBestGroupVersions := []schema.GroupVersion{} for i := len(externalVersions) - 1; i >= 0; i-- { worstToBestGroupVersions = append(worstToBestGroupVersions, externalVersions[i]) } rootScoped := sets.NewString("BrokerTemplateInstance") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(worstToBestGroupVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -108,7 +107,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/template/api/register.go b/pkg/template/api/register.go index 062dca927b92..cf5f4264fcb1 100644 --- a/pkg/template/api/register.go +++ b/pkg/template/api/register.go @@ -1,9 +1,10 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +15,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,7 +26,7 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } @@ -35,11 +36,11 @@ func LegacyKind(kind string) unversioned.GroupKind { } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -67,10 +68,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, &kapi.List{}, )..., ) diff --git a/pkg/template/api/types.go b/pkg/template/api/types.go index b4c4e80e9757..a930e8136f5e 100644 --- a/pkg/template/api/types.go +++ b/pkg/template/api/types.go @@ -1,17 +1,17 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" ) // +genclient=true // Template contains the inputs needed to produce a Config. type Template struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // message is an optional instructional message that will // be displayed when this template is instantiated. @@ -40,8 +40,8 @@ type Template struct { // TemplateList is a list of Template objects. type TemplateList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []Template } @@ -81,8 +81,8 @@ type Parameter struct { // TemplateInstance requests and records the instantiation of a Template. // TemplateInstance is part of an experimental API. type TemplateInstance struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec describes the desired state of this TemplateInstance. Spec TemplateInstanceSpec @@ -128,7 +128,7 @@ type TemplateInstanceCondition struct { Status kapi.ConditionStatus // LastTransitionTime is the last time a condition status transitioned from // one state to another. - LastTransitionTime unversioned.Time + LastTransitionTime metav1.Time // Reason is a brief machine readable explanation for the condition's last // transition. Reason string @@ -152,8 +152,8 @@ const ( // TemplateInstanceList is a list of TemplateInstance objects. type TemplateInstanceList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of Templateinstances Items []TemplateInstance @@ -165,8 +165,8 @@ type TemplateInstanceList struct { // BrokerTemplateInstance holds the service broker-related state associated with // a TemplateInstance. BrokerTemplateInstance is part of an experimental API. type BrokerTemplateInstance struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // Spec describes the state of this BrokerTemplateInstance. Spec BrokerTemplateInstanceSpec @@ -189,8 +189,8 @@ type BrokerTemplateInstanceSpec struct { // BrokerTemplateInstanceList is a list of BrokerTemplateInstance objects. type BrokerTemplateInstanceList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta // Items is a list of BrokerTemplateInstances Items []BrokerTemplateInstance diff --git a/pkg/template/api/v1/conversion.go b/pkg/template/api/v1/conversion.go index 21bc9909f463..cf34d948c3aa 100644 --- a/pkg/template/api/v1/conversion.go +++ b/pkg/template/api/v1/conversion.go @@ -1,7 +1,8 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/api/extension" @@ -49,7 +50,7 @@ func (c *Template) DecodeNestedObjects(d runtime.Decoder) error { } func (c *Template) EncodeNestedObjects(e runtime.Encoder) error { for i := range c.Objects { - if err := extension.EncodeNestedRawExtension(runtime.UnstructuredJSONScheme, &c.Objects[i]); err != nil { + if err := extension.EncodeNestedRawExtension(unstructured.UnstructuredJSONScheme, &c.Objects[i]); err != nil { return err } } diff --git a/pkg/template/api/v1/register.go b/pkg/template/api/v1/register.go index 6f14993bbcc8..08c769459fdd 100644 --- a/pkg/template/api/v1/register.go +++ b/pkg/template/api/v1/register.go @@ -1,10 +1,10 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch/versioned" ) const ( @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -36,14 +36,14 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapiv1.ListOptions{}, - &kapiv1.DeleteOptions{}, - &kapiv1.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metav1.ListOptions{}, + &metav1.DeleteOptions{}, + &metav1.ExportOptions{}, &kapiv1.List{}, )..., ) - versioned.AddToGroupVersion(scheme, SchemeGroupVersion) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/pkg/template/api/v1/types.go b/pkg/template/api/v1/types.go index 03b98fd5997c..83e8d17fa24f 100644 --- a/pkg/template/api/v1/types.go +++ b/pkg/template/api/v1/types.go @@ -1,18 +1,18 @@ package v1 import ( - "k8s.io/kubernetes/pkg/api/unversioned" - kapi "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" ) // +genclient=true // Template contains the inputs needed to produce a Config. type Template struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // message is an optional instructional message that will // be displayed when this template is instantiated. @@ -41,9 +41,9 @@ type Template struct { // TemplateList is a list of Template objects. type TemplateList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of templates Items []Template `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -99,9 +99,9 @@ type Parameter struct { // TemplateInstance requests and records the instantiation of a Template. // TemplateInstance is part of an experimental API. type TemplateInstance struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec describes the desired state of this TemplateInstance. Spec TemplateInstanceSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -117,7 +117,7 @@ type TemplateInstanceSpec struct { // secret is a reference to a Secret object containing the necessary // template parameters. - Secret kapi.LocalObjectReference `json:"secret" protobuf:"bytes,2,opt,name=secret"` + Secret kapiv1.LocalObjectReference `json:"secret" protobuf:"bytes,2,opt,name=secret"` // requester holds the identity of the agent requesting the template // instantiation. @@ -144,10 +144,10 @@ type TemplateInstanceCondition struct { // Type of the condition, currently Ready or InstantiateFailure. Type TemplateInstanceConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=TemplateInstanceConditionType"` // Status of the condition, one of True, False or Unknown. - Status kapi.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` + Status kapiv1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` // LastTransitionTime is the last time a condition status transitioned from // one state to another. - LastTransitionTime unversioned.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` // Reason is a brief machine readable explanation for the condition's last // transition. Reason string `json:"reason" protobuf:"bytes,4,opt,name=reason"` @@ -171,9 +171,9 @@ const ( // TemplateInstanceList is a list of TemplateInstance objects. type TemplateInstanceList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is a list of Templateinstances Items []TemplateInstance `json:"items" protobuf:"bytes,2,rep,name=items"` @@ -185,9 +185,9 @@ type TemplateInstanceList struct { // BrokerTemplateInstance holds the service broker-related state associated with // a TemplateInstance. BrokerTemplateInstance is part of an experimental API. type BrokerTemplateInstance struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // spec describes the state of this BrokerTemplateInstance. Spec BrokerTemplateInstanceSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` @@ -197,11 +197,11 @@ type BrokerTemplateInstance struct { type BrokerTemplateInstanceSpec struct { // templateinstance is a reference to a TemplateInstance object residing // in a namespace. - TemplateInstance kapi.ObjectReference `json:"templateInstance" protobuf:"bytes,1,opt,name=templateInstance"` + TemplateInstance kapiv1.ObjectReference `json:"templateInstance" protobuf:"bytes,1,opt,name=templateInstance"` // secret is a reference to a Secret object residing in a namespace, // containing the necessary template parameters. - Secret kapi.ObjectReference `json:"secret" protobuf:"bytes,2,opt,name=secret"` + Secret kapiv1.ObjectReference `json:"secret" protobuf:"bytes,2,opt,name=secret"` // bindingids is a list of 'binding_id's provided during successive bind // calls to the template service broker. @@ -210,9 +210,9 @@ type BrokerTemplateInstanceSpec struct { // BrokerTemplateInstanceList is a list of BrokerTemplateInstance objects. type BrokerTemplateInstanceList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // items is a list of BrokerTemplateInstances Items []BrokerTemplateInstance `json:"items" protobuf:"bytes,2,rep,name=items"` diff --git a/pkg/template/api/v1/zz_generated.deepcopy.go b/pkg/template/api/v1/zz_generated.deepcopy.go index 6b0903c36866..017a5d47d800 100644 --- a/pkg/template/api/v1/zz_generated.deepcopy.go +++ b/pkg/template/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/template/api/validation/validation.go b/pkg/template/api/validation/validation.go index 3a4c6fb460d5..a3a092d25dad 100644 --- a/pkg/template/api/validation/validation.go +++ b/pkg/template/api/validation/validation.go @@ -4,13 +4,14 @@ import ( "fmt" "regexp" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + "k8s.io/apimachinery/pkg/util/validation/field" + kapi "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/validation" + oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/template/api" uservalidation "github.com/openshift/origin/pkg/user/api/validation" - kapi "k8s.io/kubernetes/pkg/api" - unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation" - "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" ) var ParameterNameRegexp = regexp.MustCompile(`^[a-zA-Z0-9_]+$`) diff --git a/pkg/template/api/validation/validation_test.go b/pkg/template/api/validation/validation_test.go index d6b5e413a125..9985c0c10fce 100644 --- a/pkg/template/api/validation/validation_test.go +++ b/pkg/template/api/validation/validation_test.go @@ -3,8 +3,9 @@ package validation import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/template/api" ) @@ -59,13 +60,13 @@ func TestValidateProcessTemplate(t *testing.T) { }, { // Template with name, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "templateId"}, + ObjectMeta: metav1.ObjectMeta{Name: "templateId"}, }, true, }, { // Template with invalid Parameter, should fail on Parameter name &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "templateId"}, + ObjectMeta: metav1.ObjectMeta{Name: "templateId"}, Parameters: []api.Parameter{ *(makeParameter("", "1")), }, @@ -74,7 +75,7 @@ func TestValidateProcessTemplate(t *testing.T) { }, { // Template with valid Parameter, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "templateId"}, + ObjectMeta: metav1.ObjectMeta{Name: "templateId"}, Parameters: []api.Parameter{ *(makeParameter("VALname_NAME", "1")), }, @@ -83,7 +84,7 @@ func TestValidateProcessTemplate(t *testing.T) { }, { // Template with Item of unknown Kind, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "templateId"}, + ObjectMeta: metav1.ObjectMeta{Name: "templateId"}, Parameters: []api.Parameter{ *(makeParameter("VALname_NAME", "1")), }, @@ -115,16 +116,16 @@ func TestValidateTemplate(t *testing.T) { }, { // Template with name, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "template", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, true, }, { // Template without namespace, should fail &api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "template", }, }, @@ -132,16 +133,16 @@ func TestValidateTemplate(t *testing.T) { }, { // Template with invalid name characters, should fail &api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "templateId", - Namespace: kapi.NamespaceDefault, + Namespace: metav1.NamespaceDefault, }, }, false, }, { // Template with invalid Parameter, should fail on Parameter name &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "template", Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: "template", Namespace: metav1.NamespaceDefault}, Parameters: []api.Parameter{ *(makeParameter("", "1")), }, @@ -150,7 +151,7 @@ func TestValidateTemplate(t *testing.T) { }, { // Template with valid Parameter, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "template", Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: "template", Namespace: metav1.NamespaceDefault}, Parameters: []api.Parameter{ *(makeParameter("VALname_NAME", "1")), }, @@ -159,7 +160,7 @@ func TestValidateTemplate(t *testing.T) { }, { // Template with empty items, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "template", Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: "template", Namespace: metav1.NamespaceDefault}, Parameters: []api.Parameter{}, Objects: []runtime.Object{}, }, @@ -167,11 +168,11 @@ func TestValidateTemplate(t *testing.T) { }, { // Template with an item that is invalid, should pass &api.Template{ - ObjectMeta: kapi.ObjectMeta{Name: "template", Namespace: kapi.NamespaceDefault}, + ObjectMeta: metav1.ObjectMeta{Name: "template", Namespace: metav1.NamespaceDefault}, Parameters: []api.Parameter{}, Objects: []runtime.Object{ &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "test", }, Spec: kapi.ServiceSpec{ @@ -205,7 +206,7 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -213,7 +214,7 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -222,7 +223,7 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -233,13 +234,13 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, Spec: api.TemplateInstanceSpec{ Template: api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -253,13 +254,13 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, Spec: api.TemplateInstanceSpec{ Template: api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -277,13 +278,13 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, Spec: api.TemplateInstanceSpec{ Template: api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -299,13 +300,13 @@ func TestValidateTemplateInstance(t *testing.T) { }, { templateInstance: api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, Spec: api.TemplateInstanceSpec{ Template: api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -335,14 +336,14 @@ func TestValidateTemplateInstance(t *testing.T) { func TestValidateTemplateInstanceUpdate(t *testing.T) { oldTemplateInstance := &api.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", ResourceVersion: "1", }, Spec: api.TemplateInstanceSpec{ Template: api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", Namespace: "test", }, @@ -465,7 +466,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }{ { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -488,7 +489,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -508,7 +509,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -530,7 +531,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, Namespace: "test", }, @@ -550,7 +551,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -569,7 +570,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -588,7 +589,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -607,7 +608,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -626,7 +627,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -645,7 +646,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -664,7 +665,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -678,7 +679,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { }, { brokerTemplateInstance: api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, }, Spec: api.BrokerTemplateInstanceSpec{ @@ -705,7 +706,7 @@ func TestValidateBrokerTemplateInstance(t *testing.T) { func TestValidateBrokerTemplateInstanceUpdate(t *testing.T) { oldBrokerTemplateInstance := &api.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: validUUID, ResourceVersion: "1", }, diff --git a/pkg/template/api/zz_generated.deepcopy.go b/pkg/template/api/zz_generated.deepcopy.go index 65a665e8fc6e..888ebf6965fd 100644 --- a/pkg/template/api/zz_generated.deepcopy.go +++ b/pkg/template/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/template/client/clientset_generated/internalclientset/clientset.go b/pkg/template/client/clientset_generated/internalclientset/clientset.go index a562d7408dfd..17d92afd9c6e 100644 --- a/pkg/template/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/template/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/template/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/template/client/clientset_generated/internalclientset/fake/clientset_generated.go index ea09227ff38f..2d290a676e51 100644 --- a/pkg/template/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/template/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/template/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index d4df69edc87b..1cc993f556b3 100644 --- a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { TemplatesGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index e0f450206bde..d6741c03ff36 100644 --- a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_template.go b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_template.go index c59704921db4..b9a212c5e6cd 100644 --- a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_template.go +++ b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_template.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/template/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeTemplates implements TemplateInterface @@ -15,7 +15,7 @@ type FakeTemplates struct { ns string } -var templatesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "templates"} +var templatesResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "templates"} func (c *FakeTemplates) Create(template *api.Template) (result *api.Template, err error) { obj, err := c.Fake. diff --git a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/template.go b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/template.go index 280bf5a65921..87ce1b6bb86d 100644 --- a/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/template.go +++ b/pkg/template/client/clientset_generated/internalclientset/typed/core/internalversion/template.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/template/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // TemplatesGetter has a method to return a TemplateInterface. diff --git a/pkg/template/client/clientset_generated/release_v1_5/clientset.go b/pkg/template/client/clientset_generated/release_v1_5/clientset.go index 4b0e19ee43ac..4a1d043ee0ec 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/template/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/template/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/template/client/clientset_generated/release_v1_5/fake/clientset_generated.go index 8c7224ef0826..17cd9bfab6eb 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/template/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/template/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index a9da8fefa873..4cad6929ef86 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { TemplatesGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index d869c3896a51..217621d14dd4 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_template.go b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_template.go index 1e25c84ef737..31e7d0e32fd4 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_template.go +++ b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_template.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/template/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeTemplates implements TemplateInterface @@ -16,7 +16,7 @@ type FakeTemplates struct { ns string } -var templatesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "templates"} +var templatesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "templates"} func (c *FakeTemplates) Create(template *v1.Template) (result *v1.Template, err error) { obj, err := c.Fake. diff --git a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/template.go b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/template.go index 327b6aad4394..692014539bd9 100644 --- a/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/template.go +++ b/pkg/template/client/clientset_generated/release_v1_5/typed/core/v1/template.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/template/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // TemplatesGetter has a method to return a TemplateInterface. diff --git a/pkg/template/controller/templateinstance_controller.go b/pkg/template/controller/templateinstance_controller.go index 11d9bc131cdc..47a33663ccdf 100644 --- a/pkg/template/controller/templateinstance_controller.go +++ b/pkg/template/controller/templateinstance_controller.go @@ -3,17 +3,16 @@ package controller import ( "fmt" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + watch "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/meta/metatypes" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/api/latest" authclient "github.com/openshift/origin/pkg/auth/client" @@ -26,20 +25,19 @@ import ( ) type TemplateInstanceController struct { - restconfig restclient.Config + restconfig rest.Config templateclient internalversiontemplate.TemplateInterface - controller cache.ControllerInterface + controller cache.Controller } -func NewTemplateInstanceController(restconfig restclient.Config) *TemplateInstanceController { +func NewTemplateInstanceController(restconfig rest.Config) *TemplateInstanceController { c := TemplateInstanceController{restconfig: restconfig, templateclient: templateclientset.NewForConfigOrDie(&restconfig).Template()} - _, c.controller = cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { return c.templateclient.TemplateInstances(kapi.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { return c.templateclient.TemplateInstances(kapi.NamespaceAll).Watch(options) }, }, @@ -78,7 +76,7 @@ func (c *TemplateInstanceController) handle(templateInstance *templateapi.Templa { Type: templateapi.TemplateInstanceReady, Status: kapi.ConditionTrue, - LastTransitionTime: unversioned.Now(), + LastTransitionTime: metav1.Now(), Reason: "Created", }, } @@ -88,7 +86,7 @@ func (c *TemplateInstanceController) handle(templateInstance *templateapi.Templa { Type: templateapi.TemplateInstanceInstantiateFailure, Status: kapi.ConditionTrue, - LastTransitionTime: unversioned.Now(), + LastTransitionTime: metav1.Now(), Reason: "Failed", Message: err.Error(), }, @@ -120,7 +118,7 @@ func (c *TemplateInstanceController) provision(templateInstance *templateapi.Tem return err } - secret, err := impersonatedKC.Core().Secrets(templateInstance.Namespace).Get(templateInstance.Spec.Secret.Name) + secret, err := impersonatedKC.Core().Secrets(templateInstance.Namespace).Get(templateInstance.Spec.Secret.Name, metav1.GetOptions{}) if err != nil { return err } @@ -156,7 +154,7 @@ func (c *TemplateInstanceController) provision(templateInstance *templateapi.Tem for _, obj := range template.Objects { meta, _ := meta.Accessor(obj) ref := meta.GetOwnerReferences() - ref = append(ref, metatypes.OwnerReference{ + ref = append(ref, metav1.OwnerReference{ APIVersion: templateapiv1.SchemeGroupVersion.String(), Kind: "TemplateInstance", Name: templateInstance.Name, diff --git a/pkg/template/registry/brokertemplateinstance/etcd/etcd.go b/pkg/template/registry/brokertemplateinstance/etcd/etcd.go index dee017c8a038..850f3b8e9342 100644 --- a/pkg/template/registry/brokertemplateinstance/etcd/etcd.go +++ b/pkg/template/registry/brokertemplateinstance/etcd/etcd.go @@ -1,12 +1,14 @@ package etcd import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/registry/generic/registry" + kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/template/api" - "github.com/openshift/origin/pkg/template/registry/brokertemplateinstance" + rest "github.com/openshift/origin/pkg/template/registry/brokertemplateinstance" "github.com/openshift/origin/pkg/util/restoptions" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" ) // REST implements a RESTStorage for brokertemplateinstances against etcd diff --git a/pkg/template/registry/brokertemplateinstance/strategy.go b/pkg/template/registry/brokertemplateinstance/strategy.go index 273b22105b00..b55742142380 100644 --- a/pkg/template/registry/brokertemplateinstance/strategy.go +++ b/pkg/template/registry/brokertemplateinstance/strategy.go @@ -3,25 +3,28 @@ package brokertemplateinstance import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" + kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/validation" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" ) // brokerTemplateInstanceStrategy implements behavior for Templates type brokerTemplateInstanceStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating BrokerTemplateInstance // objects via the REST API. -var Strategy = brokerTemplateInstanceStrategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = brokerTemplateInstanceStrategy{kapi.Scheme, names.SimpleNameGenerator} // NamespaceScoped is false for brokertemplateinstances. func (brokerTemplateInstanceStrategy) NamespaceScoped() bool { @@ -29,7 +32,7 @@ func (brokerTemplateInstanceStrategy) NamespaceScoped() bool { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (brokerTemplateInstanceStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (brokerTemplateInstanceStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -37,11 +40,11 @@ func (brokerTemplateInstanceStrategy) Canonicalize(obj runtime.Object) { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (brokerTemplateInstanceStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (brokerTemplateInstanceStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new brokertemplateinstance. -func (brokerTemplateInstanceStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (brokerTemplateInstanceStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateBrokerTemplateInstance(obj.(*api.BrokerTemplateInstance)) } @@ -55,7 +58,7 @@ func (brokerTemplateInstanceStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for an end user. -func (brokerTemplateInstanceStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (brokerTemplateInstanceStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateBrokerTemplateInstanceUpdate(obj.(*api.BrokerTemplateInstance), old.(*api.BrokerTemplateInstance)) } diff --git a/pkg/template/registry/template/etcd/etcd.go b/pkg/template/registry/template/etcd/etcd.go index 09a386e79b6e..63f8ed6ece60 100644 --- a/pkg/template/registry/template/etcd/etcd.go +++ b/pkg/template/registry/template/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/registry/template" diff --git a/pkg/template/registry/template/etcd/etcd_test.go b/pkg/template/registry/template/etcd/etcd_test.go index 39ccd1b2f493..231602af2a8e 100644 --- a/pkg/template/registry/template/etcd/etcd_test.go +++ b/pkg/template/registry/template/etcd/etcd_test.go @@ -3,11 +3,11 @@ package etcd import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/kubernetes/pkg/registry/registrytest" - etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" "github.com/openshift/origin/pkg/template/api" _ "github.com/openshift/origin/pkg/template/api/install" @@ -25,7 +25,7 @@ func newStorage(t *testing.T) (*REST, *etcdtesting.EtcdTestServer) { func validTemplate() *api.Template { return &api.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, } diff --git a/pkg/template/registry/template/rest.go b/pkg/template/registry/template/rest.go index 6f7bf1ebb68b..89be492fc2e5 100644 --- a/pkg/template/registry/template/rest.go +++ b/pkg/template/registry/template/rest.go @@ -5,9 +5,10 @@ import ( "time" "github.com/golang/glog" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/template" "github.com/openshift/origin/pkg/template/api" @@ -34,7 +35,7 @@ func (s *REST) New() runtime.Object { } // Create processes a Template and creates a new list of objects -func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { tpl, ok := obj.(*api.Template) if !ok { return nil, errors.NewBadRequest("not a template") @@ -56,7 +57,7 @@ func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // objects using the unstructured codec BEFORE the REST layers gets its shot at encoding to avoid a layered // encode being done. for i := range tpl.Objects { - tpl.Objects[i] = runtime.NewEncodable(runtime.UnstructuredJSONScheme, tpl.Objects[i]) + tpl.Objects[i] = runtime.NewEncodable(unstructured.UnstructuredJSONScheme, tpl.Objects[i]) } return tpl, nil diff --git a/pkg/template/registry/template/rest_test.go b/pkg/template/registry/template/rest_test.go index 51278d7d857e..017caccf8635 100644 --- a/pkg/template/registry/template/rest_test.go +++ b/pkg/template/registry/template/rest_test.go @@ -3,10 +3,10 @@ package template import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - utilerrors "k8s.io/kubernetes/pkg/util/errors" template "github.com/openshift/origin/pkg/template/api" @@ -22,7 +22,7 @@ func TestNewRESTInvalidType(t *testing.T) { t.Errorf("Expected type error.") } - if _, err := registered.RESTMapper().KindFor(template.LegacyResource("processedtemplates").WithVersion("")); err != nil { + if _, err := kapi.Registry.RESTMapper().KindFor(template.LegacyResource("processedtemplates").WithVersion("")); err != nil { t.Errorf("no processed templates: %v", err) } } @@ -30,7 +30,7 @@ func TestNewRESTInvalidType(t *testing.T) { func TestNewRESTDefaultsName(t *testing.T) { storage := NewREST() obj, err := storage.Create(nil, &template.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, }) @@ -46,7 +46,7 @@ func TestNewRESTDefaultsName(t *testing.T) { func TestNewRESTInvalidParameter(t *testing.T) { storage := NewREST() _, err := storage.Create(nil, &template.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Parameters: []template.Parameter{ @@ -71,14 +71,14 @@ func TestNewRESTTemplateLabels(t *testing.T) { // because of encoding changes, we to round-trip ourselves templateToCreate := &template.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, ObjectLabels: testLabels, } templateObjects := []runtime.Object{ &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-service", }, Spec: kapi.ServiceSpec{ @@ -92,8 +92,8 @@ func TestNewRESTTemplateLabels(t *testing.T) { }, }, } - template.AddObjectsToTemplate(templateToCreate, templateObjects, registered.GroupOrDie(kapi.GroupName).GroupVersions[0]) - originalBytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), templateToCreate) + template.AddObjectsToTemplate(templateToCreate, templateObjects, kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]) + originalBytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), templateToCreate) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -108,7 +108,7 @@ func TestNewRESTTemplateLabels(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - bytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), obj) + bytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), obj) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -145,14 +145,14 @@ func TestNewRESTTemplateLabelsList(t *testing.T) { storage := NewREST() // because of encoding changes, we to round-trip ourselves templateToCreate := &template.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, ObjectLabels: testLabels, } templateObjects := []runtime.Object{ &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test-service", }, Spec: kapi.ServiceSpec{ @@ -166,8 +166,8 @@ func TestNewRESTTemplateLabelsList(t *testing.T) { }, }, } - template.AddObjectsToTemplate(templateToCreate, templateObjects, registered.GroupOrDie(kapi.GroupName).GroupVersions[0]) - originalBytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), templateToCreate) + template.AddObjectsToTemplate(templateToCreate, templateObjects, kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]) + originalBytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), templateToCreate) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -182,7 +182,7 @@ func TestNewRESTTemplateLabelsList(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - bytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.GroupOrDie(kapi.GroupName).GroupVersions[0]), obj) + bytes, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.GroupOrDie(kapi.GroupName).GroupVersions[0]), obj) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/template/registry/template/strategy.go b/pkg/template/registry/template/strategy.go index 0d49f007a2c0..d1e37635a241 100644 --- a/pkg/template/registry/template/strategy.go +++ b/pkg/template/registry/template/strategy.go @@ -3,12 +3,14 @@ package template import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/validation" @@ -17,12 +19,12 @@ import ( // templateStrategy implements behavior for Templates type templateStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator } // Strategy is the default logic that applies when creating and updating Template // objects via the REST API. -var Strategy = templateStrategy{kapi.Scheme, kapi.SimpleNameGenerator} +var Strategy = templateStrategy{kapi.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for templates. func (templateStrategy) NamespaceScoped() bool { @@ -30,18 +32,18 @@ func (templateStrategy) NamespaceScoped() bool { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (templateStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (templateStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // Canonicalize normalizes the object after validation. func (templateStrategy) Canonicalize(obj runtime.Object) { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (templateStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (templateStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new template. -func (templateStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (templateStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateTemplate(obj.(*api.Template)) } @@ -55,7 +57,7 @@ func (templateStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for an end user. -func (templateStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (templateStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateTemplateUpdate(obj.(*api.Template), old.(*api.Template)) } diff --git a/pkg/template/registry/templateinstance/etcd/etcd.go b/pkg/template/registry/templateinstance/etcd/etcd.go index 5bc7dab90e3e..a6af80eaca61 100644 --- a/pkg/template/registry/templateinstance/etcd/etcd.go +++ b/pkg/template/registry/templateinstance/etcd/etcd.go @@ -1,13 +1,15 @@ package etcd import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/registry/generic/registry" + kapi "k8s.io/kubernetes/pkg/api" + "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/template/api" - "github.com/openshift/origin/pkg/template/registry/templateinstance" + rest "github.com/openshift/origin/pkg/template/registry/templateinstance" "github.com/openshift/origin/pkg/util/restoptions" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" ) // REST implements a RESTStorage for templateinstances against etcd diff --git a/pkg/template/registry/templateinstance/strategy.go b/pkg/template/registry/templateinstance/strategy.go index 828a5613eccd..c590fd72d967 100644 --- a/pkg/template/registry/templateinstance/strategy.go +++ b/pkg/template/registry/templateinstance/strategy.go @@ -4,29 +4,32 @@ import ( "errors" "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/authentication/user" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" + kapi "k8s.io/kubernetes/pkg/api" + authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" templateapi "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/validation" userapi "github.com/openshift/origin/pkg/user/api" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" ) // templateInstanceStrategy implements behavior for Templates type templateInstanceStrategy struct { runtime.ObjectTyper - kapi.NameGenerator + names.NameGenerator oc *client.Client } func NewStrategy(oc *client.Client) *templateInstanceStrategy { - return &templateInstanceStrategy{kapi.Scheme, kapi.SimpleNameGenerator, oc} + return &templateInstanceStrategy{kapi.Scheme, names.SimpleNameGenerator, oc} } // NamespaceScoped is true for templateinstances. @@ -35,7 +38,7 @@ func (templateInstanceStrategy) NamespaceScoped() bool { } // PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (templateInstanceStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (templateInstanceStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { } // Canonicalize normalizes the object after validation. @@ -43,11 +46,11 @@ func (templateInstanceStrategy) Canonicalize(obj runtime.Object) { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (templateInstanceStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (templateInstanceStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { templateInstance := obj.(*templateapi.TemplateInstance) if templateInstance.Spec.Requester == nil { - user, _ := kapi.UserFrom(ctx) + user, _ := apirequest.UserFrom(ctx) templateInstance.Spec.Requester = &templateapi.TemplateInstanceRequester{ Username: user.GetName(), } @@ -55,8 +58,8 @@ func (templateInstanceStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.O } // Validate validates a new templateinstance. -func (s *templateInstanceStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { - user, ok := kapi.UserFrom(ctx) +func (s *templateInstanceStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { + user, ok := apirequest.UserFrom(ctx) if !ok { return field.ErrorList{field.InternalError(field.NewPath(""), errors.New("user not found in context"))} } @@ -78,8 +81,8 @@ func (templateInstanceStrategy) AllowUnconditionalUpdate() bool { } // ValidateUpdate is the default update validation for an end user. -func (s *templateInstanceStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { - user, ok := kapi.UserFrom(ctx) +func (s *templateInstanceStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { + user, ok := apirequest.UserFrom(ctx) if !ok { return field.ErrorList{field.InternalError(field.NewPath(""), errors.New("user not found in context"))} } diff --git a/pkg/template/servicebroker/bind.go b/pkg/template/servicebroker/bind.go index e169d5880d86..29eb04d1daff 100644 --- a/pkg/template/servicebroker/bind.go +++ b/pkg/template/servicebroker/bind.go @@ -6,13 +6,15 @@ import ( "strconv" "strings" - "github.com/openshift/origin/pkg/openservicebroker/api" - templateapi "github.com/openshift/origin/pkg/template/api" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/selection" + + "github.com/openshift/origin/pkg/openservicebroker/api" + templateapi "github.com/openshift/origin/pkg/template/api" ) // copied from vendor/k8s.io/kubernetes/pkg/kubelet/envvars/envvars.go @@ -26,7 +28,7 @@ func makeEnvVariableName(str string) string { func (b *Broker) getServices(impersonatedKC internalversion.ServicesGetter, namespace, instanceID string) (map[string]string, *api.Response) { requirement, _ := labels.NewRequirement(templateapi.TemplateInstanceLabel, selection.Equals, []string{instanceID}) - serviceList, err := impersonatedKC.Services(namespace).List(kapi.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement)}) + serviceList, err := impersonatedKC.Services(namespace).List(metav1.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement).String()}) if err != nil { if kerrors.IsForbidden(err) { return nil, api.Forbidden(err) @@ -60,7 +62,7 @@ func (b *Broker) getServices(impersonatedKC internalversion.ServicesGetter, name func (b *Broker) getSecrets(impersonatedKC internalversion.SecretsGetter, namespace, instanceID string) (map[string]string, *api.Response) { requirement, _ := labels.NewRequirement(templateapi.TemplateInstanceLabel, selection.Equals, []string{instanceID}) - secretList, err := impersonatedKC.Secrets(namespace).List(kapi.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement)}) + secretList, err := impersonatedKC.Secrets(namespace).List(metav1.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement).String()}) if err != nil { if kerrors.IsForbidden(err) { return nil, api.Forbidden(err) @@ -101,7 +103,7 @@ func (b *Broker) Bind(instanceID, bindingID string, breq *api.BindRequest) *api. return api.InternalServerError(err) } - brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return api.BadRequest(err) @@ -110,7 +112,7 @@ func (b *Broker) Bind(instanceID, bindingID string, breq *api.BindRequest) *api. return api.InternalServerError(err) } - templateInstance, err := b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Get(brokerTemplateInstance.Spec.TemplateInstance.Name) + templateInstance, err := b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Get(brokerTemplateInstance.Spec.TemplateInstance.Name, metav1.GetOptions{}) if err != nil { return api.InternalServerError(err) } diff --git a/pkg/template/servicebroker/catalog.go b/pkg/template/servicebroker/catalog.go index d139ca6fc59f..879d119c76d9 100644 --- a/pkg/template/servicebroker/catalog.go +++ b/pkg/template/servicebroker/catalog.go @@ -5,6 +5,7 @@ import ( "strings" jsschema "github.com/lestrrat/go-jsschema" + oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/openservicebroker/api" templateapi "github.com/openshift/origin/pkg/template/api" diff --git a/pkg/template/servicebroker/catalog_test.go b/pkg/template/servicebroker/catalog_test.go index 00657d5dc66f..1f812d59203a 100644 --- a/pkg/template/servicebroker/catalog_test.go +++ b/pkg/template/servicebroker/catalog_test.go @@ -5,14 +5,16 @@ import ( "testing" schema "github.com/lestrrat/go-jsschema" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/openservicebroker/api" templateapi "github.com/openshift/origin/pkg/template/api" - kapi "k8s.io/kubernetes/pkg/api" ) func TestServiceFromTemplate(t *testing.T) { template := &templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "name", UID: "ee33151d-a34d-442d-a0ca-6353b73a58fd", Annotations: map[string]string{ diff --git a/pkg/template/servicebroker/deprovision.go b/pkg/template/servicebroker/deprovision.go index 16d58da782e8..25ea32517cb6 100644 --- a/pkg/template/servicebroker/deprovision.go +++ b/pkg/template/servicebroker/deprovision.go @@ -3,13 +3,14 @@ package servicebroker import ( "net/http" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/openservicebroker/api" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) func (b *Broker) Deprovision(instanceID string) *api.Response { - brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return api.NewResponse(http.StatusGone, &api.DeprovisionResponse{}, nil) @@ -17,17 +18,17 @@ func (b *Broker) Deprovision(instanceID string) *api.Response { return api.InternalServerError(err) } - err = b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Delete(brokerTemplateInstance.Spec.TemplateInstance.Name, kapi.NewPreconditionDeleteOptions(string(brokerTemplateInstance.Spec.TemplateInstance.UID))) + err = b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Delete(brokerTemplateInstance.Spec.TemplateInstance.Name, metav1.NewPreconditionDeleteOptions(string(brokerTemplateInstance.Spec.TemplateInstance.UID))) if err != nil && !kerrors.IsNotFound(err) { return api.InternalServerError(err) } - err = b.secretsGetter.Secrets(brokerTemplateInstance.Spec.Secret.Namespace).Delete(brokerTemplateInstance.Spec.Secret.Name, kapi.NewPreconditionDeleteOptions(string(brokerTemplateInstance.Spec.Secret.UID))) + err = b.secretsGetter.Secrets(brokerTemplateInstance.Spec.Secret.Namespace).Delete(brokerTemplateInstance.Spec.Secret.Name, metav1.NewPreconditionDeleteOptions(string(brokerTemplateInstance.Spec.Secret.UID))) if err != nil && !kerrors.IsNotFound(err) { return api.InternalServerError(err) } - opts := kapi.NewPreconditionDeleteOptions(string(brokerTemplateInstance.UID)) + opts := metav1.NewPreconditionDeleteOptions(string(brokerTemplateInstance.UID)) err = b.templateclient.BrokerTemplateInstances().Delete(instanceID, opts) if err != nil { if kerrors.IsNotFound(err) { diff --git a/pkg/template/servicebroker/lastoperation.go b/pkg/template/servicebroker/lastoperation.go index 6adf9ac509b0..c94c5aa7706f 100644 --- a/pkg/template/servicebroker/lastoperation.go +++ b/pkg/template/servicebroker/lastoperation.go @@ -6,8 +6,10 @@ import ( "github.com/openshift/origin/pkg/openservicebroker/api" templateapi "github.com/openshift/origin/pkg/template/api" + + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) func (b *Broker) LastOperation(instanceID string, operation api.Operation) *api.Response { @@ -15,7 +17,7 @@ func (b *Broker) LastOperation(instanceID string, operation api.Operation) *api. return api.BadRequest(errors.New("invalid operation")) } - brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return api.BadRequest(err) @@ -23,7 +25,7 @@ func (b *Broker) LastOperation(instanceID string, operation api.Operation) *api. return api.InternalServerError(err) } - templateInstance, err := b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Get(brokerTemplateInstance.Spec.TemplateInstance.Name) + templateInstance, err := b.templateclient.TemplateInstances(brokerTemplateInstance.Spec.TemplateInstance.Namespace).Get(brokerTemplateInstance.Spec.TemplateInstance.Name, metav1.GetOptions{}) if err != nil { return api.InternalServerError(err) } diff --git a/pkg/template/servicebroker/provision.go b/pkg/template/servicebroker/provision.go index 8c2a0c6d0800..1e69051f805e 100644 --- a/pkg/template/servicebroker/provision.go +++ b/pkg/template/servicebroker/provision.go @@ -6,9 +6,10 @@ import ( "reflect" internalversiontemplate "github.com/openshift/origin/pkg/template/clientset/internalclientset/typed/template/internalversion" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/auth/user" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -18,7 +19,7 @@ import ( func (b *Broker) ensureSecret(impersonatedKC internalversion.SecretsGetter, namespace string, instanceID string, preq *api.ProvisionRequest, didWork *bool) (*kapi.Secret, *api.Response) { secret := &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{Name: instanceID}, + ObjectMeta: metav1.ObjectMeta{Name: instanceID}, Data: map[string][]byte{}, } @@ -35,7 +36,7 @@ func (b *Broker) ensureSecret(impersonatedKC internalversion.SecretsGetter, name } if kerrors.IsAlreadyExists(err) { - existingSec, err := impersonatedKC.Secrets(namespace).Get(secret.Name) + existingSec, err := impersonatedKC.Secrets(namespace).Get(secret.Name, metav1.GetOptions{}) if err == nil && reflect.DeepEqual(secret.Data, existingSec.Data) { return existingSec, nil } @@ -51,7 +52,7 @@ func (b *Broker) ensureSecret(impersonatedKC internalversion.SecretsGetter, name func (b *Broker) ensureTemplateInstance(impersonatedTemplateclient internalversiontemplate.TemplateInterface, namespace string, instanceID string, template *templateapi.Template, secret *kapi.Secret, impersonate string, didWork *bool) (*templateapi.TemplateInstance, *api.Response) { templateInstance := &templateapi.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{Name: instanceID}, + ObjectMeta: metav1.ObjectMeta{Name: instanceID}, Spec: templateapi.TemplateInstanceSpec{ Template: *template, Secret: kapi.LocalObjectReference{Name: secret.Name}, @@ -68,7 +69,7 @@ func (b *Broker) ensureTemplateInstance(impersonatedTemplateclient internalversi } if kerrors.IsAlreadyExists(err) { - existingTemplateInstance, err := impersonatedTemplateclient.TemplateInstances(namespace).Get(templateInstance.Name) + existingTemplateInstance, err := impersonatedTemplateclient.TemplateInstances(namespace).Get(templateInstance.Name, metav1.GetOptions{}) if err == nil && reflect.DeepEqual(templateInstance.Spec, existingTemplateInstance.Spec) { return existingTemplateInstance, nil } @@ -97,7 +98,7 @@ func (b *Broker) ensureBrokerTemplateInstanceUIDs(brokerTemplateInstance *templa func (b *Broker) ensureBrokerTemplateInstance(namespace, instanceID string, didWork *bool) (*templateapi.BrokerTemplateInstance, *api.Response) { brokerTemplateInstance := &templateapi.BrokerTemplateInstance{ - ObjectMeta: kapi.ObjectMeta{Name: instanceID}, + ObjectMeta: metav1.ObjectMeta{Name: instanceID}, Spec: templateapi.BrokerTemplateInstanceSpec{ TemplateInstance: kapi.ObjectReference{ Kind: "TemplateInstance", @@ -119,7 +120,7 @@ func (b *Broker) ensureBrokerTemplateInstance(namespace, instanceID string, didW } if kerrors.IsAlreadyExists(err) { - existingBrokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(brokerTemplateInstance.Name) + existingBrokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(brokerTemplateInstance.Name, metav1.GetOptions{}) if err == nil && reflect.DeepEqual(brokerTemplateInstance.Spec, existingBrokerTemplateInstance.Spec) { return existingBrokerTemplateInstance, nil } diff --git a/pkg/template/servicebroker/servicebroker.go b/pkg/template/servicebroker/servicebroker.go index a38ed17a8d4b..6ab3347834ff 100644 --- a/pkg/template/servicebroker/servicebroker.go +++ b/pkg/template/servicebroker/servicebroker.go @@ -1,10 +1,10 @@ package servicebroker import ( - "k8s.io/kubernetes/pkg/auth/user" + "k8s.io/apiserver/pkg/authentication/user" + restclient "k8s.io/client-go/rest" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" authclient "github.com/openshift/origin/pkg/auth/client" "github.com/openshift/origin/pkg/client" diff --git a/pkg/template/servicebroker/unbind.go b/pkg/template/servicebroker/unbind.go index 7d12440ac3cc..123c06eedaf4 100644 --- a/pkg/template/servicebroker/unbind.go +++ b/pkg/template/servicebroker/unbind.go @@ -3,12 +3,14 @@ package servicebroker import ( "net/http" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/openservicebroker/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) func (b *Broker) Unbind(instanceID, bindingID string) *api.Response { - brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := b.templateclient.BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) if err != nil { if kerrors.IsNotFound(err) { return api.BadRequest(err) diff --git a/pkg/template/servicebroker/validation.go b/pkg/template/servicebroker/validation.go index 20292c050eb8..a77f0a6b60c7 100644 --- a/pkg/template/servicebroker/validation.go +++ b/pkg/template/servicebroker/validation.go @@ -3,12 +3,13 @@ package servicebroker import ( "fmt" + "k8s.io/apimachinery/pkg/api/validation" + "k8s.io/apimachinery/pkg/util/validation/field" + "github.com/openshift/origin/pkg/openservicebroker/api" templateapi "github.com/openshift/origin/pkg/template/api" templatevalidation "github.com/openshift/origin/pkg/template/api/validation" uservalidation "github.com/openshift/origin/pkg/user/api/validation" - "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/util/validation/field" ) func ValidateProvisionRequest(preq *api.ProvisionRequest) field.ErrorList { diff --git a/pkg/template/template.go b/pkg/template/template.go index b4511c1d6edf..39ed1013af89 100644 --- a/pkg/template/template.go +++ b/pkg/template/template.go @@ -5,9 +5,10 @@ import ( "regexp" "strings" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" "github.com/openshift/origin/pkg/template/api" . "github.com/openshift/origin/pkg/template/generator" @@ -57,7 +58,7 @@ func (p *Processor) Process(template *api.Template) field.ErrorList { idxPath := itemPath.Index(i) if obj, ok := item.(*runtime.Unknown); ok { // TODO: use runtime.DecodeList when it returns ValidationErrorList - decodedObj, err := runtime.Decode(runtime.UnstructuredJSONScheme, obj.Raw) + decodedObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, obj.Raw) if err != nil { templateErrors = append(templateErrors, field.Invalid(idxPath.Child("objects"), obj, fmt.Sprintf("unable to handle object: %v", err))) continue @@ -92,7 +93,7 @@ func stripNamespace(obj runtime.Object) { return } // TODO: allow meta.Accessor to handle runtime.Unstructured - if unstruct, ok := obj.(*runtime.Unstructured); ok && unstruct.Object != nil { + if unstruct, ok := obj.(*unstructured.Unstructured); ok && unstruct.Object != nil { if obj, ok := unstruct.Object["metadata"]; ok { if m, ok := obj.(map[string]interface{}); ok { if _, ok := m["namespace"]; ok && !stringParameterExp.MatchString(m["namespace"].(string)) { diff --git a/pkg/template/template_test.go b/pkg/template/template_test.go index f8513d3f499f..efca92fd7ece 100644 --- a/pkg/template/template_test.go +++ b/pkg/template/template_test.go @@ -9,10 +9,10 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/validation/field" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/template/api" "github.com/openshift/origin/pkg/template/api/v1" diff --git a/pkg/unidling/controller/controller.go b/pkg/unidling/controller/controller.go index 0fed982383f5..d80d7ecf0771 100644 --- a/pkg/unidling/controller/controller.go +++ b/pkg/unidling/controller/controller.go @@ -9,23 +9,23 @@ import ( unidlingapi "github.com/openshift/origin/pkg/unidling/api" unidlingutil "github.com/openshift/origin/pkg/unidling/util" - deployclient "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" + deployclient "github.com/openshift/origin/pkg/deploy/clientset/internalclientset/typed/deploy/internalversion" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/apimachinery/registered" - kextapi "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/tools/cache" + kextapi "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + kextclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - kextclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/workqueue" - "k8s.io/kubernetes/pkg/watch" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/util/workqueue" "github.com/golang/glog" ) @@ -64,7 +64,7 @@ func (c *lastFiredCache) AddIfNewer(info types.NamespacedName, newLastFired time } type UnidlingController struct { - controller *cache.Controller + controller cache.Controller scaleNamespacer kextclient.ScalesGetter endpointsNamespacer kcoreclient.EndpointsGetter queue workqueue.RateLimitingInterface @@ -95,13 +95,13 @@ func NewUnidlingController(scaleNS kextclient.ScalesGetter, endptsNS kcoreclient _, controller := cache.NewInformer( &cache.ListWatch{ // No need to list -- we only care about new events - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - options.FieldSelector = fieldSelector - return evtNS.Events(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + options.FieldSelector = fieldSelector.String() + return evtNS.Events(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - options.FieldSelector = fieldSelector - return evtNS.Events(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + options.FieldSelector = fieldSelector.String() + return evtNS.Events(metav1.NamespaceAll).Watch(options) }, }, &kapi.Event{}, @@ -259,7 +259,7 @@ func (c *UnidlingController) awaitRequest() bool { // so it will return false). func (c *UnidlingController) handleRequest(info types.NamespacedName, lastFired time.Time) (bool, error) { // fetch the endpoints associated with the service in question - targetEndpoints, err := c.endpointsNamespacer.Endpoints(info.Namespace).Get(info.Name) + targetEndpoints, err := c.endpointsNamespacer.Endpoints(info.Namespace).Get(info.Name, metav1.GetOptions{}) if err != nil { return true, fmt.Errorf("unable to retrieve endpoints: %v", err) } @@ -282,7 +282,7 @@ func (c *UnidlingController) handleRequest(info types.NamespacedName, lastFired return false, nil } - // TODO: ew, this is unversioned. Such is life when working with annotations. + // TODO: ew, this is metav1. Such is life when working with annotations. var targetScalables []unidlingapi.RecordedScaleReference if targetScalablesStr, hasTargetScalables := targetEndpoints.Annotations[unidlingapi.UnidleTargetAnnotation]; hasTargetScalables { if err = json.Unmarshal([]byte(targetScalablesStr), &targetScalables); err != nil { @@ -328,7 +328,7 @@ func (c *UnidlingController) handleRequest(info types.NamespacedName, lastFired scale.Spec.Replicas = scalableRef.Replicas - updater := unidlingutil.NewScaleUpdater(kapi.Codecs.LegacyCodec(registered.EnabledVersions()...), info.Namespace, c.dcNamespacer, c.rcNamespacer) + updater := unidlingutil.NewScaleUpdater(kapi.Codecs.LegacyCodec(kapi.Registry.EnabledVersions()...), info.Namespace, c.dcNamespacer, c.rcNamespacer) if err = scaleAnnotater.UpdateObjectScale(updater, info.Namespace, scalableRef.CrossGroupObjectReference, obj, scale); err != nil { if errors.IsNotFound(err) { utilruntime.HandleError(fmt.Errorf("%s %q does not exist, removing from list of scalables while unidling service %s/%s: %v", scalableRef.Kind, scalableRef.Name, info.Namespace, info.Name, err)) diff --git a/pkg/unidling/controller/controller_test.go b/pkg/unidling/controller/controller_test.go index 48ef9161d42d..910e8ba46c1d 100644 --- a/pkg/unidling/controller/controller_test.go +++ b/pkg/unidling/controller/controller_test.go @@ -9,15 +9,16 @@ import ( unidlingapi "github.com/openshift/origin/pkg/unidling/api" deployapi "github.com/openshift/origin/pkg/deploy/api" - deployfake "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/fake" + deployfake "github.com/openshift/origin/pkg/deploy/clientset/internalclientset/fake" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - kunversioned "k8s.io/kubernetes/pkg/api/unversioned" kextapi "k8s.io/kubernetes/pkg/apis/extensions" - kfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - ktestingcore "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" + kexternalfake "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" + kinternalfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" // install the APIs we need for the codecs to run correctly in order to build patches _ "github.com/openshift/origin/pkg/api/install" @@ -28,8 +29,8 @@ type fakeResults struct { resEndpoints *kapi.Endpoints } -func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (*kfake.Clientset, *deployfake.Clientset, *fakeResults) { - fakeClient := &kfake.Clientset{} +func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (*kinternalfake.Clientset, *deployfake.Clientset, *fakeResults) { + fakeClient := &kinternalfake.Clientset{} fakeDeployClient := &deployfake.Clientset{} nowTimeStr := nowTime.Format(time.RFC3339) @@ -50,7 +51,7 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* } endpointsObj := kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: nowTimeStr, @@ -58,20 +59,20 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* }, }, } - fakeClient.PrependReactor("get", "endpoints", func(action ktestingcore.Action) (bool, runtime.Object, error) { - if action.(ktestingcore.GetAction).GetName() == endpointsObj.Name { + fakeClient.PrependReactor("get", "endpoints", func(action clientgotesting.Action) (bool, runtime.Object, error) { + if action.(clientgotesting.GetAction).GetName() == endpointsObj.Name { return true, &endpointsObj, nil } return false, nil, nil }) - fakeDeployClient.PrependReactor("get", "deploymentconfigs", func(action ktestingcore.Action) (bool, runtime.Object, error) { - objName := action.(ktestingcore.GetAction).GetName() + fakeDeployClient.PrependReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (bool, runtime.Object, error) { + objName := action.(clientgotesting.GetAction).GetName() for _, scale := range scales { if scale.Kind == "DeploymentConfig" && objName == scale.Name { return true, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: objName, }, Spec: deployapi.DeploymentConfigSpec{ @@ -84,12 +85,12 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), objName) }) - fakeClient.PrependReactor("get", "replicationcontrollers", func(action ktestingcore.Action) (bool, runtime.Object, error) { - objName := action.(ktestingcore.GetAction).GetName() + fakeClient.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { + objName := action.(clientgotesting.GetAction).GetName() for _, scale := range scales { if scale.Kind == "ReplicationController" && objName == scale.Name { return true, &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: objName, }, Spec: kapi.ReplicationControllerSpec{ @@ -106,8 +107,8 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* resMap: make(map[unidlingapi.CrossGroupObjectReference]kextapi.Scale), } - fakeDeployClient.PrependReactor("update", "deploymentconfigs", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*deployapi.DeploymentConfig) + fakeDeployClient.PrependReactor("update", "deploymentconfigs", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*deployapi.DeploymentConfig) for _, scale := range scales { if scale.Kind == "DeploymentConfig" && obj.Name == scale.Name { newScale := scale @@ -120,8 +121,8 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), obj.Name) }) - fakeClient.PrependReactor("update", "replicationcontrollers", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*kapi.ReplicationController) + fakeClient.PrependReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) for _, scale := range scales { if scale.Kind == "ReplicationController" && obj.Name == scale.Name { newScale := scale @@ -134,8 +135,8 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), obj.Name) }) - fakeDeployClient.PrependReactor("patch", "deploymentconfigs", func(action ktestingcore.Action) (bool, runtime.Object, error) { - patchAction := action.(ktestingcore.PatchActionImpl) + fakeDeployClient.PrependReactor("patch", "deploymentconfigs", func(action clientgotesting.Action) (bool, runtime.Object, error) { + patchAction := action.(clientgotesting.PatchActionImpl) var patch deployapi.DeploymentConfig json.Unmarshal(patchAction.GetPatch(), &patch) @@ -151,8 +152,8 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), patchAction.GetName()) }) - fakeClient.PrependReactor("patch", "replicationcontrollers", func(action ktestingcore.Action) (bool, runtime.Object, error) { - patchAction := action.(ktestingcore.PatchActionImpl) + fakeClient.PrependReactor("patch", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { + patchAction := action.(clientgotesting.PatchActionImpl) var patch kapi.ReplicationController json.Unmarshal(patchAction.GetPatch(), &patch) @@ -168,8 +169,8 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), patchAction.GetName()) }) - fakeClient.AddReactor("*", "endpoints", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*kapi.Endpoints) + fakeClient.AddReactor("*", "endpoints", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*kapi.Endpoints) if obj.Name != endpointsObj.Name { return false, nil, nil } @@ -185,11 +186,12 @@ func prepFakeClient(t *testing.T, nowTime time.Time, scales ...kextapi.Scale) (* func TestControllerHandlesStaleEvents(t *testing.T) { nowTime := time.Now().Truncate(time.Second) fakeClient, fakeDeployClient, res := prepFakeClient(t, nowTime) + fakeExternalClient := kexternalfake.NewSimpleClientset() controller := &UnidlingController{ - scaleNamespacer: fakeClient.Extensions(), + scaleNamespacer: fakeExternalClient.Extensions(), endpointsNamespacer: fakeClient.Core(), rcNamespacer: fakeClient.Core(), - dcNamespacer: fakeDeployClient.Core(), + dcNamespacer: fakeDeployClient.Deploy(), } retry, err := controller.handleRequest(types.NamespacedName{ @@ -215,10 +217,10 @@ func TestControllerIgnoresAlreadyScaledObjects(t *testing.T) { nowTime := time.Now().Truncate(time.Second) baseScales := []kextapi.Scale{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerc", }, - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "ReplicationController", }, Spec: kextapi.ScaleSpec{ @@ -226,10 +228,10 @@ func TestControllerIgnoresAlreadyScaledObjects(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somedc", }, - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "DeploymentConfig", }, Spec: kextapi.ScaleSpec{ @@ -240,12 +242,13 @@ func TestControllerIgnoresAlreadyScaledObjects(t *testing.T) { idledTime := nowTime.Add(-10 * time.Second) fakeClient, fakeDeployClient, res := prepFakeClient(t, idledTime, baseScales...) + fakeExternalClient := kexternalfake.NewSimpleClientset() controller := &UnidlingController{ - scaleNamespacer: fakeClient.Extensions(), + scaleNamespacer: fakeExternalClient.Extensions(), endpointsNamespacer: fakeClient.Core(), rcNamespacer: fakeClient.Core(), - dcNamespacer: fakeDeployClient.Core(), + dcNamespacer: fakeDeployClient.Deploy(), } retry, err := controller.handleRequest(types.NamespacedName{ @@ -327,10 +330,10 @@ func TestControllerUnidlesProperly(t *testing.T) { nowTime := time.Now().Truncate(time.Second) baseScales := []kextapi.Scale{ { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerc", }, - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "ReplicationController", }, Spec: kextapi.ScaleSpec{ @@ -338,10 +341,10 @@ func TestControllerUnidlesProperly(t *testing.T) { }, }, { - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somedc", }, - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "DeploymentConfig", APIVersion: "apps.openshift.io/v1", }, @@ -352,12 +355,13 @@ func TestControllerUnidlesProperly(t *testing.T) { } fakeClient, fakeDeployClient, res := prepFakeClient(t, nowTime.Add(-10*time.Second), baseScales...) + fakeExternalClient := kexternalfake.NewSimpleClientset() controller := &UnidlingController{ - scaleNamespacer: fakeClient.Extensions(), + scaleNamespacer: fakeExternalClient.Extensions(), endpointsNamespacer: fakeClient.Core(), rcNamespacer: fakeClient.Core(), - dcNamespacer: fakeDeployClient.Core(), + dcNamespacer: fakeDeployClient.Deploy(), } retry, err := controller.handleRequest(types.NamespacedName{ @@ -417,12 +421,12 @@ type failureTestInfo struct { annotationsExpected map[string]string } -func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *deployfake.Clientset) { - fakeClient := &kfake.Clientset{} +func prepareFakeClientForFailureTest(test failureTestInfo) (*kinternalfake.Clientset, *deployfake.Clientset) { + fakeClient := &kinternalfake.Clientset{} fakeDeployClient := &deployfake.Clientset{} - fakeClient.PrependReactor("get", "endpoints", func(action ktestingcore.Action) (bool, runtime.Object, error) { - objName := action.(ktestingcore.GetAction).GetName() + fakeClient.PrependReactor("get", "endpoints", func(action clientgotesting.Action) (bool, runtime.Object, error) { + objName := action.(clientgotesting.GetAction).GetName() if test.endpointsGet != nil && objName == test.endpointsGet.Name { return true, test.endpointsGet, nil } @@ -430,12 +434,12 @@ func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *d return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), objName) }) - fakeDeployClient.PrependReactor("get", "deploymentconfigs", func(action ktestingcore.Action) (bool, runtime.Object, error) { - objName := action.(ktestingcore.GetAction).GetName() + fakeDeployClient.PrependReactor("get", "deploymentconfigs", func(action clientgotesting.Action) (bool, runtime.Object, error) { + objName := action.(clientgotesting.GetAction).GetName() for _, scale := range test.scaleGets { if scale.Kind == "DeploymentConfig" && objName == scale.Name { return true, &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: objName, }, Spec: deployapi.DeploymentConfigSpec{ @@ -448,12 +452,12 @@ func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *d return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), objName) }) - fakeClient.PrependReactor("get", "replicationcontrollers", func(action ktestingcore.Action) (bool, runtime.Object, error) { - objName := action.(ktestingcore.GetAction).GetName() + fakeClient.PrependReactor("get", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { + objName := action.(clientgotesting.GetAction).GetName() for _, scale := range test.scaleGets { if scale.Kind == "ReplicationController" && objName == scale.Name { return true, &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: objName, }, Spec: kapi.ReplicationControllerSpec{ @@ -466,8 +470,8 @@ func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *d return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), objName) }) - fakeDeployClient.PrependReactor("update", "deploymentconfigs", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*deployapi.DeploymentConfig) + fakeDeployClient.PrependReactor("update", "deploymentconfigs", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*deployapi.DeploymentConfig) for i, scale := range test.scaleGets { if scale.Kind == "DeploymentConfig" && obj.Name == scale.Name { if test.scaleUpdatesNotFound != nil && test.scaleUpdatesNotFound[i] { @@ -481,8 +485,8 @@ func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *d return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), obj.Name) }) - fakeClient.PrependReactor("update", "replicationcontrollers", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*kapi.ReplicationController) + fakeClient.PrependReactor("update", "replicationcontrollers", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*kapi.ReplicationController) for i, scale := range test.scaleGets { if scale.Kind == "ReplicationController" && obj.Name == scale.Name { if test.scaleUpdatesNotFound != nil && test.scaleUpdatesNotFound[i] { @@ -495,8 +499,8 @@ func prepareFakeClientForFailureTest(test failureTestInfo) (*kfake.Clientset, *d return true, nil, errors.NewNotFound(action.GetResource().GroupResource(), obj.Name) }) - fakeClient.PrependReactor("update", "endpoints", func(action ktestingcore.Action) (bool, runtime.Object, error) { - obj := action.(ktestingcore.UpdateAction).GetObject().(*kapi.Endpoints) + fakeClient.PrependReactor("update", "endpoints", func(action clientgotesting.Action) (bool, runtime.Object, error) { + obj := action.(clientgotesting.UpdateAction).GetObject().(*kapi.Endpoints) if obj.Name != test.endpointsGet.Name { return false, nil, nil } @@ -561,7 +565,7 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { { name: "not retry on failure to parse time", endpointsGet: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: "cheddar", @@ -574,7 +578,7 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { { name: "not retry on failure to unmarshal target scalables", endpointsGet: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: nowTime.Format(time.RFC3339), @@ -588,7 +592,7 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { { name: "remove a scalable from the list if it cannot be found (while getting)", endpointsGet: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: nowTime.Format(time.RFC3339), @@ -598,11 +602,11 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { }, scaleGets: []kextapi.Scale{ { - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "DeploymentConfig", APIVersion: "apps.openshift.io/v1", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somedc", }, Spec: kextapi.ScaleSpec{Replicas: 0}, @@ -617,7 +621,7 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { { name: "should remove a scalable from the list if it cannot be found (while updating)", endpointsGet: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: nowTime.Format(time.RFC3339), @@ -627,20 +631,20 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { }, scaleGets: []kextapi.Scale{ { - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "ReplicationController", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerc", }, Spec: kextapi.ScaleSpec{Replicas: 0}, }, { - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "DeploymentConfig", APIVersion: "apps.openshift.io/v1", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somedc", }, Spec: kextapi.ScaleSpec{Replicas: 0}, @@ -656,7 +660,7 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { { name: "retry on failed endpoints update", endpointsGet: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somesvc", Annotations: map[string]string{ unidlingapi.IdledAtAnnotation: nowTime.Format(time.RFC3339), @@ -666,20 +670,20 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { }, scaleGets: []kextapi.Scale{ { - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "ReplicationController", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somerc", }, Spec: kextapi.ScaleSpec{Replicas: 0}, }, { - TypeMeta: kunversioned.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "DeploymentConfig", APIVersion: "apps.openshift.io/v1", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "somedc", }, Spec: kextapi.ScaleSpec{Replicas: 0}, @@ -693,11 +697,12 @@ func TestControllerPerformsCorrectlyOnFailures(t *testing.T) { for _, test := range tests { fakeClient, fakeDeployClient := prepareFakeClientForFailureTest(test) + fakeExternalClient := kexternalfake.NewSimpleClientset() controller := &UnidlingController{ - scaleNamespacer: fakeClient.Extensions(), + scaleNamespacer: fakeExternalClient.Extensions(), endpointsNamespacer: fakeClient.Core(), rcNamespacer: fakeClient.Core(), - dcNamespacer: fakeDeployClient.Core(), + dcNamespacer: fakeDeployClient.Deploy(), } var retry bool diff --git a/pkg/unidling/util/scale.go b/pkg/unidling/util/scale.go index d625087f1fcf..7328cf10a8b5 100644 --- a/pkg/unidling/util/scale.go +++ b/pkg/unidling/util/scale.go @@ -3,17 +3,19 @@ package util import ( "github.com/golang/glog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" kapi "k8s.io/kubernetes/pkg/api" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - kextapi "k8s.io/kubernetes/pkg/apis/extensions" + kextapi "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - kextensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/strategicpatch" deployapi "github.com/openshift/origin/pkg/deploy/api" deployapiv1 "github.com/openshift/origin/pkg/deploy/api/v1" - deployclient "github.com/openshift/origin/pkg/deploy/client/clientset_generated/internalclientset/typed/core/internalversion" + deployclient "github.com/openshift/origin/pkg/deploy/clientset/internalclientset/typed/deploy/internalversion" unidlingapi "github.com/openshift/origin/pkg/unidling/api" ) @@ -90,7 +92,7 @@ func (s scaleUpdater) Update(annotator *ScaleAnnotater, obj runtime.Object, scal return err } - _, err = s.dcGetter.DeploymentConfigs(s.namespace).Patch(typedObj.Name, kapi.StrategicMergePatchType, patchBytes) + _, err = s.dcGetter.DeploymentConfigs(s.namespace).Patch(typedObj.Name, types.StrategicMergePatchType, patchBytes) case *kapi.ReplicationController: if typedObj.Annotations == nil { typedObj.Annotations = make(map[string]string) @@ -109,7 +111,7 @@ func (s scaleUpdater) Update(annotator *ScaleAnnotater, obj runtime.Object, scal return err } - _, err = s.rcGetter.ReplicationControllers(s.namespace).Patch(typedObj.Name, kapi.StrategicMergePatchType, patchBytes) + _, err = s.rcGetter.ReplicationControllers(s.namespace).Patch(typedObj.Name, types.StrategicMergePatchType, patchBytes) } return err } @@ -124,7 +126,7 @@ func (c *ScaleAnnotater) GetObjectWithScale(namespace string, ref unidlingapi.Cr switch { case ref.Kind == "DeploymentConfig" && (ref.Group == deployapi.GroupName || ref.Group == deployapi.LegacyGroupName): var dc *deployapi.DeploymentConfig - dc, err = c.dcs.DeploymentConfigs(namespace).Get(ref.Name) + dc, err = c.dcs.DeploymentConfigs(namespace).Get(ref.Name, metav1.GetOptions{}) if err != nil { return nil, nil, err } @@ -134,7 +136,7 @@ func (c *ScaleAnnotater) GetObjectWithScale(namespace string, ref unidlingapi.Cr obj = dc case ref.Kind == "ReplicationController" && ref.Group == kapi.GroupName: var rc *kapi.ReplicationController - rc, err = c.rcs.ReplicationControllers(namespace).Get(ref.Name) + rc, err = c.rcs.ReplicationControllers(namespace).Get(ref.Name, metav1.GetOptions{}) if err != nil { return nil, nil, err } diff --git a/pkg/user/api/fields.go b/pkg/user/api/fields.go index bf0201017fc8..9f945723aa86 100644 --- a/pkg/user/api/fields.go +++ b/pkg/user/api/fields.go @@ -1,6 +1,6 @@ package api -import "k8s.io/kubernetes/pkg/fields" +import "k8s.io/apimachinery/pkg/fields" // GroupToSelectableFields returns a label set that represents the object // changes to the returned keys require registering conversions for existing versions using Scheme.AddFieldLabelConversionFunc diff --git a/pkg/user/api/install/apigroup.go b/pkg/user/api/install/apigroup.go index 07645e627781..63d7269a0287 100644 --- a/pkg/user/api/install/apigroup.go +++ b/pkg/user/api/install/apigroup.go @@ -1,8 +1,8 @@ package install import ( - "k8s.io/kubernetes/pkg/apimachinery/announced" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/v1" diff --git a/pkg/user/api/install/install.go b/pkg/user/api/install/install.go index 4d25844b0b86..acda2c0f05d6 100644 --- a/pkg/user/api/install/install.go +++ b/pkg/user/api/install/install.go @@ -5,13 +5,12 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apimachinery" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/v1" @@ -22,13 +21,13 @@ const importPrefix = "github.com/openshift/origin/pkg/user/api" var accessor = meta.NewAccessor() // availableVersions lists all known external versions for this group from most preferred to least preferred -var availableVersions = []unversioned.GroupVersion{v1.LegacySchemeGroupVersion} +var availableVersions = []schema.GroupVersion{v1.LegacySchemeGroupVersion} func init() { - registered.RegisterVersions(availableVersions) - externalVersions := []unversioned.GroupVersion{} + kapi.Registry.RegisterVersions(availableVersions) + externalVersions := []schema.GroupVersion{} for _, v := range availableVersions { - if registered.IsAllowedVersion(v) { + if kapi.Registry.IsAllowedVersion(v) { externalVersions = append(externalVersions, v) } } @@ -37,7 +36,7 @@ func init() { return } - if err := registered.EnableVersions(externalVersions...); err != nil { + if err := kapi.Registry.EnableVersions(externalVersions...); err != nil { panic(err) } if err := enableVersions(externalVersions); err != nil { @@ -49,9 +48,9 @@ func init() { // TODO: enableVersions should be centralized rather than spread in each API // group. -// We can combine registered.RegisterVersions, registered.EnableVersions and -// registered.RegisterGroup once we have moved enableVersions there. -func enableVersions(externalVersions []unversioned.GroupVersion) error { +// We can combine kapi.Registry.RegisterVersions, kapi.Registry.EnableVersions and +// kapi.Registry.RegisterGroup once we have moved enableVersions there. +func enableVersions(externalVersions []schema.GroupVersion) error { addVersionsToScheme(externalVersions...) preferredExternalVersion := externalVersions[0] @@ -63,18 +62,18 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error { InterfacesFor: interfacesFor, } - if err := registered.RegisterGroup(groupMeta); err != nil { + if err := kapi.Registry.RegisterGroup(groupMeta); err != nil { return err } return nil } -func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { +func addVersionsToScheme(externalVersions ...schema.GroupVersion) { // add the internal version to Scheme api.AddToSchemeInCoreGroup(kapi.Scheme) // add the enabled external versions to Scheme for _, v := range externalVersions { - if !registered.IsEnabledVersion(v) { + if !kapi.Registry.IsEnabledVersion(v) { glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v) continue } @@ -89,13 +88,13 @@ func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) { } } -func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper { +func newRESTMapper(externalVersions []schema.GroupVersion) meta.RESTMapper { rootScoped := sets.NewString("User", "Identity", "UserIdentityMapping", "Group") ignoredKinds := sets.NewString() - return kapi.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped) + return meta.NewDefaultRESTMapperFromScheme(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped, kapi.Scheme) } -func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) { +func interfacesFor(version schema.GroupVersion) (*meta.VersionInterfaces, error) { switch version { case v1.LegacySchemeGroupVersion: return &meta.VersionInterfaces{ @@ -104,7 +103,7 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e }, nil default: - g, _ := registered.Group(api.LegacyGroupName) + g, _ := kapi.Registry.Group(api.LegacyGroupName) return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions) } } diff --git a/pkg/user/api/register.go b/pkg/user/api/register.go index 7348f6292e5b..38e55337b74c 100644 --- a/pkg/user/api/register.go +++ b/pkg/user/api/register.go @@ -1,9 +1,9 @@ package api import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: runtime.APIVersionInternal} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -25,21 +25,21 @@ var ( ) // Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) unversioned.GroupKind { +func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -func LegacyKind(kind string) unversioned.GroupKind { +func LegacyKind(kind string) schema.GroupKind { return LegacySchemeGroupVersion.WithKind(kind).GroupKind() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) unversioned.GroupResource { +func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } // Resource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) unversioned.GroupResource { +func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } @@ -68,10 +68,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/user/api/types.go b/pkg/user/api/types.go index 3f278757d95e..2bb712d6b8ac 100644 --- a/pkg/user/api/types.go +++ b/pkg/user/api/types.go @@ -1,8 +1,8 @@ package api import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" ) // Auth system gets identity name and provider @@ -11,8 +11,8 @@ import ( // +genclient=true type User struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta FullName string @@ -22,14 +22,14 @@ type User struct { } type UserList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []User } type Identity struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta // ProviderName is the source of identity information ProviderName string @@ -45,14 +45,14 @@ type Identity struct { } type IdentityList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []Identity } type UserIdentityMapping struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Identity kapi.ObjectReference User kapi.ObjectReference @@ -60,14 +60,14 @@ type UserIdentityMapping struct { // Group represents a referenceable set of Users type Group struct { - unversioned.TypeMeta - kapi.ObjectMeta + metav1.TypeMeta + metav1.ObjectMeta Users []string } type GroupList struct { - unversioned.TypeMeta - unversioned.ListMeta + metav1.TypeMeta + metav1.ListMeta Items []Group } diff --git a/pkg/user/api/v1/conversion.go b/pkg/user/api/v1/conversion.go index 58197930218d..4e602e817db7 100644 --- a/pkg/user/api/v1/conversion.go +++ b/pkg/user/api/v1/conversion.go @@ -1,7 +1,7 @@ package v1 import ( - "k8s.io/kubernetes/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" oapi "github.com/openshift/origin/pkg/api" "github.com/openshift/origin/pkg/user/api" diff --git a/pkg/user/api/v1/register.go b/pkg/user/api/v1/register.go index 9bb5fb2a1c39..77c12945a832 100644 --- a/pkg/user/api/v1/register.go +++ b/pkg/user/api/v1/register.go @@ -1,9 +1,9 @@ package v1 import ( - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/watch/versioned" ) @@ -14,8 +14,8 @@ const ( // SchemeGroupVersion is group version used to register these objects var ( - SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"} - LegacySchemeGroupVersion = unversioned.GroupVersion{Group: LegacyGroupName, Version: "v1"} + SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "v1"} LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, addConversionFuncs) AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme @@ -37,10 +37,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { } scheme.AddKnownTypes(SchemeGroupVersion, append(types, - &unversioned.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned - &kapi.ListOptions{}, - &kapi.DeleteOptions{}, - &kapi.ExportOptions{}, + &metav1.Status{}, // TODO: revisit in 1.6 when Status is actually registered as unversioned + &metainternal.ListOptions{}, + &metainternal.DeleteOptions{}, + &metainternal.ExportOptions{}, )..., ) versioned.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/user/api/v1/types.go b/pkg/user/api/v1/types.go index 2a042f24c7ba..797e7c4e5cc1 100644 --- a/pkg/user/api/v1/types.go +++ b/pkg/user/api/v1/types.go @@ -3,7 +3,7 @@ package v1 import ( "fmt" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api/v1" ) @@ -15,9 +15,9 @@ import ( // identity provider - if a user already exists with the incoming name, the user name may have // a number appended to it depending on the configuration of the system. type User struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // FullName is the full name of user FullName string `json:"fullName,omitempty" protobuf:"bytes,2,opt,name=fullName"` @@ -33,9 +33,9 @@ type User struct { // UserList is a collection of Users type UserList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of users Items []User `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -46,9 +46,9 @@ type UserList struct { // user. Information retrieved from the authentication provider is stored in the extra field // using a schema determined by the provider. type Identity struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // ProviderName is the source of identity information ProviderName string `json:"providerName" protobuf:"bytes,2,opt,name=providerName"` @@ -66,18 +66,18 @@ type Identity struct { // IdentityList is a collection of Identities type IdentityList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of identities Items []Identity `json:"items" protobuf:"bytes,2,rep,name=items"` } // UserIdentityMapping maps a user to an identity type UserIdentityMapping struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Identity is a reference to an identity Identity kapi.ObjectReference `json:"identity,omitempty" protobuf:"bytes,2,opt,name=identity"` @@ -96,9 +96,9 @@ func (t OptionalNames) String() string { // Group represents a referenceable set of Users type Group struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - kapi.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Users is the list of users in this group. Users OptionalNames `json:"users" protobuf:"bytes,2,rep,name=users"` @@ -106,9 +106,9 @@ type Group struct { // GroupList is a collection of Groups type GroupList struct { - unversioned.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` // Standard object's metadata. - unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of groups Items []Group `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/pkg/user/api/v1/zz_generated.conversion.go b/pkg/user/api/v1/zz_generated.conversion.go index 76151b5c7be1..6596c39df1a3 100644 --- a/pkg/user/api/v1/zz_generated.conversion.go +++ b/pkg/user/api/v1/zz_generated.conversion.go @@ -5,11 +5,12 @@ package v1 import ( + unsafe "unsafe" + api "github.com/openshift/origin/pkg/user/api" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" - unsafe "unsafe" ) func init() { diff --git a/pkg/user/api/v1/zz_generated.deepcopy.go b/pkg/user/api/v1/zz_generated.deepcopy.go index 58ca0ea8fc92..198962b8b717 100644 --- a/pkg/user/api/v1/zz_generated.deepcopy.go +++ b/pkg/user/api/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - api_v1 "k8s.io/kubernetes/pkg/api/v1" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + api_v1 "k8s.io/kubernetes/pkg/api/v1" ) func init() { diff --git a/pkg/user/api/validation/validation.go b/pkg/user/api/validation/validation.go index db7b20f7dd0e..0de13a3892c5 100644 --- a/pkg/user/api/validation/validation.go +++ b/pkg/user/api/validation/validation.go @@ -4,9 +4,9 @@ import ( "fmt" "strings" + "k8s.io/apimachinery/pkg/api/validation/path" + "k8s.io/apimachinery/pkg/util/validation/field" kvalidation "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/api/validation/path" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" ) diff --git a/pkg/user/api/validation/validation_test.go b/pkg/user/api/validation/validation_test.go index 5c8e142abcbf..b03d171bb4a0 100644 --- a/pkg/user/api/validation/validation_test.go +++ b/pkg/user/api/validation/validation_test.go @@ -4,13 +4,14 @@ import ( "testing" "github.com/openshift/origin/pkg/user/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" ) func TestValidateGroup(t *testing.T) { validObj := func() *api.Group { return &api.Group{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myname", }, Users: []string{"myuser"}, @@ -43,7 +44,7 @@ func TestValidateGroup(t *testing.T) { func TestValidateGroupUpdate(t *testing.T) { validObj := func() *api.Group { return &api.Group{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myname", ResourceVersion: "1", }, @@ -79,7 +80,7 @@ func TestValidateGroupUpdate(t *testing.T) { func TestValidateUser(t *testing.T) { validObj := func() *api.User { return &api.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myname", }, Identities: []string{"myprovider:mylogin"}, @@ -120,7 +121,7 @@ func TestValidateUserUpdate(t *testing.T) { validObj := func() *api.User { return &api.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myname", ResourceVersion: "1", }, @@ -164,7 +165,7 @@ func TestValidateUserUpdate(t *testing.T) { func TestValidateIdentity(t *testing.T) { validObj := func() *api.Identity { return &api.Identity{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myprovider:myproviderusername", }, ProviderName: "myprovider", @@ -217,7 +218,7 @@ func TestValidateIdentity(t *testing.T) { func TestValidateIdentityUpdate(t *testing.T) { validObj := func() *api.Identity { return &api.Identity{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myprovider:myproviderusername", ResourceVersion: "1", }, @@ -273,7 +274,7 @@ func TestValidateIdentityUpdate(t *testing.T) { func TestValidateUserIdentityMapping(t *testing.T) { validObj := func() *api.UserIdentityMapping { return &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myprovider:myproviderusername", }, Identity: kapi.ObjectReference{Name: "myprovider:myproviderusername"}, @@ -307,7 +308,7 @@ func TestValidateUserIdentityMapping(t *testing.T) { func TestValidateUserIdentityMappingUpdate(t *testing.T) { validObj := func() *api.UserIdentityMapping { return &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myprovider:myproviderusername", ResourceVersion: "1", }, diff --git a/pkg/user/api/zz_generated.deepcopy.go b/pkg/user/api/zz_generated.deepcopy.go index 54b104ab56bf..c03ff545c346 100644 --- a/pkg/user/api/zz_generated.deepcopy.go +++ b/pkg/user/api/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package api import ( - pkg_api "k8s.io/kubernetes/pkg/api" - conversion "k8s.io/kubernetes/pkg/conversion" - runtime "k8s.io/kubernetes/pkg/runtime" reflect "reflect" + + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + pkg_api "k8s.io/kubernetes/pkg/api" ) func init() { diff --git a/pkg/user/cache/groups.go b/pkg/user/cache/groups.go index b565bc9d2632..f2e92111c4c8 100644 --- a/pkg/user/cache/groups.go +++ b/pkg/user/cache/groups.go @@ -4,10 +4,12 @@ import ( "fmt" "time" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/client-go/tools/cache" userapi "github.com/openshift/origin/pkg/user/api" groupregistry "github.com/openshift/origin/pkg/user/registry/group" @@ -32,15 +34,15 @@ func ByUserIndexKeys(obj interface{}) ([]string, error) { } func NewGroupCache(groupRegistry groupregistry.Registry) *GroupCache { - allNamespaceContext := kapi.WithNamespace(kapi.NewContext(), kapi.NamespaceAll) + allNamespaceContext := apirequest.WithNamespace(apirequest.NewContext(), metav1.NamespaceAll) indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{byUserIndexName: ByUserIndexKeys}) reflector := cache.NewReflector( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { + ListFunc: func(options metainternal.ListOptions) (runtime.Object, error) { return groupRegistry.ListGroups(allNamespaceContext, &options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metainternal.ListOptions) (watch.Interface, error) { return groupRegistry.WatchGroups(allNamespaceContext, &options) }, }, diff --git a/pkg/user/client/clientset_generated/internalclientset/clientset.go b/pkg/user/client/clientset_generated/internalclientset/clientset.go index c7fb8341b5eb..8b014036921f 100644 --- a/pkg/user/client/clientset_generated/internalclientset/clientset.go +++ b/pkg/user/client/clientset_generated/internalclientset/clientset.go @@ -3,9 +3,9 @@ package internalclientset import ( "github.com/golang/glog" internalversioncore "github.com/openshift/origin/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/user/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/user/client/clientset_generated/internalclientset/fake/clientset_generated.go index 419c8ef8bf09..c423341e548e 100644 --- a/pkg/user/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/user/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/user/client/clientset_generated/internalclientset" internalversioncore "github.com/openshift/origin/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion" fakeinternalversioncore "github.com/openshift/origin/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go index 29948a23a4d6..bdba592c6632 100644 --- a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go +++ b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go @@ -1,9 +1,9 @@ package internalversion import ( + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" ) type CoreInterface interface { @@ -11,7 +11,7 @@ type CoreInterface interface { UsersGetter } -// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreClient is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreClient struct { restClient restclient.Interface } diff --git a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go index d06a76933e85..d725c73c87ad 100644 --- a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go +++ b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( internalversion "github.com/openshift/origin/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_user.go b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_user.go index 55e051c361c4..e935dd1a38b2 100644 --- a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_user.go +++ b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_user.go @@ -2,11 +2,11 @@ package fake import ( api "github.com/openshift/origin/pkg/user/api" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" pkg_api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeUsers implements UserInterface @@ -15,7 +15,7 @@ type FakeUsers struct { ns string } -var usersResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "users"} +var usersResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "users"} func (c *FakeUsers) Create(user *api.User) (result *api.User, err error) { obj, err := c.Fake. diff --git a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/user.go b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/user.go index 2496a9f66ca1..b0db675103c4 100644 --- a/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/user.go +++ b/pkg/user/client/clientset_generated/internalclientset/typed/core/internalversion/user.go @@ -2,9 +2,9 @@ package internalversion import ( api "github.com/openshift/origin/pkg/user/api" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" pkg_api "k8s.io/kubernetes/pkg/api" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // UsersGetter has a method to return a UserInterface. diff --git a/pkg/user/client/clientset_generated/release_v1_5/clientset.go b/pkg/user/client/clientset_generated/release_v1_5/clientset.go index b7f38f0985a7..94cc5702fad5 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/clientset.go +++ b/pkg/user/client/clientset_generated/release_v1_5/clientset.go @@ -3,9 +3,9 @@ package release_v1_5 import ( "github.com/golang/glog" v1core "github.com/openshift/origin/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - discovery "k8s.io/kubernetes/pkg/client/typed/discovery" - "k8s.io/kubernetes/pkg/util/flowcontrol" + discovery "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" _ "k8s.io/kubernetes/plugin/pkg/client/auth" ) diff --git a/pkg/user/client/clientset_generated/release_v1_5/fake/clientset_generated.go b/pkg/user/client/clientset_generated/release_v1_5/fake/clientset_generated.go index ecbd96fe7389..44d0abc83197 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/fake/clientset_generated.go +++ b/pkg/user/client/clientset_generated/release_v1_5/fake/clientset_generated.go @@ -4,13 +4,13 @@ import ( clientset "github.com/openshift/origin/pkg/user/client/clientset_generated/release_v1_5" v1core "github.com/openshift/origin/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1" fakev1core "github.com/openshift/origin/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/client/typed/discovery" fakediscovery "k8s.io/kubernetes/pkg/client/typed/discovery/fake" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. diff --git a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go index 7bce7bfb25f8..f178d2c0b86a 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go +++ b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/core_client.go @@ -2,11 +2,12 @@ package v1 import ( fmt "fmt" + + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" - registered "k8s.io/kubernetes/pkg/apimachinery/registered" - restclient "k8s.io/kubernetes/pkg/client/restclient" - serializer "k8s.io/kubernetes/pkg/runtime/serializer" ) type CoreV1Interface interface { @@ -14,7 +15,7 @@ type CoreV1Interface interface { UsersGetter } -// CoreV1Client is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group. +// CoreV1Client is used to interact with features provided by the k8s.io/apimachinery/pkg/apimachinery/registered.Group group. type CoreV1Client struct { restClient restclient.Interface } @@ -52,7 +53,7 @@ func New(c restclient.Interface) *CoreV1Client { } func setConfigDefaults(config *restclient.Config) error { - gv, err := unversioned.ParseGroupVersion("/v1") + gv, err := schema.ParseGroupVersion("/v1") if err != nil { return err } diff --git a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go index 5cca31e385b7..7d281fabdcff 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go +++ b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_core_client.go @@ -2,7 +2,7 @@ package fake import ( v1 "github.com/openshift/origin/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" + restclient "k8s.io/client-go/rest" core "k8s.io/kubernetes/pkg/client/testing/core" ) diff --git a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_user.go b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_user.go index d2a2d6798e87..83c61a7fcc0d 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_user.go +++ b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/fake/fake_user.go @@ -2,12 +2,12 @@ package fake import ( v1 "github.com/openshift/origin/pkg/user/api/v1" + labels "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/api" - unversioned "k8s.io/kubernetes/pkg/api/unversioned" api_v1 "k8s.io/kubernetes/pkg/api/v1" core "k8s.io/kubernetes/pkg/client/testing/core" - labels "k8s.io/kubernetes/pkg/labels" - watch "k8s.io/kubernetes/pkg/watch" ) // FakeUsers implements UserInterface @@ -16,7 +16,7 @@ type FakeUsers struct { ns string } -var usersResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "users"} +var usersResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "users"} func (c *FakeUsers) Create(user *v1.User) (result *v1.User, err error) { obj, err := c.Fake. diff --git a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/user.go b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/user.go index 1d03a8f9ae28..855f667052cc 100644 --- a/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/user.go +++ b/pkg/user/client/clientset_generated/release_v1_5/typed/core/v1/user.go @@ -2,10 +2,10 @@ package v1 import ( v1 "github.com/openshift/origin/pkg/user/api/v1" + watch "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" - restclient "k8s.io/kubernetes/pkg/client/restclient" - watch "k8s.io/kubernetes/pkg/watch" ) // UsersGetter has a method to return a UserInterface. diff --git a/pkg/user/reaper/bindings.go b/pkg/user/reaper/bindings.go index 76a3a68f600c..abb90c9eacb3 100644 --- a/pkg/user/reaper/bindings.go +++ b/pkg/user/reaper/bindings.go @@ -2,15 +2,16 @@ package reaper import ( "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" "github.com/openshift/origin/pkg/client" ) // reapClusterBindings removes the subject from cluster-level role bindings func reapClusterBindings(removedSubject kapi.ObjectReference, c client.ClusterRoleBindingsInterface) error { - clusterBindings, err := c.ClusterRoleBindings().List(kapi.ListOptions{}) + clusterBindings, err := c.ClusterRoleBindings().List(metav1.ListOptions{}) if err != nil { return err } @@ -34,7 +35,7 @@ func reapClusterBindings(removedSubject kapi.ObjectReference, c client.ClusterRo // reapNamespacedBindings removes the subject from namespaced role bindings func reapNamespacedBindings(removedSubject kapi.ObjectReference, c client.RoleBindingsNamespacer) error { - namespacedBindings, err := c.RoleBindings(kapi.NamespaceAll).List(kapi.ListOptions{}) + namespacedBindings, err := c.RoleBindings(metav1.NamespaceAll).List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/user/reaper/group.go b/pkg/user/reaper/group.go index 9debc1144fd8..796ae4f4320c 100644 --- a/pkg/user/reaper/group.go +++ b/pkg/user/reaper/group.go @@ -4,8 +4,9 @@ import ( "time" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl" @@ -35,7 +36,7 @@ type GroupReaper struct { // Stop on a reaper is actually used for deletion. In this case, we'll delete referencing identities, clusterBindings, and bindings, // then delete the group -func (r *GroupReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { +func (r *GroupReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { removedSubject := kapi.ObjectReference{Kind: "Group", Name: name} if err := reapClusterBindings(removedSubject, r.clusterBindingClient); err != nil { @@ -47,7 +48,7 @@ func (r *GroupReaper) Stop(namespace, name string, timeout time.Duration, graceP } // Remove the group from sccs - sccs, err := r.sccClient.SecurityContextConstraints().List(kapi.ListOptions{}) + sccs, err := r.sccClient.SecurityContextConstraints().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/user/reaper/group_test.go b/pkg/user/reaper/group_test.go index b7bcfeeeb6b4..be2c9696693c 100644 --- a/pkg/user/reaper/group_test.go +++ b/pkg/user/reaper/group_test.go @@ -4,11 +4,12 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/davecgh/go-spew/spew" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -19,9 +20,9 @@ import ( ) var ( - groupsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "groups"} - clusterRoleBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "clusterrolebindings"} - roleBindingsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "rolebindings"} + groupsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "groups"} + clusterRoleBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "clusterrolebindings"} + roleBindingsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "rolebindings"} ) func TestGroupReaper(t *testing.T) { @@ -36,7 +37,7 @@ func TestGroupReaper(t *testing.T) { group: "mygroup", objects: []runtime.Object{}, expected: []interface{}{ - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, }, }, { @@ -44,28 +45,28 @@ func TestGroupReaper(t *testing.T) { group: "mygroup", objects: []runtime.Object{ &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-no-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-no-subjects"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }, &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "mygroup", Kind: "Group"}}, }, &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-mismatched-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-mismatched-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "mygroup"}, {Name: "mygroup", Kind: "User"}, {Name: "mygroup", Kind: "Other"}}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: clusterRoleBindingsResource}, Object: &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: clusterRoleBindingsResource}, Object: &authorizationapi.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, }, }, { @@ -73,28 +74,28 @@ func TestGroupReaper(t *testing.T) { group: "mygroup", objects: []runtime.Object{ &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-no-subjects", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-no-subjects", Namespace: "ns1"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "mygroup", Kind: "Group"}}, }, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-mismatched-subject", Namespace: "ns3"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-mismatched-subject", Namespace: "ns3"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "mygroup"}, {Name: "mygroup", Kind: "User"}, {Name: "mygroup", Kind: "Other"}}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: roleBindingsResource, Namespace: "ns2"}, Object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: roleBindingsResource, Namespace: "ns2"}, Object: &authorizationapi.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, }, }, { @@ -102,25 +103,25 @@ func TestGroupReaper(t *testing.T) { group: "mygroup", objects: []runtime.Object{ &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-no-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-no-subjects"}, Groups: []string{}, }, &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-one-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-one-subject"}, Groups: []string{"mygroup"}, }, &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-mismatched-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-mismatched-subjects"}, Users: []string{"mygroup"}, Groups: []string{"mygroup2"}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: unversioned.GroupVersionResource{Resource: "securitycontextconstraints"}}, Object: &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-one-subject"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: schema.GroupVersionResource{Resource: "securitycontextconstraints"}}, Object: &kapi.SecurityContextConstraints{ + ObjectMeta: metav1.ObjectMeta{Name: "scc-one-subject"}, Groups: []string{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: groupsResource}, Name: "mygroup"}, }, }, } @@ -130,11 +131,11 @@ func TestGroupReaper(t *testing.T) { ktc := fake.NewSimpleClientset(test.objects...) actual := []interface{}{} - oreactor := func(action core.Action) (handled bool, ret runtime.Object, err error) { + oreactor := func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { actual = append(actual, action) return false, nil, nil } - kreactor := func(action core.Action) (handled bool, ret runtime.Object, err error) { + kreactor := func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { actual = append(actual, action) return false, nil, nil } diff --git a/pkg/user/reaper/user.go b/pkg/user/reaper/user.go index f4d46ad54242..16e7d87a9a84 100644 --- a/pkg/user/reaper/user.go +++ b/pkg/user/reaper/user.go @@ -4,8 +4,9 @@ import ( "time" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl" @@ -41,7 +42,7 @@ type UserReaper struct { // Stop on a reaper is actually used for deletion. In this case, we'll delete referencing identities, clusterBindings, and bindings, // then delete the user -func (r *UserReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error { +func (r *UserReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error { removedSubject := kapi.ObjectReference{Kind: "User", Name: name} if err := reapClusterBindings(removedSubject, r.clusterBindingClient); err != nil { @@ -53,7 +54,7 @@ func (r *UserReaper) Stop(namespace, name string, timeout time.Duration, gracePe } // Remove the user from sccs - sccs, err := r.sccClient.SecurityContextConstraints().List(kapi.ListOptions{}) + sccs, err := r.sccClient.SecurityContextConstraints().List(metav1.ListOptions{}) if err != nil { return err } @@ -74,7 +75,7 @@ func (r *UserReaper) Stop(namespace, name string, timeout time.Duration, gracePe } // Remove the user from groups - groups, err := r.groupClient.Groups().List(kapi.ListOptions{}) + groups, err := r.groupClient.Groups().List(metav1.ListOptions{}) if err != nil { return err } @@ -97,7 +98,7 @@ func (r *UserReaper) Stop(namespace, name string, timeout time.Duration, gracePe // Remove the user's OAuthClientAuthorizations // Once https://github.com/kubernetes/kubernetes/pull/28112 is fixed, use a field selector // to filter on the userName, rather than fetching all authorizations and filtering client-side - authorizations, err := r.authorizationsClient.OAuthClientAuthorizations().List(kapi.ListOptions{}) + authorizations, err := r.authorizationsClient.OAuthClientAuthorizations().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/pkg/user/reaper/user_test.go b/pkg/user/reaper/user_test.go index 1a7c2c048be2..7c92e9a30af4 100644 --- a/pkg/user/reaper/user_test.go +++ b/pkg/user/reaper/user_test.go @@ -4,11 +4,12 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" "github.com/davecgh/go-spew/spew" @@ -19,9 +20,9 @@ import ( ) var ( - usersResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "users"} - securityContextContraintsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "securitycontextconstraints"} - oAuthClientAuthorizationsResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "oauthclientauthorizations"} + usersResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "users"} + securityContextContraintsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "securitycontextconstraints"} + oAuthClientAuthorizationsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: "oauthclientauthorizations"} ) func TestUserReaper(t *testing.T) { @@ -36,7 +37,7 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{}, expected: []interface{}{ - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -44,28 +45,28 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-no-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-no-subjects"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }, &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "bob", Kind: "User"}}, }, &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-mismatched-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-mismatched-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "bob"}, {Name: "bob", Kind: "Group"}, {Name: "bob", Kind: "Other"}}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: clusterRoleBindingsResource}, Object: &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: clusterRoleBindingsResource}, Object: &authorizationapi.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -73,28 +74,28 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-no-subjects", Namespace: "ns1"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-no-subjects", Namespace: "ns1"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "bob", Kind: "User"}}, }, &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-mismatched-subject", Namespace: "ns3"}, + ObjectMeta: metav1.ObjectMeta{Name: "binding-mismatched-subject", Namespace: "ns3"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{{Name: "bob"}, {Name: "bob", Kind: "Group"}, {Name: "bob", Kind: "Other"}}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: roleBindingsResource, Namespace: "ns2"}, Object: &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: roleBindingsResource, Namespace: "ns2"}, Object: &authorizationapi.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{Name: "binding-one-subject", Namespace: "ns2"}, RoleRef: kapi.ObjectReference{Name: "role"}, Subjects: []kapi.ObjectReference{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -102,25 +103,25 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-no-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-no-subjects"}, Users: []string{}, }, &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-one-subject"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-one-subject"}, Users: []string{"bob"}, }, &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-mismatched-subjects"}, + ObjectMeta: metav1.ObjectMeta{Name: "scc-mismatched-subjects"}, Users: []string{"bob2"}, Groups: []string{"bob"}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: securityContextContraintsResource}, Object: &kapi.SecurityContextConstraints{ - ObjectMeta: kapi.ObjectMeta{Name: "scc-one-subject"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: securityContextContraintsResource}, Object: &kapi.SecurityContextConstraints{ + ObjectMeta: metav1.ObjectMeta{Name: "scc-one-subject"}, Users: []string{}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -128,25 +129,25 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &authenticationapi.Identity{ - ObjectMeta: kapi.ObjectMeta{Name: "identity-no-user"}, + ObjectMeta: metav1.ObjectMeta{Name: "identity-no-user"}, User: kapi.ObjectReference{}, }, &authenticationapi.Identity{ - ObjectMeta: kapi.ObjectMeta{Name: "identity-matching-user"}, + ObjectMeta: metav1.ObjectMeta{Name: "identity-matching-user"}, User: kapi.ObjectReference{Name: "bob"}, }, &authenticationapi.Identity{ - ObjectMeta: kapi.ObjectMeta{Name: "identity-different-uid"}, + ObjectMeta: metav1.ObjectMeta{Name: "identity-different-uid"}, User: kapi.ObjectReference{Name: "bob", UID: "123"}, }, &authenticationapi.Identity{ - ObjectMeta: kapi.ObjectMeta{Name: "identity-different-user"}, + ObjectMeta: metav1.ObjectMeta{Name: "identity-different-user"}, User: kapi.ObjectReference{Name: "bob2"}, }, }, expected: []interface{}{ // Make sure identities are not messed with, only the user is removed - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -154,32 +155,32 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-no-users"}, + ObjectMeta: metav1.ObjectMeta{Name: "group-no-users"}, Users: []string{}, }, &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-one-user"}, + ObjectMeta: metav1.ObjectMeta{Name: "group-one-user"}, Users: []string{"bob"}, }, &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-multiple-users"}, + ObjectMeta: metav1.ObjectMeta{Name: "group-multiple-users"}, Users: []string{"bob2", "bob", "steve"}, }, &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-mismatched-users"}, + ObjectMeta: metav1.ObjectMeta{Name: "group-mismatched-users"}, Users: []string{"bob2", "steve"}, }, }, expected: []interface{}{ - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: groupsResource}, Object: &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-one-user"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: groupsResource}, Object: &authenticationapi.Group{ + ObjectMeta: metav1.ObjectMeta{Name: "group-one-user"}, Users: []string{}, }}, - core.UpdateActionImpl{ActionImpl: core.ActionImpl{Verb: "update", Resource: groupsResource}, Object: &authenticationapi.Group{ - ObjectMeta: kapi.ObjectMeta{Name: "group-multiple-users"}, + clientgotesting.UpdateActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "update", Resource: groupsResource}, Object: &authenticationapi.Group{ + ObjectMeta: metav1.ObjectMeta{Name: "group-multiple-users"}, Users: []string{"bob2", "steve"}, }}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, { @@ -187,25 +188,25 @@ func TestUserReaper(t *testing.T) { user: "bob", objects: []runtime.Object{ &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "other-user"}, + ObjectMeta: metav1.ObjectMeta{Name: "other-user"}, UserName: "alice", UserUID: "123", }, &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "bob-authorization-1"}, + ObjectMeta: metav1.ObjectMeta{Name: "bob-authorization-1"}, UserName: "bob", UserUID: "234", }, &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "bob-authorization-2"}, + ObjectMeta: metav1.ObjectMeta{Name: "bob-authorization-2"}, UserName: "bob", UserUID: "345", }, }, expected: []interface{}{ - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: oAuthClientAuthorizationsResource}, Name: "bob-authorization-1"}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: oAuthClientAuthorizationsResource}, Name: "bob-authorization-2"}, - core.DeleteActionImpl{ActionImpl: core.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: oAuthClientAuthorizationsResource}, Name: "bob-authorization-1"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: oAuthClientAuthorizationsResource}, Name: "bob-authorization-2"}, + clientgotesting.DeleteActionImpl{ActionImpl: clientgotesting.ActionImpl{Verb: "delete", Resource: usersResource}, Name: "bob"}, }, }, } @@ -215,11 +216,11 @@ func TestUserReaper(t *testing.T) { ktc := fake.NewSimpleClientset(test.objects...) actual := []interface{}{} - oreactor := func(action core.Action) (handled bool, ret runtime.Object, err error) { + oreactor := func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { actual = append(actual, action) return false, nil, nil } - kreactor := func(action core.Action) (handled bool, ret runtime.Object, err error) { + kreactor := func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { actual = append(actual, action) return false, nil, nil } diff --git a/pkg/user/registry/group/etcd/etcd.go b/pkg/user/registry/group/etcd/etcd.go index 789913a4b6ac..0dc9b295c1f9 100644 --- a/pkg/user/registry/group/etcd/etcd.go +++ b/pkg/user/registry/group/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/registry/group" diff --git a/pkg/user/registry/group/registry.go b/pkg/user/registry/group/registry.go index 4c601f3f96da..062bdcf70137 100644 --- a/pkg/user/registry/group/registry.go +++ b/pkg/user/registry/group/registry.go @@ -1,9 +1,12 @@ package group import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/user/api" ) @@ -11,17 +14,17 @@ import ( // Registry is an interface implemented by things that know how to store Group objects. type Registry interface { // ListGroups obtains a list of groups having labels which match selector. - ListGroups(ctx kapi.Context, options *kapi.ListOptions) (*api.GroupList, error) + ListGroups(ctx apirequest.Context, options *metainternal.ListOptions) (*api.GroupList, error) // GetGroup returns a specific group - GetGroup(ctx kapi.Context, name string) (*api.Group, error) + GetGroup(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Group, error) // CreateGroup creates a group - CreateGroup(ctx kapi.Context, group *api.Group) (*api.Group, error) + CreateGroup(ctx apirequest.Context, group *api.Group) (*api.Group, error) // UpdateGroup updates an existing group - UpdateGroup(ctx kapi.Context, group *api.Group) (*api.Group, error) + UpdateGroup(ctx apirequest.Context, group *api.Group) (*api.Group, error) // DeleteGroup deletes a name. - DeleteGroup(ctx kapi.Context, name string) error + DeleteGroup(ctx apirequest.Context, name string) error // WatchGroups watches groups. - WatchGroups(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) + WatchGroups(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) } // Storage is an interface for a standard REST Storage backend @@ -40,7 +43,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListGroups(ctx kapi.Context, options *kapi.ListOptions) (*api.GroupList, error) { +func (s *storage) ListGroups(ctx apirequest.Context, options *metainternal.ListOptions) (*api.GroupList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -48,15 +51,15 @@ func (s *storage) ListGroups(ctx kapi.Context, options *kapi.ListOptions) (*api. return obj.(*api.GroupList), nil } -func (s *storage) GetGroup(ctx kapi.Context, name string) (*api.Group, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetGroup(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Group, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.Group), nil } -func (s *storage) CreateGroup(ctx kapi.Context, group *api.Group) (*api.Group, error) { +func (s *storage) CreateGroup(ctx apirequest.Context, group *api.Group) (*api.Group, error) { obj, err := s.Create(ctx, group) if err != nil { return nil, err @@ -64,7 +67,7 @@ func (s *storage) CreateGroup(ctx kapi.Context, group *api.Group) (*api.Group, e return obj.(*api.Group), nil } -func (s *storage) UpdateGroup(ctx kapi.Context, group *api.Group) (*api.Group, error) { +func (s *storage) UpdateGroup(ctx apirequest.Context, group *api.Group) (*api.Group, error) { obj, _, err := s.Update(ctx, group.Name, rest.DefaultUpdatedObjectInfo(group, kapi.Scheme)) if err != nil { return nil, err @@ -72,11 +75,11 @@ func (s *storage) UpdateGroup(ctx kapi.Context, group *api.Group) (*api.Group, e return obj.(*api.Group), nil } -func (s *storage) DeleteGroup(ctx kapi.Context, name string) error { - _, err := s.Delete(ctx, name, nil) +func (s *storage) DeleteGroup(ctx apirequest.Context, name string) error { + _, _, err := s.Delete(ctx, name, nil) return err } -func (s *storage) WatchGroups(ctx kapi.Context, options *kapi.ListOptions) (watch.Interface, error) { +func (s *storage) WatchGroups(ctx apirequest.Context, options *metainternal.ListOptions) (watch.Interface, error) { return s.Watch(ctx, options) } diff --git a/pkg/user/registry/group/strategy.go b/pkg/user/registry/group/strategy.go index 34d6be3e8596..35f1178679f1 100644 --- a/pkg/user/registry/group/strategy.go +++ b/pkg/user/registry/group/strategy.go @@ -3,12 +3,13 @@ package group import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/validation" @@ -23,7 +24,7 @@ type groupStrategy struct { // objects via the REST API. var Strategy = groupStrategy{kapi.Scheme} -func (groupStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (groupStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for groups func (groupStrategy) NamespaceScoped() bool { @@ -34,11 +35,11 @@ func (groupStrategy) GenerateName(base string) string { return base } -func (groupStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (groupStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new group -func (groupStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (groupStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateGroup(obj.(*api.Group)) } @@ -56,7 +57,7 @@ func (groupStrategy) Canonicalize(obj runtime.Object) { } // ValidateUpdate is the default update validation for an end group. -func (groupStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (groupStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateGroupUpdate(obj.(*api.Group), old.(*api.Group)) } diff --git a/pkg/user/registry/identity/etcd/etcd.go b/pkg/user/registry/identity/etcd/etcd.go index 001889340780..94c7501c040f 100644 --- a/pkg/user/registry/identity/etcd/etcd.go +++ b/pkg/user/registry/identity/etcd/etcd.go @@ -1,9 +1,9 @@ package etcd import ( - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/registry/identity" diff --git a/pkg/user/registry/identity/registry.go b/pkg/user/registry/identity/registry.go index e0e7ccab7e66..3b32b98423e0 100644 --- a/pkg/user/registry/identity/registry.go +++ b/pkg/user/registry/identity/registry.go @@ -1,9 +1,12 @@ package identity import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/user/api" ) @@ -11,13 +14,13 @@ import ( // Registry is an interface implemented by things that know how to store Identity objects. type Registry interface { // ListIdentities obtains a list of Identities having labels which match selector. - ListIdentities(ctx kapi.Context, options *kapi.ListOptions) (*api.IdentityList, error) + ListIdentities(ctx apirequest.Context, options *metainternal.ListOptions) (*api.IdentityList, error) // GetIdentity returns a specific Identity - GetIdentity(ctx kapi.Context, name string) (*api.Identity, error) + GetIdentity(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Identity, error) // CreateIdentity creates a Identity - CreateIdentity(ctx kapi.Context, Identity *api.Identity) (*api.Identity, error) + CreateIdentity(ctx apirequest.Context, Identity *api.Identity) (*api.Identity, error) // UpdateIdentity updates an existing Identity - UpdateIdentity(ctx kapi.Context, Identity *api.Identity) (*api.Identity, error) + UpdateIdentity(ctx apirequest.Context, Identity *api.Identity) (*api.Identity, error) } func identityName(provider, identity string) string { @@ -31,8 +34,8 @@ type Storage interface { rest.Lister rest.Getter - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) - Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) + Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) } // storage puts strong typing around storage calls @@ -46,7 +49,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListIdentities(ctx kapi.Context, options *kapi.ListOptions) (*api.IdentityList, error) { +func (s *storage) ListIdentities(ctx apirequest.Context, options *metainternal.ListOptions) (*api.IdentityList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -54,15 +57,15 @@ func (s *storage) ListIdentities(ctx kapi.Context, options *kapi.ListOptions) (* return obj.(*api.IdentityList), nil } -func (s *storage) GetIdentity(ctx kapi.Context, name string) (*api.Identity, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetIdentity(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Identity, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.Identity), nil } -func (s *storage) CreateIdentity(ctx kapi.Context, identity *api.Identity) (*api.Identity, error) { +func (s *storage) CreateIdentity(ctx apirequest.Context, identity *api.Identity) (*api.Identity, error) { obj, err := s.Create(ctx, identity) if err != nil { return nil, err @@ -70,7 +73,7 @@ func (s *storage) CreateIdentity(ctx kapi.Context, identity *api.Identity) (*api return obj.(*api.Identity), nil } -func (s *storage) UpdateIdentity(ctx kapi.Context, identity *api.Identity) (*api.Identity, error) { +func (s *storage) UpdateIdentity(ctx apirequest.Context, identity *api.Identity) (*api.Identity, error) { obj, _, err := s.Update(ctx, identity.Name, rest.DefaultUpdatedObjectInfo(identity, kapi.Scheme)) if err != nil { return nil, err diff --git a/pkg/user/registry/identity/strategy.go b/pkg/user/registry/identity/strategy.go index aeb7eae29ba2..05d97d5cad47 100644 --- a/pkg/user/registry/identity/strategy.go +++ b/pkg/user/registry/identity/strategy.go @@ -3,12 +3,13 @@ package identity import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/validation" @@ -23,7 +24,7 @@ type identityStrategy struct { // objects via the REST API. var Strategy = identityStrategy{kapi.Scheme} -func (identityStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (identityStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for users func (identityStrategy) NamespaceScoped() bool { @@ -34,13 +35,13 @@ func (identityStrategy) GenerateName(base string) string { return base } -func (identityStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (identityStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { identity := obj.(*api.Identity) identity.Name = identityName(identity.ProviderName, identity.ProviderUserName) } // Validate validates a new user -func (identityStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (identityStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { identity := obj.(*api.Identity) return validation.ValidateIdentity(identity) } @@ -59,7 +60,7 @@ func (identityStrategy) Canonicalize(obj runtime.Object) { } // ValidateUpdate is the default update validation for an identity -func (identityStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (identityStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateIdentityUpdate(obj.(*api.Identity), old.(*api.Identity)) } diff --git a/pkg/user/registry/test/identity.go b/pkg/user/registry/test/identity.go index 2a14b816a82e..154488afd276 100644 --- a/pkg/user/registry/test/identity.go +++ b/pkg/user/registry/test/identity.go @@ -1,8 +1,10 @@ package test import ( - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/user/api" ) @@ -36,7 +38,7 @@ func NewIdentityRegistry() *IdentityRegistry { } } -func (r *IdentityRegistry) GetIdentity(ctx kapi.Context, name string) (*api.Identity, error) { +func (r *IdentityRegistry) GetIdentity(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.Identity, error) { *r.Actions = append(*r.Actions, Action{"GetIdentity", name}) if identity, ok := r.Get[name]; ok { return identity, nil @@ -47,7 +49,7 @@ func (r *IdentityRegistry) GetIdentity(ctx kapi.Context, name string) (*api.Iden return nil, kerrs.NewNotFound(api.Resource("identity"), name) } -func (r *IdentityRegistry) CreateIdentity(ctx kapi.Context, u *api.Identity) (*api.Identity, error) { +func (r *IdentityRegistry) CreateIdentity(ctx apirequest.Context, u *api.Identity) (*api.Identity, error) { *r.Actions = append(*r.Actions, Action{"CreateIdentity", u}) if r.Create == nil && r.CreateErr == nil { return u, nil @@ -55,7 +57,7 @@ func (r *IdentityRegistry) CreateIdentity(ctx kapi.Context, u *api.Identity) (*a return r.Create, r.CreateErr } -func (r *IdentityRegistry) UpdateIdentity(ctx kapi.Context, u *api.Identity) (*api.Identity, error) { +func (r *IdentityRegistry) UpdateIdentity(ctx apirequest.Context, u *api.Identity) (*api.Identity, error) { *r.Actions = append(*r.Actions, Action{"UpdateIdentity", u}) if r.Update == nil && r.UpdateErr == nil { return u, nil @@ -63,7 +65,7 @@ func (r *IdentityRegistry) UpdateIdentity(ctx kapi.Context, u *api.Identity) (*a return r.Update, r.UpdateErr } -func (r *IdentityRegistry) ListIdentities(ctx kapi.Context, options *kapi.ListOptions) (*api.IdentityList, error) { +func (r *IdentityRegistry) ListIdentities(ctx apirequest.Context, options *metainternal.ListOptions) (*api.IdentityList, error) { *r.Actions = append(*r.Actions, Action{"ListIdentities", options}) if r.List == nil && r.ListErr == nil { return &api.IdentityList{}, nil diff --git a/pkg/user/registry/test/user.go b/pkg/user/registry/test/user.go index 8fb2ad426b6a..0bfb62199db0 100644 --- a/pkg/user/registry/test/user.go +++ b/pkg/user/registry/test/user.go @@ -1,8 +1,10 @@ package test import ( - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/openshift/origin/pkg/user/api" ) @@ -32,7 +34,7 @@ func NewUserRegistry() *UserRegistry { } } -func (r *UserRegistry) GetUser(ctx kapi.Context, name string) (*api.User, error) { +func (r *UserRegistry) GetUser(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.User, error) { *r.Actions = append(*r.Actions, Action{"GetUser", name}) if user, ok := r.Get[name]; ok { return user, nil @@ -43,7 +45,7 @@ func (r *UserRegistry) GetUser(ctx kapi.Context, name string) (*api.User, error) return nil, kerrs.NewNotFound(api.Resource("user"), name) } -func (r *UserRegistry) CreateUser(ctx kapi.Context, u *api.User) (*api.User, error) { +func (r *UserRegistry) CreateUser(ctx apirequest.Context, u *api.User) (*api.User, error) { *r.Actions = append(*r.Actions, Action{"CreateUser", u}) if r.Create == nil && r.CreateErr == nil { return u, nil @@ -51,7 +53,7 @@ func (r *UserRegistry) CreateUser(ctx kapi.Context, u *api.User) (*api.User, err return r.Create, r.CreateErr } -func (r *UserRegistry) UpdateUser(ctx kapi.Context, u *api.User) (*api.User, error) { +func (r *UserRegistry) UpdateUser(ctx apirequest.Context, u *api.User) (*api.User, error) { *r.Actions = append(*r.Actions, Action{"UpdateUser", u}) err, _ := r.UpdateErr[u.Name] if r.Update == nil && err == nil { @@ -60,7 +62,7 @@ func (r *UserRegistry) UpdateUser(ctx kapi.Context, u *api.User) (*api.User, err return r.Update, err } -func (r *UserRegistry) ListUsers(ctx kapi.Context, options *kapi.ListOptions) (*api.UserList, error) { +func (r *UserRegistry) ListUsers(ctx apirequest.Context, options *metainternal.ListOptions) (*api.UserList, error) { *r.Actions = append(*r.Actions, Action{"ListUsers", options}) if r.List == nil && r.ListErr == nil { return &api.UserList{}, nil diff --git a/pkg/user/registry/user/etcd/etcd.go b/pkg/user/registry/user/etcd/etcd.go index 19bcac8b6ce0..b396ec4f74a8 100644 --- a/pkg/user/registry/user/etcd/etcd.go +++ b/pkg/user/registry/user/etcd/etcd.go @@ -4,13 +4,14 @@ import ( "errors" "strings" - kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" "github.com/openshift/origin/pkg/user/api" @@ -47,10 +48,10 @@ func NewREST(optsGetter restoptions.Getter) (*REST, error) { } // Get retrieves the item from etcd. -func (r *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { +func (r *REST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { // "~" means the currently authenticated user if name == "~" { - user, ok := kapi.UserFrom(ctx) + user, ok := apirequest.UserFrom(ctx) if !ok || user.GetName() == "" { return nil, kerrs.NewForbidden(api.Resource("user"), "~", errors.New("requests to ~ must be authenticated")) } @@ -63,10 +64,10 @@ func (r *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { if reasons := validation.ValidateUserName(name, false); len(reasons) != 0 { // The user the authentication layer has identified cannot be a valid persisted user // Return an API representation of the virtual user - return &api.User{ObjectMeta: kapi.ObjectMeta{Name: name}, Groups: contextGroups.List()}, nil + return &api.User{ObjectMeta: metav1.ObjectMeta{Name: name}, Groups: contextGroups.List()}, nil } - obj, err := r.Store.Get(ctx, name) + obj, err := r.Store.Get(ctx, name, options) if err == nil { return obj, nil } @@ -75,12 +76,12 @@ func (r *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { return nil, err } - return &api.User{ObjectMeta: kapi.ObjectMeta{Name: name}, Groups: contextGroups.List()}, nil + return &api.User{ObjectMeta: metav1.ObjectMeta{Name: name}, Groups: contextGroups.List()}, nil } if reasons := validation.ValidateUserName(name, false); len(reasons) != 0 { return nil, field.Invalid(field.NewPath("metadata", "name"), name, strings.Join(reasons, ", ")) } - return r.Store.Get(ctx, name) + return r.Store.Get(ctx, name, options) } diff --git a/pkg/user/registry/user/registry.go b/pkg/user/registry/user/registry.go index a261b8aba8e9..952faff1c9ee 100644 --- a/pkg/user/registry/user/registry.go +++ b/pkg/user/registry/user/registry.go @@ -1,9 +1,12 @@ package user import ( + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/user/api" ) @@ -11,13 +14,13 @@ import ( // Registry is an interface implemented by things that know how to store User objects. type Registry interface { // ListUsers obtains a list of users having labels which match selector. - ListUsers(ctx kapi.Context, options *kapi.ListOptions) (*api.UserList, error) + ListUsers(ctx apirequest.Context, options *metainternal.ListOptions) (*api.UserList, error) // GetUser returns a specific user - GetUser(ctx kapi.Context, name string) (*api.User, error) + GetUser(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.User, error) // CreateUser creates a user - CreateUser(ctx kapi.Context, user *api.User) (*api.User, error) + CreateUser(ctx apirequest.Context, user *api.User) (*api.User, error) // UpdateUser updates an existing user - UpdateUser(ctx kapi.Context, user *api.User) (*api.User, error) + UpdateUser(ctx apirequest.Context, user *api.User) (*api.User, error) } // Storage is an interface for a standard REST Storage backend @@ -26,8 +29,8 @@ type Storage interface { rest.Lister rest.Getter - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) - Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) + Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) } // storage puts strong typing around storage calls @@ -41,7 +44,7 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) ListUsers(ctx kapi.Context, options *kapi.ListOptions) (*api.UserList, error) { +func (s *storage) ListUsers(ctx apirequest.Context, options *metainternal.ListOptions) (*api.UserList, error) { obj, err := s.List(ctx, options) if err != nil { return nil, err @@ -49,15 +52,15 @@ func (s *storage) ListUsers(ctx kapi.Context, options *kapi.ListOptions) (*api.U return obj.(*api.UserList), nil } -func (s *storage) GetUser(ctx kapi.Context, name string) (*api.User, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetUser(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.User, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.User), nil } -func (s *storage) CreateUser(ctx kapi.Context, user *api.User) (*api.User, error) { +func (s *storage) CreateUser(ctx apirequest.Context, user *api.User) (*api.User, error) { obj, err := s.Create(ctx, user) if err != nil { return nil, err @@ -65,7 +68,7 @@ func (s *storage) CreateUser(ctx kapi.Context, user *api.User) (*api.User, error return obj.(*api.User), nil } -func (s *storage) UpdateUser(ctx kapi.Context, user *api.User) (*api.User, error) { +func (s *storage) UpdateUser(ctx apirequest.Context, user *api.User) (*api.User, error) { obj, _, err := s.Update(ctx, user.Name, rest.DefaultUpdatedObjectInfo(user, kapi.Scheme)) if err != nil { return nil, err diff --git a/pkg/user/registry/user/strategy.go b/pkg/user/registry/user/strategy.go index 2191096d15b9..2eef4cdf7acb 100644 --- a/pkg/user/registry/user/strategy.go +++ b/pkg/user/registry/user/strategy.go @@ -3,12 +3,13 @@ package user import ( "fmt" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kstorage "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" - kstorage "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/validation" @@ -23,7 +24,7 @@ type userStrategy struct { // objects via the REST API. var Strategy = userStrategy{kapi.Scheme} -func (userStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) {} +func (userStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) {} // NamespaceScoped is false for users func (userStrategy) NamespaceScoped() bool { @@ -34,11 +35,11 @@ func (userStrategy) GenerateName(base string) string { return base } -func (userStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (userStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { } // Validate validates a new user -func (userStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (userStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateUser(obj.(*api.User)) } @@ -56,7 +57,7 @@ func (userStrategy) Canonicalize(obj runtime.Object) { } // ValidateUpdate is the default update validation for an end user. -func (userStrategy) ValidateUpdate(ctx kapi.Context, obj, old runtime.Object) field.ErrorList { +func (userStrategy) ValidateUpdate(ctx apirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateUserUpdate(obj.(*api.User), old.(*api.User)) } diff --git a/pkg/user/registry/useridentitymapping/registry.go b/pkg/user/registry/useridentitymapping/registry.go index c364a511c533..46e5cb1b3cea 100644 --- a/pkg/user/registry/useridentitymapping/registry.go +++ b/pkg/user/registry/useridentitymapping/registry.go @@ -1,9 +1,11 @@ package useridentitymapping import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/user/api" ) @@ -11,13 +13,13 @@ import ( // Registry is an interface implemented by things that know how to store UserIdentityMapping objects. type Registry interface { // GetUserIdentityMapping returns a UserIdentityMapping for the named identity - GetUserIdentityMapping(ctx kapi.Context, name string) (*api.UserIdentityMapping, error) + GetUserIdentityMapping(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.UserIdentityMapping, error) // CreateUserIdentityMapping associates a user and an identity - CreateUserIdentityMapping(ctx kapi.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) + CreateUserIdentityMapping(ctx apirequest.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) // UpdateUserIdentityMapping updates an associated user and identity - UpdateUserIdentityMapping(ctx kapi.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) + UpdateUserIdentityMapping(ctx apirequest.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) // DeleteUserIdentityMapping removes the user association for the named identity - DeleteUserIdentityMapping(ctx kapi.Context, name string) error + DeleteUserIdentityMapping(ctx apirequest.Context, name string) error } // Storage is an interface for a standard REST Storage backend @@ -26,8 +28,8 @@ type Storage interface { rest.Getter rest.Deleter - Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) - Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) + Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) + Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) } // storage puts strong typing around storage calls @@ -41,15 +43,15 @@ func NewRegistry(s Storage) Registry { return &storage{s} } -func (s *storage) GetUserIdentityMapping(ctx kapi.Context, name string) (*api.UserIdentityMapping, error) { - obj, err := s.Get(ctx, name) +func (s *storage) GetUserIdentityMapping(ctx apirequest.Context, name string, options *metav1.GetOptions) (*api.UserIdentityMapping, error) { + obj, err := s.Get(ctx, name, options) if err != nil { return nil, err } return obj.(*api.UserIdentityMapping), nil } -func (s *storage) CreateUserIdentityMapping(ctx kapi.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) { +func (s *storage) CreateUserIdentityMapping(ctx apirequest.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) { obj, err := s.Create(ctx, mapping) if err != nil { return nil, err @@ -57,7 +59,7 @@ func (s *storage) CreateUserIdentityMapping(ctx kapi.Context, mapping *api.UserI return obj.(*api.UserIdentityMapping), nil } -func (s *storage) UpdateUserIdentityMapping(ctx kapi.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) { +func (s *storage) UpdateUserIdentityMapping(ctx apirequest.Context, mapping *api.UserIdentityMapping) (*api.UserIdentityMapping, error) { obj, _, err := s.Update(ctx, mapping.Name, rest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err != nil { return nil, err @@ -66,7 +68,7 @@ func (s *storage) UpdateUserIdentityMapping(ctx kapi.Context, mapping *api.UserI } // -func (s *storage) DeleteUserIdentityMapping(ctx kapi.Context, name string) error { +func (s *storage) DeleteUserIdentityMapping(ctx apirequest.Context, name string) error { _, err := s.Delete(ctx, name) return err } diff --git a/pkg/user/registry/useridentitymapping/rest.go b/pkg/user/registry/useridentitymapping/rest.go index a7a8d500a1a4..077d8b41f4f8 100644 --- a/pkg/user/registry/useridentitymapping/rest.go +++ b/pkg/user/registry/useridentitymapping/rest.go @@ -3,14 +3,15 @@ package useridentitymapping import ( "fmt" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/registry/identity" @@ -36,13 +37,13 @@ func (r *REST) New() runtime.Object { } // Get returns the mapping for the named identity -func (s *REST) Get(ctx kapi.Context, name string) (runtime.Object, error) { - _, _, _, _, mapping, err := s.getRelatedObjects(ctx, name) +func (s *REST) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + _, _, _, _, mapping, err := s.getRelatedObjects(ctx, name, options) return mapping, err } // Create associates a user and identity if they both exist, and the identity is not already mapped to a user -func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { +func (s *REST) Create(ctx apirequest.Context, obj runtime.Object) (runtime.Object, error) { mapping, ok := obj.(*api.UserIdentityMapping) if !ok { return nil, kerrs.NewBadRequest("invalid type") @@ -55,7 +56,7 @@ func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, err // Update associates an identity with a user. // Both the identity and user must already exist. // If the identity is associated with another user already, it is disassociated. -func (s *REST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *REST) Update(ctx apirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { obj, err := objInfo.UpdatedObject(ctx, nil) if err != nil { return nil, false, err @@ -68,9 +69,9 @@ func (s *REST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectI return s.createOrUpdate(ctx, mapping, false) } -func (s *REST) createOrUpdate(ctx kapi.Context, obj runtime.Object, forceCreate bool) (runtime.Object, bool, error) { +func (s *REST) createOrUpdate(ctx apirequest.Context, obj runtime.Object, forceCreate bool) (runtime.Object, bool, error) { mapping := obj.(*api.UserIdentityMapping) - identity, identityErr, oldUser, oldUserErr, oldMapping, oldMappingErr := s.getRelatedObjects(ctx, mapping.Name) + identity, identityErr, oldUser, oldUserErr, oldMapping, oldMappingErr := s.getRelatedObjects(ctx, mapping.Name, &metav1.GetOptions{}) // Ensure we didn't get any errors other than NotFound errors if !(oldMappingErr == nil || kerrs.IsNotFound(oldMappingErr)) { @@ -124,7 +125,7 @@ func (s *REST) createOrUpdate(ctx kapi.Context, obj runtime.Object, forceCreate } // Get new user - newUser, err := s.userRegistry.GetUser(ctx, mapping.User.Name) + newUser, err := s.userRegistry.GetUser(ctx, mapping.User.Name, &metav1.GetOptions{}) if kerrs.IsNotFound(err) { errs := field.ErrorList{field.Invalid(field.NewPath("user", "name"), mapping.User.Name, "referenced user does not exist")} return nil, false, kerrs.NewInvalid(api.Kind("UserIdentityMapping"), mapping.Name, errs) @@ -165,8 +166,8 @@ func (s *REST) createOrUpdate(ctx kapi.Context, obj runtime.Object, forceCreate } // Delete deletes the user association for the named identity -func (s *REST) Delete(ctx kapi.Context, name string) (runtime.Object, error) { - identity, _, user, _, _, mappingErr := s.getRelatedObjects(ctx, name) +func (s *REST) Delete(ctx apirequest.Context, name string) (runtime.Object, error) { + identity, _, user, _, _, mappingErr := s.getRelatedObjects(ctx, name, &metav1.GetOptions{}) if mappingErr != nil { return nil, mappingErr @@ -189,12 +190,12 @@ func (s *REST) Delete(ctx kapi.Context, name string) (runtime.Object, error) { } } - return &unversioned.Status{Status: unversioned.StatusSuccess}, nil + return &metav1.Status{Status: metav1.StatusSuccess}, nil } // getRelatedObjects returns the identity, user, and mapping for the named identity // a nil mappingErr means all objects were retrieved without errors, and correctly reference each other -func (s *REST) getRelatedObjects(ctx kapi.Context, name string) ( +func (s *REST) getRelatedObjects(ctx apirequest.Context, name string, options *metav1.GetOptions) ( identity *api.Identity, identityErr error, user *api.User, userErr error, mapping *api.UserIdentityMapping, mappingErr error, @@ -205,7 +206,7 @@ func (s *REST) getRelatedObjects(ctx kapi.Context, name string) ( mappingErr = kerrs.NewNotFound(api.Resource("useridentitymapping"), name) // Get identity - identity, identityErr = s.identityRegistry.GetIdentity(ctx, name) + identity, identityErr = s.identityRegistry.GetIdentity(ctx, name, options) if identityErr != nil { return } @@ -214,7 +215,7 @@ func (s *REST) getRelatedObjects(ctx kapi.Context, name string) ( } // Get user - user, userErr = s.userRegistry.GetUser(ctx, identity.User.Name) + user, userErr = s.userRegistry.GetUser(ctx, identity.User.Name, options) if userErr != nil { return } @@ -298,7 +299,7 @@ func unsetIdentityUser(identity *api.Identity) bool { // The name and resource version of the identity mapping match the identity func mappingFor(user *api.User, identity *api.Identity) (*api.UserIdentityMapping, error) { return &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: identity.Name, ResourceVersion: identity.ResourceVersion, UID: identity.UID, diff --git a/pkg/user/registry/useridentitymapping/rest_test.go b/pkg/user/registry/useridentitymapping/rest_test.go index 02a7bc460b70..0391ca45befe 100644 --- a/pkg/user/registry/useridentitymapping/rest_test.go +++ b/pkg/user/registry/useridentitymapping/rest_test.go @@ -6,11 +6,13 @@ import ( "reflect" "testing" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + kapirest "k8s.io/apiserver/pkg/registry/rest" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - kapirest "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/types" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/registry/test" @@ -31,7 +33,7 @@ func makeUserFromSequence(sequence int) *api.User { userResourceVersion := fmt.Sprintf("%d", sequence+100) return &api.User{ - ObjectMeta: kapi.ObjectMeta{Name: userName, UID: userUID, ResourceVersion: userResourceVersion}, + ObjectMeta: metav1.ObjectMeta{Name: userName, UID: userUID, ResourceVersion: userResourceVersion}, } } @@ -48,7 +50,7 @@ func makeIdentityFromSequence(sequence int) *api.Identity { identityResourceVersion := fmt.Sprintf("%d", sequence+200) return &api.Identity{ - ObjectMeta: kapi.ObjectMeta{Name: identityName, UID: identityUID, ResourceVersion: identityResourceVersion}, + ObjectMeta: metav1.ObjectMeta{Name: identityName, UID: identityUID, ResourceVersion: identityResourceVersion}, ProviderName: providerName, ProviderUserName: providerUserName, } @@ -148,7 +150,7 @@ func TestGet(t *testing.T) { } actions, _, _, rest := setupRegistries(identity, user) - mapping, err := rest.Get(kapi.NewContext(), identity.Name) + mapping, err := rest.Get(apirequest.NewContext(), identity.Name, &metav1.GetOptions{}) if err != nil { t.Errorf("Unexpected error: %v", err) @@ -164,7 +166,7 @@ func TestGetMissingIdentity(t *testing.T) { } actions, _, _, rest := setupRegistries(nil, user) - _, err := rest.Get(kapi.NewContext(), identity.Name) + _, err := rest.Get(apirequest.NewContext(), identity.Name, &metav1.GetOptions{}) if err == nil { t.Errorf("Expected error, got none") @@ -179,7 +181,7 @@ func TestGetIdentityWithoutUser(t *testing.T) { } actions, _, _, rest := setupRegistries(identity) - _, err := rest.Get(kapi.NewContext(), identity.Name) + _, err := rest.Get(apirequest.NewContext(), identity.Name, &metav1.GetOptions{}) if err == nil { t.Errorf("Expected error, got none") @@ -198,7 +200,7 @@ func TestGetMissingUser(t *testing.T) { } actions, _, _, rest := setupRegistries(identity) - _, err := rest.Get(kapi.NewContext(), identity.Name) + _, err := rest.Get(apirequest.NewContext(), identity.Name, &metav1.GetOptions{}) if err == nil { t.Errorf("Expected error, got none") @@ -218,7 +220,7 @@ func TestGetUserWithoutIdentity(t *testing.T) { } actions, _, _, rest := setupRegistries(identity, user) - _, err := rest.Get(kapi.NewContext(), identity.Name) + _, err := rest.Get(apirequest.NewContext(), identity.Name, &metav1.GetOptions{}) if err == nil { t.Errorf("Expected error, got none") @@ -245,7 +247,7 @@ func TestCreate(t *testing.T) { } actions, _, _, rest := setupRegistries(unassociatedIdentity, unassociatedUser) - createdMapping, err := rest.Create(kapi.NewContext(), mapping) + createdMapping, err := rest.Create(apirequest.NewContext(), mapping) if err != nil { t.Errorf("Unexpected error: %v", err) @@ -267,7 +269,7 @@ func TestCreateExists(t *testing.T) { } actions, _, _, rest := setupRegistries(identity, user) - _, err := rest.Create(kapi.NewContext(), mapping) + _, err := rest.Create(apirequest.NewContext(), mapping) if err == nil { t.Errorf("Expected error, got none") @@ -290,7 +292,7 @@ func TestCreateMissingIdentity(t *testing.T) { } actions, _, _, rest := setupRegistries(nil, user) - _, err := rest.Create(kapi.NewContext(), mapping) + _, err := rest.Create(apirequest.NewContext(), mapping) if err == nil { t.Errorf("Expected error, got none") @@ -314,7 +316,7 @@ func TestCreateMissingUser(t *testing.T) { } actions, _, _, rest := setupRegistries(identity) - _, err := rest.Create(kapi.NewContext(), mapping) + _, err := rest.Create(apirequest.NewContext(), mapping) if err == nil { t.Errorf("Expected error, got none") @@ -342,7 +344,7 @@ func TestCreateUserUpdateError(t *testing.T) { actions, userRegistry, _, rest := setupRegistries(unassociatedIdentity, unassociatedUser) userRegistry.UpdateErr[associatedUser.Name] = expectedErr - _, err := rest.Create(kapi.NewContext(), mapping) + _, err := rest.Create(apirequest.NewContext(), mapping) if err == nil { t.Errorf("Expected error, got none") @@ -370,7 +372,7 @@ func TestCreateIdentityUpdateError(t *testing.T) { actions, _, identityRegistry, rest := setupRegistries(unassociatedIdentity, unassociatedUser) identityRegistry.UpdateErr = errors.New("Update error") - _, err := rest.Create(kapi.NewContext(), mapping) + _, err := rest.Create(apirequest.NewContext(), mapping) if err == nil { t.Errorf("Expected error, got none") @@ -404,13 +406,13 @@ func TestUpdate(t *testing.T) { } mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, _, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) - createdMapping, created, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + createdMapping, created, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err != nil { t.Errorf("Unexpected error: %v", err) @@ -435,13 +437,13 @@ func TestUpdateMissingIdentity(t *testing.T) { } mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, _, _, rest := setupRegistries(nil, associatedUser1, unassociatedUser2) - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error: %v", err) @@ -468,13 +470,13 @@ func TestUpdateMissingUser(t *testing.T) { } mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, _, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1) - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error: %v", err) @@ -495,13 +497,13 @@ func TestUpdateOldUserMatches(t *testing.T) { } mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: identity.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: identity.ResourceVersion}, Identity: kapi.ObjectReference{Name: identity.Name}, User: kapi.ObjectReference{Name: user.Name}, } actions, _, _, rest := setupRegistries(identity, user) - createdMapping, created, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + createdMapping, created, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err != nil { t.Errorf("Unexpected error: %v", err) @@ -532,7 +534,7 @@ func TestUpdateWithEmptyResourceVersion(t *testing.T) { } actions, _, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error") @@ -557,13 +559,13 @@ func TestUpdateWithMismatchedResourceVersion(t *testing.T) { } mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: "123"}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: "123"}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, _, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error") @@ -598,14 +600,14 @@ func TestUpdateOldUserUpdateError(t *testing.T) { expectedErr := errors.New("Couldn't update old user") mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, userRegistry, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) userRegistry.UpdateErr[unassociatedUser1.Name] = expectedErr - createdMapping, created, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + createdMapping, created, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) // An error cleaning up the old user shouldn't manifest as an update failure, since the mapping was successfully updated if err != nil { @@ -638,14 +640,14 @@ func TestUpdateUserUpdateError(t *testing.T) { expectedErr := errors.New("Couldn't update new user") mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, userRegistry, _, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) userRegistry.UpdateErr[associatedUser2.Name] = expectedErr - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error") @@ -678,14 +680,14 @@ func TestUpdateIdentityUpdateError(t *testing.T) { expectedErr := errors.New("Couldn't update identity") mapping := &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{ResourceVersion: unassociatedIdentity1.ResourceVersion}, Identity: kapi.ObjectReference{Name: unassociatedIdentity1.Name}, User: kapi.ObjectReference{Name: unassociatedUser2.Name}, } actions, _, identityRegistry, rest := setupRegistries(associatedIdentity1User1, associatedUser1, unassociatedUser2) identityRegistry.UpdateErr = expectedErr - _, _, err := rest.Update(kapi.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) + _, _, err := rest.Update(apirequest.NewContext(), mapping.Name, kapirest.DefaultUpdatedObjectInfo(mapping, kapi.Scheme)) if err == nil { t.Errorf("Expected error") @@ -707,7 +709,7 @@ func TestDelete(t *testing.T) { } actions, _, _, rest := setupRegistries(associatedIdentity, associatedUser) - _, err := rest.Delete(kapi.NewContext(), associatedIdentity.Name) + _, err := rest.Delete(apirequest.NewContext(), associatedIdentity.Name) if err != nil { t.Errorf("Unexpected error: %v", err) @@ -722,7 +724,7 @@ func TestDeleteMissingIdentity(t *testing.T) { } actions, _, _, rest := setupRegistries(nil, associatedUser) - _, err := rest.Delete(kapi.NewContext(), associatedIdentity.Name) + _, err := rest.Delete(apirequest.NewContext(), associatedIdentity.Name) if err == nil { t.Errorf("Expected error") @@ -741,7 +743,7 @@ func TestDeleteMissingUser(t *testing.T) { } actions, _, _, rest := setupRegistries(associatedIdentity) - _, err := rest.Delete(kapi.NewContext(), associatedIdentity.Name) + _, err := rest.Delete(apirequest.NewContext(), associatedIdentity.Name) if err == nil { t.Errorf("Expected error") @@ -764,7 +766,7 @@ func TestDeleteUserUpdateError(t *testing.T) { actions, userRegistry, _, rest := setupRegistries(associatedIdentity, associatedUser) userRegistry.UpdateErr[associatedUser.Name] = expectedErr - _, err := rest.Delete(kapi.NewContext(), associatedIdentity.Name) + _, err := rest.Delete(apirequest.NewContext(), associatedIdentity.Name) if err == nil { t.Errorf("Expected error") @@ -788,7 +790,7 @@ func TestDeleteIdentityUpdateError(t *testing.T) { actions, _, identityRegistry, rest := setupRegistries(associatedIdentity, associatedUser) identityRegistry.UpdateErr = expectedErr - _, err := rest.Delete(kapi.NewContext(), associatedIdentity.Name) + _, err := rest.Delete(apirequest.NewContext(), associatedIdentity.Name) // An error cleaning up the identity reference shouldn't manifest as an update failure, since the mapping no longer exists if err != nil { diff --git a/pkg/user/registry/useridentitymapping/strategy.go b/pkg/user/registry/useridentitymapping/strategy.go index 1ee78a6cc80b..b86aeecfc073 100644 --- a/pkg/user/registry/useridentitymapping/strategy.go +++ b/pkg/user/registry/useridentitymapping/strategy.go @@ -1,9 +1,10 @@ package useridentitymapping import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + apirequest "k8s.io/apiserver/pkg/endpoints/request" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/validation/field" "github.com/openshift/origin/pkg/user/api" "github.com/openshift/origin/pkg/user/api/validation" @@ -36,7 +37,7 @@ func (userIdentityMappingStrategy) AllowUnconditionalUpdate() bool { } // PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (s userIdentityMappingStrategy) PrepareForCreate(ctx kapi.Context, obj runtime.Object) { +func (s userIdentityMappingStrategy) PrepareForCreate(ctx apirequest.Context, obj runtime.Object) { mapping := obj.(*api.UserIdentityMapping) if len(mapping.Name) == 0 { @@ -55,7 +56,7 @@ func (s userIdentityMappingStrategy) PrepareForCreate(ctx kapi.Context, obj runt } // PrepareForUpdate clears fields that are not allowed to be set by end users on update -func (s userIdentityMappingStrategy) PrepareForUpdate(ctx kapi.Context, obj, old runtime.Object) { +func (s userIdentityMappingStrategy) PrepareForUpdate(ctx apirequest.Context, obj, old runtime.Object) { mapping := obj.(*api.UserIdentityMapping) if len(mapping.Name) == 0 { @@ -77,11 +78,11 @@ func (s userIdentityMappingStrategy) Canonicalize(obj runtime.Object) { } // Validate validates a new UserIdentityMapping. -func (s userIdentityMappingStrategy) Validate(ctx kapi.Context, obj runtime.Object) field.ErrorList { +func (s userIdentityMappingStrategy) Validate(ctx apirequest.Context, obj runtime.Object) field.ErrorList { return validation.ValidateUserIdentityMapping(obj.(*api.UserIdentityMapping)) } // Validate validates an updated UserIdentityMapping. -func (s userIdentityMappingStrategy) ValidateUpdate(ctx kapi.Context, obj runtime.Object, old runtime.Object) field.ErrorList { +func (s userIdentityMappingStrategy) ValidateUpdate(ctx apirequest.Context, obj runtime.Object, old runtime.Object) field.ErrorList { return validation.ValidateUserIdentityMappingUpdate(obj.(*api.UserIdentityMapping), old.(*api.UserIdentityMapping)) } diff --git a/pkg/util/errors/errors.go b/pkg/util/errors/errors.go index 1da1b0ae3622..6441823f0e1a 100644 --- a/pkg/util/errors/errors.go +++ b/pkg/util/errors/errors.go @@ -3,8 +3,8 @@ package errors import "strings" import ( - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // TolerateNotFoundError tolerates 'not found' errors @@ -35,5 +35,5 @@ func IsTimeoutErr(err error) bool { if !ok { return false } - return e.ErrStatus.Reason == unversioned.StatusReasonTimeout + return e.ErrStatus.Reason == metav1.StatusReasonTimeout } diff --git a/pkg/util/httpproxy/upgradeawareproxy.go b/pkg/util/httpproxy/upgradeawareproxy.go index 6985975198ea..ed857e075428 100644 --- a/pkg/util/httpproxy/upgradeawareproxy.go +++ b/pkg/util/httpproxy/upgradeawareproxy.go @@ -13,9 +13,9 @@ import ( "strings" "time" - "k8s.io/kubernetes/pkg/client/restclient" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/third_party/forked/golang/netutil" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/third_party/forked/golang/netutil" + restclient "k8s.io/client-go/rest" "github.com/golang/glog" ) diff --git a/pkg/util/jsonmerge/jsonmerge.go b/pkg/util/jsonmerge/jsonmerge.go index 16163db8e451..82f15121dbd8 100644 --- a/pkg/util/jsonmerge/jsonmerge.go +++ b/pkg/util/jsonmerge/jsonmerge.go @@ -8,7 +8,7 @@ import ( "github.com/evanphx/json-patch" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/yaml" + "k8s.io/apimachinery/pkg/util/yaml" ) // Delta represents a change between two JSON documents. diff --git a/pkg/util/labels.go b/pkg/util/labels.go index eba906669700..c187863bbd51 100644 --- a/pkg/util/labels.go +++ b/pkg/util/labels.go @@ -4,9 +4,10 @@ import ( "fmt" "reflect" - kmeta "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/runtime" + kmeta "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" ) @@ -28,7 +29,7 @@ func AddObjectLabelsWithFlags(obj runtime.Object, labels labels.Set, flags int) accessor, err := kmeta.Accessor(obj) if err != nil { - if _, ok := obj.(*runtime.Unstructured); !ok { + if _, ok := obj.(*unstructured.Unstructured); !ok { // error out if it's not possible to get an accessor and it's also not an unstructured object return err } @@ -56,7 +57,7 @@ func AddObjectLabelsWithFlags(obj runtime.Object, labels labels.Set, flags int) // handle unstructured object // TODO: allow meta.Accessor to handle runtime.Unstructured - if unstruct, ok := obj.(*runtime.Unstructured); ok && unstruct.Object != nil { + if unstruct, ok := obj.(*unstructured.Unstructured); ok && unstruct.Object != nil { // the presence of "metadata" is sufficient for us to apply the rules for Kube-like // objects. // TODO: add swagger detection to allow this to happen more effectively @@ -111,7 +112,7 @@ func AddObjectAnnotations(obj runtime.Object, annotations map[string]string) err accessor, err := kmeta.Accessor(obj) if err != nil { - if _, ok := obj.(*runtime.Unstructured); !ok { + if _, ok := obj.(*unstructured.Unstructured); !ok { // error out if it's not possible to get an accessor and it's also not an unstructured object return err } @@ -136,7 +137,7 @@ func AddObjectAnnotations(obj runtime.Object, annotations map[string]string) err // handle unstructured object // TODO: allow meta.Accessor to handle runtime.Unstructured - if unstruct, ok := obj.(*runtime.Unstructured); ok && unstruct.Object != nil { + if unstruct, ok := obj.(*unstructured.Unstructured); ok && unstruct.Object != nil { // the presence of "metadata" is sufficient for us to apply the rules for Kube-like // objects. // TODO: add swagger detection to allow this to happen more effectively diff --git a/pkg/util/labels_test.go b/pkg/util/labels_test.go index ef3c173c0180..e20bd26dd70c 100644 --- a/pkg/util/labels_test.go +++ b/pkg/util/labels_test.go @@ -4,20 +4,21 @@ import ( "reflect" "testing" + kmeta "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - kmeta "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" deployapi "github.com/openshift/origin/pkg/deploy/api" ) type FakeLabelsResource struct { - unversioned.TypeMeta `json:",inline"` - kapi.ObjectMeta `json:"metadata,omitempty"` + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` } -func (obj *FakeLabelsResource) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *FakeLabelsResource) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } func TestAddConfigLabels(t *testing.T) { var nilLabels map[string]string @@ -42,7 +43,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [2] Test obj.Labels + nil => obj.Labels obj: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, }, addLabels: nilLabels, err: false, @@ -50,7 +51,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [3] Test obj.Labels + empty labels => obj.Labels obj: &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, }, addLabels: map[string]string{}, err: false, @@ -64,7 +65,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [5] Test obj.labels + addLabels => expectedLabels obj: &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"baz": ""}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"baz": ""}}, }, addLabels: map[string]string{"foo": "bar"}, err: false, @@ -72,7 +73,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [6] Test conflicting keys with the same value obj: &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"foo": "same value"}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "same value"}}, }, addLabels: map[string]string{"foo": "same value"}, err: false, @@ -80,7 +81,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [7] Test conflicting keys with a different value obj: &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"foo": "first value"}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "first value"}}, }, addLabels: map[string]string{"foo": "second value"}, err: false, @@ -88,12 +89,12 @@ func TestAddConfigLabels(t *testing.T) { }, { // [8] Test conflicting keys with the same value in ReplicationController nested labels obj: &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{"foo": "same value"}, }, Spec: kapi.ReplicationControllerSpec{ Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{}, }, }, @@ -105,12 +106,12 @@ func TestAddConfigLabels(t *testing.T) { }, { // [9] Test adding labels to a DeploymentConfig object obj: &deployapi.DeploymentConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{"foo": "first value"}, }, Spec: deployapi.DeploymentConfigSpec{ Template: &kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{"foo": "first value"}, }, }, @@ -122,7 +123,7 @@ func TestAddConfigLabels(t *testing.T) { }, { // [10] Test unknown Generic Object with Labels field obj: &FakeLabelsResource{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"baz": ""}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"baz": ""}}, }, addLabels: map[string]string{"foo": "bar"}, err: false, diff --git a/pkg/util/labelselector/labelselector.go b/pkg/util/labelselector/labelselector.go index c33088fb41f3..5dcad19f0454 100644 --- a/pkg/util/labelselector/labelselector.go +++ b/pkg/util/labelselector/labelselector.go @@ -6,8 +6,8 @@ package labelselector import ( "fmt" - kvalidation "k8s.io/kubernetes/pkg/util/validation" - "k8s.io/kubernetes/pkg/util/validation/field" + kvalidation "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" ) // constants definition for lexer token diff --git a/pkg/util/leaderlease/leaderlease.go b/pkg/util/leaderlease/leaderlease.go index 13f07077e2bb..3a36bae61585 100644 --- a/pkg/util/leaderlease/leaderlease.go +++ b/pkg/util/leaderlease/leaderlease.go @@ -8,10 +8,10 @@ import ( "github.com/golang/glog" "golang.org/x/net/context" - etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/util/wait" - utilwait "k8s.io/kubernetes/pkg/util/wait" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + utilwait "k8s.io/apimachinery/pkg/util/wait" + etcdutil "k8s.io/apiserver/pkg/storage/etcd/util" ) // Leaser allows a caller to acquire a lease and be notified when it is lost. diff --git a/pkg/util/namer/namer.go b/pkg/util/namer/namer.go index fea816410aa8..c05a52877bf8 100644 --- a/pkg/util/namer/namer.go +++ b/pkg/util/namer/namer.go @@ -4,7 +4,7 @@ import ( "fmt" "hash/fnv" - kvalidation "k8s.io/kubernetes/pkg/util/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" ) // GetName returns a name given a base ("deployment-5") and a suffix ("deploy") diff --git a/pkg/util/namer/namer_test.go b/pkg/util/namer/namer_test.go index 2452b97397ae..4008b47ff14f 100644 --- a/pkg/util/namer/namer_test.go +++ b/pkg/util/namer/namer_test.go @@ -4,7 +4,7 @@ import ( "math/rand" "testing" - kvalidation "k8s.io/kubernetes/pkg/util/validation" + kvalidation "k8s.io/apimachinery/pkg/util/validation" ) func TestGetName(t *testing.T) { diff --git a/pkg/util/netutils/common.go b/pkg/util/netutils/common.go index 0bb39d43ca8d..f941e5082a51 100644 --- a/pkg/util/netutils/common.go +++ b/pkg/util/netutils/common.go @@ -6,7 +6,8 @@ import ( "net" "github.com/golang/glog" - kerrors "k8s.io/kubernetes/pkg/util/errors" + + kerrors "k8s.io/apimachinery/pkg/util/errors" ) func IPToUint32(ip net.IP) uint32 { diff --git a/pkg/util/observe/cluster.go b/pkg/util/observe/cluster.go index 443e1451908e..b675ddefdf32 100644 --- a/pkg/util/observe/cluster.go +++ b/pkg/util/observe/cluster.go @@ -7,12 +7,13 @@ import ( "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/meta" + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/storage" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/storage" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - "k8s.io/kubernetes/pkg/watch" "github.com/golang/glog" ) @@ -79,7 +80,7 @@ func watchForResourceVersion(versioner storage.Versioner, watcher rest.Watcher, return err } - w, err := watcher.Watch(context.TODO(), &kapi.ListOptions{ResourceVersion: previousVersion}) + w, err := watcher.Watch(context.TODO(), &metainternal.ListOptions{ResourceVersion: previousVersion}) if err != nil { return fmt.Errorf("error verifying resourceVersion %s: %v", resourceVersion, err) } diff --git a/pkg/util/ratelimiter/ratelimiter.go b/pkg/util/ratelimiter/ratelimiter.go index 2f8fda3b1b12..5d23537823e0 100644 --- a/pkg/util/ratelimiter/ratelimiter.go +++ b/pkg/util/ratelimiter/ratelimiter.go @@ -1,10 +1,10 @@ package ratelimiter import ( - kcache "k8s.io/kubernetes/pkg/client/cache" - "k8s.io/kubernetes/pkg/util/flowcontrol" - utilruntime "k8s.io/kubernetes/pkg/util/runtime" - utilwait "k8s.io/kubernetes/pkg/util/wait" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + utilwait "k8s.io/apimachinery/pkg/util/wait" + kcache "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/flowcontrol" ) // HandlerFunc defines function signature for a RateLimitedFunction. diff --git a/pkg/util/rest/webhook.go b/pkg/util/rest/webhook.go index 1c6ae803f364..4d5bf435dc3e 100644 --- a/pkg/util/rest/webhook.go +++ b/pkg/util/rest/webhook.go @@ -3,23 +3,24 @@ package rest import ( "net/http" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/runtime" ) // HookHandler is a Kubernetes API compatible webhook that is able to get access to the raw request // and response. Used when adapting existing webhook code to the Kubernetes patterns. type HookHandler interface { - ServeHTTP(w http.ResponseWriter, r *http.Request, ctx api.Context, name, subpath string) error + ServeHTTP(w http.ResponseWriter, r *http.Request, ctx apirequest.Context, name, subpath string) error } type httpHookHandler struct { http.Handler } -func (h httpHookHandler) ServeHTTP(w http.ResponseWriter, r *http.Request, ctx api.Context, name, subpath string) error { +func (h httpHookHandler) ServeHTTP(w http.ResponseWriter, r *http.Request, ctx apirequest.Context, name, subpath string) error { h.Handler.ServeHTTP(w, r) return nil } @@ -53,11 +54,11 @@ func NewHTTPWebHook(handler http.Handler, allowGet bool) *WebHook { // New() responds with the status object. func (h *WebHook) New() runtime.Object { - return &unversioned.Status{} + return &metav1.Status{} } // Connect responds to connections with a ConnectHandler -func (h *WebHook) Connect(ctx api.Context, name string, options runtime.Object, responder rest.Responder) (http.Handler, error) { +func (h *WebHook) Connect(ctx apirequest.Context, name string, options runtime.Object, responder rest.Responder) (http.Handler, error) { return &WebHookHandler{ handler: h.h, ctx: ctx, @@ -83,7 +84,7 @@ func (h *WebHook) ConnectMethods() []string { // WebHookHandler responds to web hook requests from the master. type WebHookHandler struct { handler HookHandler - ctx api.Context + ctx apirequest.Context name string options *api.PodProxyOptions responder rest.Responder diff --git a/pkg/util/restoptions/configgetter.go b/pkg/util/restoptions/configgetter.go index 09deccff9df4..23b6a6045028 100644 --- a/pkg/util/restoptions/configgetter.go +++ b/pkg/util/restoptions/configgetter.go @@ -6,18 +6,18 @@ import ( "strings" "sync" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/registry/generic/registry" + serverstorage "k8s.io/apiserver/pkg/server/storage" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/storagebackend" + "k8s.io/apiserver/pkg/storage/storagebackend/factory" apiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/rest" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/genericapiserver" - genericrest "k8s.io/kubernetes/pkg/registry/generic" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" - "k8s.io/kubernetes/pkg/storage/storagebackend" - "k8s.io/kubernetes/pkg/storage/storagebackend/factory" - kerrors "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/kubernetes/pkg/kubeapiserver" "github.com/golang/glog" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -32,28 +32,28 @@ type configRESTOptionsGetter struct { masterOptions configapi.MasterConfig restOptionsLock sync.Mutex - restOptionsMap map[unversioned.GroupResource]genericrest.RESTOptions + restOptionsMap map[schema.GroupResource]generic.RESTOptions - storageFactory genericapiserver.StorageFactory - defaultResourceConfig *genericapiserver.ResourceConfig + storageFactory serverstorage.StorageFactory + defaultResourceConfig *serverstorage.ResourceConfig cacheEnabled bool defaultCacheSize int - cacheSizes map[unversioned.GroupResource]int - quorumResources map[unversioned.GroupResource]struct{} - defaultResourcePrefixes map[unversioned.GroupResource]string + cacheSizes map[schema.GroupResource]int + quorumResources map[schema.GroupResource]struct{} + defaultResourcePrefixes map[schema.GroupResource]string } // NewConfigGetter returns a restoptions.Getter implemented using information from the provided master config. // By default, the etcd watch cache is enabled with a size of 1000 per resource type. // TODO: this class should either not need to know about configapi.MasterConfig, or not be in pkg/util -func NewConfigGetter(masterOptions configapi.MasterConfig, defaultResourceConfig *genericapiserver.ResourceConfig, defaultResourcePrefixes map[unversioned.GroupResource]string, quorumResources map[unversioned.GroupResource]struct{}) Getter { +func NewConfigGetter(masterOptions configapi.MasterConfig, defaultResourceConfig *serverstorage.ResourceConfig, defaultResourcePrefixes map[schema.GroupResource]string, quorumResources map[schema.GroupResource]struct{}) Getter { getter := &configRESTOptionsGetter{ masterOptions: masterOptions, cacheEnabled: true, defaultCacheSize: 1000, - cacheSizes: map[unversioned.GroupResource]int{}, - restOptionsMap: map[unversioned.GroupResource]genericrest.RESTOptions{}, + cacheSizes: map[schema.GroupResource]int{}, + restOptionsMap: map[schema.GroupResource]generic.RESTOptions{}, defaultResourceConfig: defaultResourceConfig, quorumResources: quorumResources, defaultResourcePrefixes: defaultResourcePrefixes, @@ -74,29 +74,29 @@ func (g *configRESTOptionsGetter) loadSettings() error { } } - storageGroupsToEncodingVersion, err := options.GenericServerRunOptions.StorageGroupsToEncodingVersion() + storageGroupsToEncodingVersion, err := options.StorageSerialization.StorageGroupsToEncodingVersion() if err != nil { return err } - storageConfig := options.GenericServerRunOptions.StorageConfig + storageConfig := options.Etcd.StorageConfig storageConfig.Prefix = g.masterOptions.EtcdStorageConfig.OpenShiftStoragePrefix storageConfig.ServerList = g.masterOptions.EtcdClientInfo.URLs storageConfig.KeyFile = g.masterOptions.EtcdClientInfo.ClientCert.KeyFile storageConfig.CertFile = g.masterOptions.EtcdClientInfo.ClientCert.CertFile storageConfig.CAFile = g.masterOptions.EtcdClientInfo.CA - resourceEncodingConfig := genericapiserver.NewDefaultResourceEncodingConfig() + resourceEncodingConfig := serverstorage.NewDefaultResourceEncodingConfig(kapi.Registry) - storageFactory, err := genericapiserver.BuildDefaultStorageFactory( + storageFactory, err := kubeapiserver.NewStorageFactory( storageConfig, - options.GenericServerRunOptions.DefaultStorageMediaType, + options.Etcd.DefaultStorageMediaType, kapi.Codecs, resourceEncodingConfig, storageGroupsToEncodingVersion, nil, g.defaultResourceConfig, - options.GenericServerRunOptions.RuntimeConfig) + options.APIEnablement.RuntimeConfig) if err != nil { return err } @@ -105,7 +105,7 @@ func (g *configRESTOptionsGetter) loadSettings() error { // instead of being late to the party and patching here: // use legacy group name "" for all resources that existed when apigroups were introduced - for _, gvr := range []unversioned.GroupVersionResource{ + for _, gvr := range []schema.GroupVersionResource{ {Group: "authorization.openshift.io", Version: "v1", Resource: "clusterpolicybindings"}, {Group: "authorization.openshift.io", Version: "v1", Resource: "clusterpolicies"}, {Group: "authorization.openshift.io", Version: "v1", Resource: "policybindings"}, @@ -132,13 +132,13 @@ func (g *configRESTOptionsGetter) loadSettings() error { {Group: "user.openshift.io", Version: "v1", Resource: "users"}, {Group: "user.openshift.io", Version: "v1", Resource: "identities"}, } { - resourceEncodingConfig.SetResourceEncoding(gvr.GroupResource(), unversioned.GroupVersion{Version: gvr.Version}, unversioned.GroupVersion{Version: runtime.APIVersionInternal}) + resourceEncodingConfig.SetResourceEncoding(gvr.GroupResource(), schema.GroupVersion{Version: gvr.Version}, schema.GroupVersion{Version: runtime.APIVersionInternal}) } storageFactory.DefaultResourcePrefixes = g.defaultResourcePrefixes g.storageFactory = storageFactory - g.cacheEnabled = options.GenericServerRunOptions.EnableWatchCache + g.cacheEnabled = options.Etcd.EnableWatchCache errs := []error{} for _, c := range options.GenericServerRunOptions.WatchCacheSizes { @@ -148,7 +148,7 @@ func (g *configRESTOptionsGetter) loadSettings() error { continue } - resource := unversioned.ParseGroupResource(tokens[0]) + resource := schema.ParseGroupResource(tokens[0]) size, err := strconv.Atoi(tokens[1]) if err != nil { @@ -161,7 +161,7 @@ func (g *configRESTOptionsGetter) loadSettings() error { return kerrors.NewAggregate(errs) } -func (g *configRESTOptionsGetter) GetRESTOptions(resource unversioned.GroupResource) (genericrest.RESTOptions, error) { +func (g *configRESTOptionsGetter) GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) { g.restOptionsLock.Lock() defer g.restOptionsLock.Unlock() if resourceOptions, ok := g.restOptionsMap[resource]; ok { @@ -170,7 +170,7 @@ func (g *configRESTOptionsGetter) GetRESTOptions(resource unversioned.GroupResou config, err := g.storageFactory.NewConfig(resource) if err != nil { - return genericrest.RESTOptions{}, err + return generic.RESTOptions{}, err } if _, ok := g.quorumResources[resource]; ok { @@ -182,7 +182,17 @@ func (g *configRESTOptionsGetter) GetRESTOptions(resource unversioned.GroupResou configuredCacheSize = g.defaultCacheSize } - decorator := func(s *storagebackend.Config, requestedSize int, objectType runtime.Object, resourcePrefix string, scopeStrategy rest.NamespaceScopedStrategy, newListFn func() runtime.Object, triggerFn storage.TriggerPublisherFunc) (storage.Interface, factory.DestroyFunc) { + decorator := func( + copier runtime.ObjectCopier, + storageConfig *storagebackend.Config, + requestedSize int, + objectType runtime.Object, + resourcePrefix string, + keyFunc func(obj runtime.Object) (string, error), + newListFn func() runtime.Object, + getAttrsFunc storage.AttrFunc, + triggerFn storage.TriggerPublisherFunc, + ) (storage.Interface, factory.DestroyFunc) { capacity := requestedSize if capacity == UseConfiguredCacheSize { capacity = configuredCacheSize @@ -190,14 +200,14 @@ func (g *configRESTOptionsGetter) GetRESTOptions(resource unversioned.GroupResou if capacity == 0 || !g.cacheEnabled { glog.V(5).Infof("using uncached watch storage for %s", resource.String()) - return genericrest.UndecoratedStorage(s, capacity, objectType, resourcePrefix, scopeStrategy, newListFn, triggerFn) + return generic.UndecoratedStorage(copier, storageConfig, capacity, objectType, resourcePrefix, keyFunc, newListFn, getAttrsFunc, triggerFn) } - glog.V(5).Infof("using watch cache storage (capacity=%d) for %s %#v", capacity, resource.String(), s) - return registry.StorageWithCacher(s, capacity, objectType, resourcePrefix, scopeStrategy, newListFn, triggerFn) + glog.V(5).Infof("using watch cache storage (capacity=%d) for %s %#v", capacity, resource.String(), storageConfig) + return registry.StorageWithCacher(copier, storageConfig, capacity, objectType, resourcePrefix, keyFunc, newListFn, getAttrsFunc, triggerFn) } - resourceOptions := genericrest.RESTOptions{ + resourceOptions := generic.RESTOptions{ StorageConfig: config, Decorator: decorator, DeleteCollectionWorkers: 1, diff --git a/pkg/util/restoptions/helpers.go b/pkg/util/restoptions/helpers.go index 661706f3626a..57937a37f633 100644 --- a/pkg/util/restoptions/helpers.go +++ b/pkg/util/restoptions/helpers.go @@ -4,34 +4,34 @@ import ( "fmt" "strings" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/storage" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/storage" ) // DefaultKeyFunctions sets the default behavior for storage key generation onto a Store. func DefaultKeyFunctions(store *registry.Store, prefix string, isNamespaced bool) { if isNamespaced { if store.KeyRootFunc == nil { - store.KeyRootFunc = func(ctx kapi.Context) string { + store.KeyRootFunc = func(ctx apirequest.Context) string { return registry.NamespaceKeyRootFunc(ctx, prefix) } } if store.KeyFunc == nil { - store.KeyFunc = func(ctx kapi.Context, name string) (string, error) { + store.KeyFunc = func(ctx apirequest.Context, name string) (string, error) { return registry.NamespaceKeyFunc(ctx, prefix, name) } } } else { if store.KeyRootFunc == nil { - store.KeyRootFunc = func(ctx kapi.Context) string { + store.KeyRootFunc = func(ctx apirequest.Context) string { return prefix } } if store.KeyFunc == nil { - store.KeyFunc = func(ctx kapi.Context, name string) (string, error) { + store.KeyFunc = func(ctx apirequest.Context, name string) (string, error) { return registry.NoNamespaceKeyFunc(ctx, prefix, name) } } diff --git a/pkg/util/restoptions/interfaces.go b/pkg/util/restoptions/interfaces.go index 3f66c1fb9086..7a104df41010 100644 --- a/pkg/util/restoptions/interfaces.go +++ b/pkg/util/restoptions/interfaces.go @@ -1,10 +1,10 @@ package restoptions import ( - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/registry/generic" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/registry/generic" ) type Getter interface { - GetRESTOptions(resource unversioned.GroupResource) (generic.RESTOptions, error) + GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) } diff --git a/pkg/util/restoptions/simplegetter.go b/pkg/util/restoptions/simplegetter.go index cfb9ca9d6677..299076ee8321 100644 --- a/pkg/util/restoptions/simplegetter.go +++ b/pkg/util/restoptions/simplegetter.go @@ -1,9 +1,9 @@ package restoptions import ( - "k8s.io/kubernetes/pkg/api/unversioned" - genericrest "k8s.io/kubernetes/pkg/registry/generic" - "k8s.io/kubernetes/pkg/storage/storagebackend" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/storage/storagebackend" ) type simpleGetter struct { @@ -14,10 +14,10 @@ func NewSimpleGetter(storage *storagebackend.Config) Getter { return &simpleGetter{storage: storage} } -func (s *simpleGetter) GetRESTOptions(resource unversioned.GroupResource) (genericrest.RESTOptions, error) { - return genericrest.RESTOptions{ +func (s *simpleGetter) GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) { + return generic.RESTOptions{ StorageConfig: s.storage, - Decorator: genericrest.UndecoratedStorage, + Decorator: generic.UndecoratedStorage, DeleteCollectionWorkers: 1, ResourcePrefix: resource.Resource, }, nil diff --git a/pkg/volume/emptydir/empty_dir_quota.go b/pkg/volume/emptydir/empty_dir_quota.go index 68339ee83e46..29f48bd4f320 100644 --- a/pkg/volume/emptydir/empty_dir_quota.go +++ b/pkg/volume/emptydir/empty_dir_quota.go @@ -1,8 +1,8 @@ package emptydir import ( - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/volume" ) @@ -23,7 +23,7 @@ type EmptyDirQuotaPlugin struct { QuotaApplicator QuotaApplicator } -func (plugin *EmptyDirQuotaPlugin) NewMounter(spec *volume.Spec, pod *api.Pod, opts volume.VolumeOptions) (volume.Mounter, error) { +func (plugin *EmptyDirQuotaPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) { volMounter, err := plugin.VolumePlugin.NewMounter(spec, pod, opts) if err != nil { return volMounter, err @@ -33,7 +33,7 @@ func (plugin *EmptyDirQuotaPlugin) NewMounter(spec *volume.Spec, pod *api.Pod, o // we do not wish to modify k8s code for this, we have to grab a reference // to them ourselves. // This logic is the same as k8s.io/kubernetes/pkg/volume/empty_dir: - medium := api.StorageMediumDefault + medium := v1.StorageMediumDefault if spec.Volume.EmptyDir != nil { // Support a non-specified source as EmptyDir. medium = spec.Volume.EmptyDir.Medium } @@ -54,8 +54,8 @@ func (plugin *EmptyDirQuotaPlugin) NewMounter(spec *volume.Spec, pod *api.Pod, o // quota for the pods FSGroup on an XFS filesystem. type emptyDirQuotaMounter struct { wrapped volume.Mounter - pod *api.Pod - medium api.StorageMedium + pod *v1.Pod + medium v1.StorageMedium quota resource.Quantity quotaApplicator QuotaApplicator } diff --git a/pkg/volume/emptydir/quota.go b/pkg/volume/emptydir/quota.go index 7ccd9344a27e..d861f5912dae 100644 --- a/pkg/volume/emptydir/quota.go +++ b/pkg/volume/emptydir/quota.go @@ -7,14 +7,15 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" + + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/kubernetes/pkg/api/v1" ) // QuotaApplicator is used to apply quota to an emptyDir volume. type QuotaApplicator interface { // Apply the quota to the given EmptyDir path: - Apply(dir string, medium api.StorageMedium, pod *api.Pod, fsGroup *int64, quota resource.Quantity) error + Apply(dir string, medium v1.StorageMedium, pod *v1.Pod, fsGroup *int64, quota resource.Quantity) error } type xfsQuotaApplicator struct { @@ -103,9 +104,9 @@ func (cr *realQuotaCommandRunner) RunMountOptionsCommand() (string, error) { // if anything goes wrong during the process. (not an XFS filesystem, etc) If the volume medium is set // to memory, or no FSGroup is provided (indicating the request matched an SCC set to RunAsAny), this // method will effectively no-op. -func (xqa *xfsQuotaApplicator) Apply(dir string, medium api.StorageMedium, pod *api.Pod, fsGroup *int64, quota resource.Quantity) error { +func (xqa *xfsQuotaApplicator) Apply(dir string, medium v1.StorageMedium, pod *v1.Pod, fsGroup *int64, quota resource.Quantity) error { - if medium == api.StorageMediumMemory { + if medium == v1.StorageMediumMemory { glog.V(5).Infof("Skipping quota application due to memory storage medium.") return nil } diff --git a/pkg/volume/emptydir/quota_test.go b/pkg/volume/emptydir/quota_test.go index 78de6cd31973..a958ee576f9a 100644 --- a/pkg/volume/emptydir/quota_test.go +++ b/pkg/volume/emptydir/quota_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" + "k8s.io/apimachinery/pkg/api/resource" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" ) const expectedDevice = "/dev/sdb2" @@ -218,7 +218,7 @@ func TestApplyQuota(t *testing.T) { mockCmdRunner.RunFSTypeCommandResponse = test.FSTypeCmdResponse quota := resource.MustParse(test.Quota) - err := quotaApplicator.Apply(fakeDir, kapi.StorageMediumDefault, &kapi.Pod{}, test.FSGroupID, quota) + err := quotaApplicator.Apply(fakeDir, kapiv1.StorageMediumDefault, &kapiv1.Pod{}, test.FSGroupID, quota) if test.ExpError == "" && !test.ExpSkipped { // Expecting success case: if mockCmdRunner.RanApplyQuotaFSDevice != "/dev/sdb2" { diff --git a/test/common/build/controllers.go b/test/common/build/controllers.go index e6dd97735be4..c18bb8f6719d 100644 --- a/test/common/build/controllers.go +++ b/test/common/build/controllers.go @@ -6,11 +6,13 @@ import ( "time" "github.com/golang/glog" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + watchapi "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/fields" - watchapi "k8s.io/kubernetes/pkg/watch" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -55,7 +57,7 @@ type testingT interface { func mockBuild() *buildapi.Build { return &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "mock-build", Labels: map[string]string{ "label1": "value1", @@ -86,7 +88,7 @@ func mockBuild() *buildapi.Build { } } -func RunBuildControllerTest(t testingT, osClient *client.Client, kClientset *kclientset.Clientset) { +func RunBuildControllerTest(t testingT, osClient *client.Client, kClientset kclientset.Interface) { // Setup an error channel errChan := make(chan error) // go routines will send a message on this channel if an error occurs. Once this happens the test is over @@ -98,7 +100,7 @@ func RunBuildControllerTest(t testingT, osClient *client.Client, kClientset *kcl } // Start watching builds for New -> Pending transition - buildWatch, err := osClient.Builds(ns).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", b.Name), ResourceVersion: b.ResourceVersion}) + buildWatch, err := osClient.Builds(ns).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", b.Name).String(), ResourceVersion: b.ResourceVersion}) if err != nil { t.Fatal(err) } @@ -124,7 +126,7 @@ func RunBuildControllerTest(t testingT, osClient *client.Client, kClientset *kcl }() // Watch build pods as they are created - podWatch, err := kClientset.Core().Pods(ns).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", buildapi.GetBuildPodName(b))}) + podWatch, err := kClientset.Core().Pods(ns).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", buildapi.GetBuildPodName(b)).String()}) if err != nil { t.Fatal(err) } @@ -162,7 +164,7 @@ type buildControllerPodTest struct { States []buildControllerPodState } -func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient *kclientset.Clientset) { +func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient kclientset.Interface) { ns := testutil.Namespace() tests := []buildControllerPodTest{ @@ -215,7 +217,7 @@ func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient *kcl } // Watch build pod for transition to pending - podWatch, err := kClient.Pods(ns).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", buildapi.GetBuildPodName(b))}) + podWatch, err := kClient.Core().Pods(ns).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", buildapi.GetBuildPodName(b)).String()}) if err != nil { t.Fatal(err) } @@ -252,7 +254,7 @@ func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient *kcl for _, state := range test.States { if err := retry.RetryOnConflict(retry.DefaultRetry, func() error { // Update pod state and verify that corresponding build state happens accordingly - pod, err := kClient.Pods(ns).Get(pod.Name) + pod, err := kClient.Core().Pods(ns).Get(pod.Name, metav1.GetOptions{}) if err != nil { return err } @@ -260,13 +262,13 @@ func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient *kcl return fmt.Errorf("another client altered the pod phase to %s: %#v", state.PodPhase, pod) } pod.Status.Phase = state.PodPhase - _, err = kClient.Pods(ns).UpdateStatus(pod) + _, err = kClient.Core().Pods(ns).UpdateStatus(pod) return err }); err != nil { t.Fatal(err) } - buildWatch, err := osClient.Builds(ns).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", b.Name), ResourceVersion: b.ResourceVersion}) + buildWatch, err := osClient.Builds(ns).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", b.Name).String(), ResourceVersion: b.ResourceVersion}) if err != nil { t.Fatal(err) } @@ -302,7 +304,7 @@ func RunBuildPodControllerTest(t testingT, osClient *client.Client, kClient *kcl if atomic.LoadInt32(&stateReached) != 1 { // attempt to retrieve build and get current state func() { - currentBuild, err := osClient.Builds(b.Namespace).Get(b.Name) + currentBuild, err := osClient.Builds(b.Namespace).Get(b.Name, metav1.GetOptions{}) if err != nil { glog.Infof("Cannot get build %s/%s: %v", b.Namespace, b.Name, err) return @@ -340,13 +342,13 @@ func RunImageChangeTriggerTest(t testingT, clusterAdminClient *client.Client) { t.Fatalf("Couldn't create BuildConfig: %v", err) } - watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } defer watch.Stop() - watch2, err := clusterAdminClient.BuildConfigs(testutil.Namespace()).Watch(kapi.ListOptions{}) + watch2, err := clusterAdminClient.BuildConfigs(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to BuildConfigs %v", err) } @@ -373,12 +375,12 @@ func RunImageChangeTriggerTest(t testingT, clusterAdminClient *client.Client) { newBuild := event.Object.(*buildapi.Build) strategy := newBuild.Spec.Strategy if strategy.SourceStrategy.From.Name != "registry:8080/openshift/test-image-trigger:"+tag { - i, _ := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := clusterAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := clusterAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %s\n", "registry:8080/openshift/test-image-trigger:"+tag, strategy.SourceStrategy.From.Name, i, bc.Spec.Triggers[0].ImageChange) } // Wait for an update on the specific build that was added - watch3, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", newBuild.Name), ResourceVersion: newBuild.ResourceVersion}) + watch3, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", newBuild.Name).String(), ResourceVersion: newBuild.ResourceVersion}) defer watch3.Stop() if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) @@ -431,13 +433,13 @@ WaitLoop2: // trigger a build by posting a new image if err := clusterAdminClient.ImageStreamMappings(testutil.Namespace()).Create(&imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: testutil.Namespace(), Name: imageStream.Name, }, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "ref-2-random", }, DockerImageReference: "registry:8080/openshift/test-image-trigger:ref-2-random", @@ -452,13 +454,13 @@ WaitLoop2: newBuild = event.Object.(*buildapi.Build) strategy = newBuild.Spec.Strategy if strategy.SourceStrategy.From.Name != "registry:8080/openshift/test-image-trigger:ref-2-random" { - i, _ := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := clusterAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := clusterAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\trigger is %s\n", "registry:8080/openshift/test-image-trigger:ref-2-random", strategy.SourceStrategy.From.Name, i, bc.Spec.Triggers[3].ImageChange) } // Listen to events on specific build - watch4, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", newBuild.Name), ResourceVersion: newBuild.ResourceVersion}) + watch4, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", newBuild.Name).String(), ResourceVersion: newBuild.ResourceVersion}) defer watch4.Stop() event = waitForWatch(t, "update on second build", watch4) @@ -490,9 +492,9 @@ WaitLoop3: } } -func RunBuildDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset *kclientset.Clientset) { +func RunBuildDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset kclientset.Interface) { - buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } @@ -503,7 +505,7 @@ func RunBuildDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAd t.Fatalf("Couldn't create Build: %v", err) } - podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(kapi.ListOptions{}) + podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Pods %v", err) } @@ -555,9 +557,9 @@ func waitForWatchType(t testingT, name string, w watchapi.Interface, expect watc return nil } -func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset *kclientset.Clientset) { +func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset kclientset.Interface) { - buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } @@ -568,7 +570,7 @@ func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, t.Fatalf("Couldn't create Build: %v", err) } - podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(kapi.ListOptions{}) + podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Pods %v", err) } @@ -615,7 +617,7 @@ func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, // so it doesn't get a miss when looking up the build while processing the pod delete event. time.Sleep(10 * time.Second) - clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Delete(buildapi.GetBuildPodName(newBuild), kapi.NewDeleteOptions(0)) + clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Delete(buildapi.GetBuildPodName(newBuild), metav1.NewDeleteOptions(0)) event = waitForWatch(t, "build updated to error", buildWatch) if e, a := watchapi.Modified, event.Type; e != a { t.Fatalf("expected watch event type %s, got %s", e, a) @@ -624,7 +626,7 @@ func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, if newBuild.Status.Phase != buildapi.BuildPhaseError { t.Fatalf("expected build status to be marked error, but was marked %s", newBuild.Status.Phase) } - events, err := clusterAdminKubeClientset.Core().Events(testutil.Namespace()).Search(newBuild) + events, err := clusterAdminKubeClientset.Core().Events(testutil.Namespace()).Search(kapi.Scheme, newBuild) if err != nil { t.Fatalf("error getting build events: %v", err) } @@ -644,9 +646,9 @@ func RunBuildRunningPodDeleteTest(t testingT, clusterAdminClient *client.Client, } } -func RunBuildCompletePodDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset *kclientset.Clientset) { +func RunBuildCompletePodDeleteTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset kclientset.Interface) { - buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + buildWatch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } @@ -657,7 +659,7 @@ func RunBuildCompletePodDeleteTest(t testingT, clusterAdminClient *client.Client t.Fatalf("Couldn't create Build: %v", err) } - podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(kapi.ListOptions{}) + podWatch, err := clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Pods %v", err) } @@ -697,9 +699,9 @@ func RunBuildCompletePodDeleteTest(t testingT, clusterAdminClient *client.Client t.Fatalf("expected build status to be marked complete, but was marked %s", newBuild.Status.Phase) } - clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Delete(buildapi.GetBuildPodName(newBuild), kapi.NewDeleteOptions(0)) + clusterAdminKubeClientset.Core().Pods(testutil.Namespace()).Delete(buildapi.GetBuildPodName(newBuild), metav1.NewDeleteOptions(0)) time.Sleep(10 * time.Second) - newBuild, err = clusterAdminClient.Builds(testutil.Namespace()).Get(newBuild.Name) + newBuild, err = clusterAdminClient.Builds(testutil.Namespace()).Get(newBuild.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error %v", err) } @@ -708,20 +710,20 @@ func RunBuildCompletePodDeleteTest(t testingT, clusterAdminClient *client.Client } } -func RunBuildConfigChangeControllerTest(t testingT, clusterAdminClient *client.Client, clusterAdminKubeClientset *kclientset.Clientset) { +func RunBuildConfigChangeControllerTest(t testingT, clusterAdminClient client.Interface, clusterAdminKubeClientset kclientset.Interface) { config := configChangeBuildConfig() created, err := clusterAdminClient.BuildConfigs(testutil.Namespace()).Create(config) if err != nil { t.Fatalf("Couldn't create BuildConfig: %v", err) } - watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } defer watch.Stop() - watch2, err := clusterAdminClient.BuildConfigs(testutil.Namespace()).Watch(kapi.ListOptions{ResourceVersion: created.ResourceVersion}) + watch2, err := clusterAdminClient.BuildConfigs(testutil.Namespace()).Watch(metav1.ListOptions{ResourceVersion: created.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to BuildConfigs %v", err) } @@ -756,7 +758,7 @@ func configChangeBuildConfig() *buildapi.BuildConfig { func mockImageStream2(tag string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test-image-trigger-repo"}, + ObjectMeta: metav1.ObjectMeta{Name: "test-image-trigger-repo"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "registry:8080/openshift/test-image-trigger", @@ -775,10 +777,10 @@ func mockImageStream2(tag string) *imageapi.ImageStream { func mockImageStreamMapping(stream, image, tag, reference string) *imageapi.ImageStreamMapping { // create a mapping to an image that doesn't exist return &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: stream}, + ObjectMeta: metav1.ObjectMeta{Name: stream}, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: image, }, DockerImageReference: reference, @@ -788,7 +790,7 @@ func mockImageStreamMapping(stream, image, tag, reference string) *imageapi.Imag func imageChangeBuildConfig(name string, strategy buildapi.BuildStrategy) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: testutil.Namespace(), Labels: map[string]string{"testlabel": "testvalue"}, diff --git a/test/extended/builds/completiondeadlineseconds.go b/test/extended/builds/completiondeadlineseconds.go index b48b0b05a321..9b591dbb2e94 100644 --- a/test/extended/builds/completiondeadlineseconds.go +++ b/test/extended/builds/completiondeadlineseconds.go @@ -1,6 +1,7 @@ package builds import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" g "github.com/onsi/ginkgo" @@ -40,7 +41,7 @@ var _ = g.Describe("[builds][Slow] builds should have deadlines", func() { o.Expect(br.Build.Status.Phase).Should(o.BeEquivalentTo(buildapi.BuildPhaseFailed)) // the build should have failed g.By("verifying the build pod status") - pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(buildapi.GetBuildPodName(br.Build)) + pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(buildapi.GetBuildPodName(br.Build), metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(pod.Status.Phase).Should(o.BeEquivalentTo(kapi.PodFailed)) o.Expect(pod.Status.Reason).Should(o.ContainSubstring("DeadlineExceeded")) @@ -64,7 +65,7 @@ var _ = g.Describe("[builds][Slow] builds should have deadlines", func() { o.Expect(br.Build.Status.Phase).Should(o.BeEquivalentTo(buildapi.BuildPhaseFailed)) // the build should have failed g.By("verifying the build pod status") - pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(buildapi.GetBuildPodName(br.Build)) + pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(buildapi.GetBuildPodName(br.Build), metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(pod.Status.Phase).Should(o.BeEquivalentTo(kapi.PodFailed)) o.Expect(pod.Status.Reason).Should(o.ContainSubstring("DeadlineExceeded")) diff --git a/test/extended/builds/contextdir.go b/test/extended/builds/contextdir.go index 56d50b0115b5..ad271e24718c 100644 --- a/test/extended/builds/contextdir.go +++ b/test/extended/builds/contextdir.go @@ -7,7 +7,7 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" imageeco "github.com/openshift/origin/test/extended/image_ecosystem" exutil "github.com/openshift/origin/test/extended/util" @@ -70,7 +70,7 @@ var _ = g.Describe("[builds][Slow] builds with a context directory", func() { assertPageContent("Hello world!") g.By("checking the pod count") - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: dcLabel}) + pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: dcLabel.String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) diff --git a/test/extended/builds/controller_compat.go b/test/extended/builds/controller_compat.go index 3d271ec4e60a..c8c225b5acb0 100644 --- a/test/extended/builds/controller_compat.go +++ b/test/extended/builds/controller_compat.go @@ -21,12 +21,12 @@ var _ = g.Describe("[bldcompat][Slow][Compatibility] build controller", func() { g.Describe("RunBuildControllerTest", func() { g.It("should succeed", func() { - build.RunBuildControllerTest(g.GinkgoT(), oc.AdminClient(), oc.AdminKubeClient()) + build.RunBuildControllerTest(g.GinkgoT(), oc.AdminClient(), oc.InternalAdminKubeClient()) }) }) g.Describe("RunBuildPodControllerTest", func() { g.It("should succeed", func() { - build.RunBuildPodControllerTest(g.GinkgoT(), oc.AdminClient(), oc.AdminKubeClient()) + build.RunBuildPodControllerTest(g.GinkgoT(), oc.AdminClient(), oc.InternalAdminKubeClient()) }) }) g.Describe("RunImageChangeTriggerTest [SkipPrevControllers]", func() { @@ -36,17 +36,17 @@ var _ = g.Describe("[bldcompat][Slow][Compatibility] build controller", func() { }) g.Describe("RunBuildDeleteTest", func() { g.It("should succeed", func() { - build.RunBuildDeleteTest(g.GinkgoT(), oc.AdminClient(), oc.AdminKubeClient()) + build.RunBuildDeleteTest(g.GinkgoT(), oc.AdminClient(), oc.InternalAdminKubeClient()) }) }) g.Describe("RunBuildRunningPodDeleteTest", func() { g.It("should succeed", func() { - build.RunBuildRunningPodDeleteTest(g.GinkgoT(), oc.AdminClient(), oc.AdminKubeClient()) + build.RunBuildRunningPodDeleteTest(g.GinkgoT(), oc.AdminClient(), oc.InternalAdminKubeClient()) }) }) g.Describe("RunBuildConfigChangeControllerTest", func() { g.It("should succeed", func() { - build.RunBuildConfigChangeControllerTest(g.GinkgoT(), oc.AdminClient(), oc.AdminKubeClient()) + build.RunBuildConfigChangeControllerTest(g.GinkgoT(), oc.AdminClient(), oc.InternalAdminKubeClient()) }) }) }) diff --git a/test/extended/builds/dockerfile.go b/test/extended/builds/dockerfile.go index 687af2d8f345..82281d1144cc 100644 --- a/test/extended/builds/dockerfile.go +++ b/test/extended/builds/dockerfile.go @@ -4,6 +4,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + exutil "github.com/openshift/origin/test/extended/util" ) @@ -39,7 +41,7 @@ USER 1001 o.Expect(err).NotTo(o.HaveOccurred()) g.By("starting a test build") - bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("busybox") + bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("busybox", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(bc.Spec.Source.Git).To(o.BeNil()) o.Expect(*bc.Spec.Source.Dockerfile).To(o.Equal(testDockerfile)) @@ -65,7 +67,7 @@ USER 1001 o.Expect(err).NotTo(o.HaveOccurred()) g.By("starting a test build") - bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("centos") + bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("centos", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(bc.Spec.Source.Git).To(o.BeNil()) o.Expect(*bc.Spec.Source.Dockerfile).To(o.Equal(testDockerfile2)) @@ -97,7 +99,7 @@ USER 1001 o.Expect(err).NotTo(o.HaveOccurred()) g.By("starting a test build") - bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("scratch") + bc, err := oc.Client().BuildConfigs(oc.Namespace()).Get("scratch", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(*bc.Spec.Source.Dockerfile).To(o.Equal(testDockerfile3)) diff --git a/test/extended/builds/failure_status.go b/test/extended/builds/failure_status.go index ac2753f29e1b..3a3f97c7d67e 100644 --- a/test/extended/builds/failure_status.go +++ b/test/extended/builds/failure_status.go @@ -6,6 +6,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + s2istatus "github.com/openshift/source-to-image/pkg/util/status" buildapi "github.com/openshift/origin/pkg/build/api" @@ -35,7 +37,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { g.JustBeforeEach(func() { g.By("waiting for the builder service account") - err := exutil.WaitForBuilderAccount(oc.KubeClient().ServiceAccounts(oc.Namespace())) + err := exutil.WaitForBuilderAccount(oc.KubeClient().CoreV1().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) @@ -49,7 +51,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonPostCommitHookFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessagePostCommitHookFailed)) @@ -68,7 +70,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonFetchSourceFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessageFetchSourceFailed)) @@ -87,7 +89,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonFetchSourceFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessageFetchSourceFailed)) @@ -106,7 +108,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonPullBuilderImageFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessagePullBuilderImageFailed)) @@ -125,7 +127,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonPushImageToRegistryFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessagePushImageToRegistryFailed)) @@ -144,7 +146,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(reasonAssembleFailed)) o.Expect(build.Status.Message).To(o.Equal(messageAssembleFailed)) @@ -163,7 +165,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(reasonFetchRuntimeArtifacts)) o.Expect(build.Status.Message).To(o.Equal(messageFetchRuntimeArtifacts)) @@ -182,7 +184,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() { br.AssertFailure() br.DumpLogs() - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonGenericBuildFailed)) o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessageGenericBuildFailed)) diff --git a/test/extended/builds/gitauth.go b/test/extended/builds/gitauth.go index ed34b5de2fa3..726fb9ffb88a 100644 --- a/test/extended/builds/gitauth.go +++ b/test/extended/builds/gitauth.go @@ -10,6 +10,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + exutil "github.com/openshift/origin/test/extended/util" testutil "github.com/openshift/origin/test/util" ) @@ -106,7 +108,7 @@ var _ = g.Describe("[builds][Slow] can use private repositories as build input", o.Expect(err).NotTo(o.HaveOccurred()) g.By("getting the token secret name for the builder service account") - sa, err := oc.KubeClient().Core().ServiceAccounts(oc.Namespace()).Get("builder") + sa, err := oc.KubeClient().Core().ServiceAccounts(oc.Namespace()).Get("builder", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) for _, s := range sa.Secrets { if strings.Contains(s.Name, "token") { diff --git a/test/extended/builds/image_source.go b/test/extended/builds/image_source.go index cd00b74a8859..b15f18b743ca 100644 --- a/test/extended/builds/image_source.go +++ b/test/extended/builds/image_source.go @@ -6,6 +6,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + exutil "github.com/openshift/origin/test/extended/util" ) @@ -42,7 +44,7 @@ var _ = g.Describe("[builds][Slow] build can have Docker image source", func() { pods, err := exutil.WaitForPods(oc.KubeClient().Core().Pods(oc.Namespace()), imageSourceLabel, exutil.CheckPodIsRunningFn, 1, 2*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods)).To(o.Equal(1)) - pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(pods[0]) + pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(pods[0], metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) g.By("expecting the pod to contain the file from the input image") @@ -65,7 +67,7 @@ var _ = g.Describe("[builds][Slow] build can have Docker image source", func() { pods, err := exutil.WaitForPods(oc.KubeClient().Core().Pods(oc.Namespace()), imageDockerLabel, exutil.CheckPodIsRunningFn, 1, 2*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods)).To(o.Equal(1)) - pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(pods[0]) + pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(pods[0], metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) g.By("expecting the pod to contain the file from the input image") diff --git a/test/extended/builds/nosrc.go b/test/extended/builds/nosrc.go index 9fa68c5aaec5..00edafc65f42 100644 --- a/test/extended/builds/nosrc.go +++ b/test/extended/builds/nosrc.go @@ -6,6 +6,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + exutil "github.com/openshift/origin/test/extended/util" ) @@ -31,7 +33,7 @@ var _ = g.Describe("[builds] build with empty source", func() { br.AssertSuccess() g.By(fmt.Sprintf("verifying the status of %q", br.BuildPath)) - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Spec.Source.Dockerfile).To(o.BeNil()) o.Expect(build.Spec.Source.Git).To(o.BeNil()) diff --git a/test/extended/builds/optimized.go b/test/extended/builds/optimized.go index f67fd7f1b91a..b48b93d5955a 100644 --- a/test/extended/builds/optimized.go +++ b/test/extended/builds/optimized.go @@ -7,8 +7,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - kapierrs "k8s.io/kubernetes/pkg/api/errors" + kapierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" e2e "k8s.io/kubernetes/test/e2e/framework" buildapi "github.com/openshift/origin/pkg/build/api" @@ -37,7 +37,7 @@ USER 1001 g.It("should succeed as an admin [Conformance]", func() { g.By("creating a build directly") build, err := oc.AdminClient().Builds(oc.Namespace()).Create(&buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "optimized", }, Spec: buildapi.BuildSpec{ @@ -60,7 +60,7 @@ USER 1001 o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(result.BuildSuccess).To(o.BeTrue(), "Build did not succeed: %v", result) - pod, err := oc.KubeClient().Pods(oc.Namespace()).Get(build.Name + "-build") + pod, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Get(build.Name+"-build", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) if strings.HasSuffix(pod.Spec.Containers[0].Image, ":v3.6.0-alpha.0") { g.Skip(fmt.Sprintf("The currently selected builder image does not yet support optimized image builds: %s", pod.Spec.Containers[0].Image)) @@ -78,7 +78,7 @@ USER 1001 g.It("should fail as a normal user [Conformance]", func() { g.By("creating a build directly") _, err := oc.Client().Builds(oc.Namespace()).Create(&buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "optimized", }, Spec: buildapi.BuildSpec{ diff --git a/test/extended/builds/pipeline.go b/test/extended/builds/pipeline.go index 1f27230cad77..1a80f16a7daa 100644 --- a/test/extended/builds/pipeline.go +++ b/test/extended/builds/pipeline.go @@ -14,6 +14,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/build/api" exutil "github.com/openshift/origin/test/extended/util" "github.com/openshift/origin/test/extended/util/jenkins" @@ -290,7 +292,7 @@ var _ = g.Describe("[builds][Slow] openshift pipeline build", func() { g.By("Waiting for the build uri") var jenkinsBuildURI string for { - build, err := oc.Client().Builds(oc.Namespace()).Get(br.BuildName) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.BuildName, metav1.GetOptions{}) if err != nil { errs <- fmt.Errorf("error getting build: %s", err) return @@ -340,7 +342,7 @@ var _ = g.Describe("[builds][Slow] openshift pipeline build", func() { defer g.GinkgoRecover() for { - build, err := oc.Client().Builds(oc.Namespace()).Get(br.BuildName) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.BuildName, metav1.GetOptions{}) switch { case err != nil: errs <- fmt.Errorf("error getting build: %s", err) diff --git a/test/extended/builds/remove_buildconfig.go b/test/extended/builds/remove_buildconfig.go index 1e84d083e28d..7bb9e1d6ad1c 100644 --- a/test/extended/builds/remove_buildconfig.go +++ b/test/extended/builds/remove_buildconfig.go @@ -3,11 +3,11 @@ package builds import ( "time" - "k8s.io/kubernetes/pkg/util/wait" - g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/util/wait" + exutil "github.com/openshift/origin/test/extended/util" ) diff --git a/test/extended/builds/revision.go b/test/extended/builds/revision.go index b02c047febff..b4c88f6b393c 100644 --- a/test/extended/builds/revision.go +++ b/test/extended/builds/revision.go @@ -6,6 +6,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + exutil "github.com/openshift/origin/test/extended/util" ) @@ -30,7 +32,7 @@ var _ = g.Describe("[builds] build have source revision metadata", func() { br.AssertSuccess() g.By(fmt.Sprintf("verifying the status of %q", br.BuildPath)) - build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name) + build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build.Spec.Revision).NotTo(o.BeNil()) o.Expect(build.Spec.Revision.Git).NotTo(o.BeNil()) diff --git a/test/extended/builds/run_policy.go b/test/extended/builds/run_policy.go index 42a32c8c3347..25110c999800 100644 --- a/test/extended/builds/run_policy.go +++ b/test/extended/builds/run_policy.go @@ -7,7 +7,7 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" e2e "k8s.io/kubernetes/test/e2e/framework" buildapi "github.com/openshift/origin/pkg/build/api" @@ -40,8 +40,8 @@ var _ = g.Describe("[builds][Slow] using build configuration runPolicy", func() ) bcName := "sample-parallel-build" - buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(kapi.ListOptions{ - LabelSelector: buildutil.BuildConfigSelector(bcName), + buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(metav1.ListOptions{ + LabelSelector: buildutil.BuildConfigSelector(bcName).String(), }) defer buildWatch.Stop() @@ -126,8 +126,8 @@ var _ = g.Describe("[builds][Slow] using build configuration runPolicy", func() startedBuilds = append(startedBuilds, strings.TrimSpace(strings.Split(stdout, "/")[1])) } - buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(kapi.ListOptions{ - LabelSelector: buildutil.BuildConfigSelector(bcName), + buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(metav1.ListOptions{ + LabelSelector: buildutil.BuildConfigSelector(bcName).String(), }) defer buildWatch.Stop() o.Expect(err).NotTo(o.HaveOccurred()) @@ -191,8 +191,8 @@ var _ = g.Describe("[builds][Slow] using build configuration runPolicy", func() o.Expect(err).NotTo(o.HaveOccurred()) } - buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(kapi.ListOptions{ - LabelSelector: buildutil.BuildConfigSelector(bcName), + buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(metav1.ListOptions{ + LabelSelector: buildutil.BuildConfigSelector(bcName).String(), }) defer buildWatch.Stop() o.Expect(err).NotTo(o.HaveOccurred()) @@ -234,8 +234,8 @@ var _ = g.Describe("[builds][Slow] using build configuration runPolicy", func() o.Expect(err).NotTo(o.HaveOccurred()) } - buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(kapi.ListOptions{ - LabelSelector: buildutil.BuildConfigSelector(bcName), + buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(metav1.ListOptions{ + LabelSelector: buildutil.BuildConfigSelector(bcName).String(), }) defer buildWatch.Stop() o.Expect(err).NotTo(o.HaveOccurred()) @@ -307,8 +307,8 @@ var _ = g.Describe("[builds][Slow] using build configuration runPolicy", func() bcName := "sample-serial-latest-only-build" buildVerified := map[string]bool{} - buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(kapi.ListOptions{ - LabelSelector: buildutil.BuildConfigSelector(bcName), + buildWatch, err := oc.Client().Builds(oc.Namespace()).Watch(metav1.ListOptions{ + LabelSelector: buildutil.BuildConfigSelector(bcName).String(), }) defer buildWatch.Stop() o.Expect(err).NotTo(o.HaveOccurred()) diff --git a/test/extended/builds/s2i_quota.go b/test/extended/builds/s2i_quota.go index c16dbfa37fc3..49a80f5f4aaf 100644 --- a/test/extended/builds/s2i_quota.go +++ b/test/extended/builds/s2i_quota.go @@ -6,6 +6,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + kapi "k8s.io/kubernetes/pkg/api" + buildapi "github.com/openshift/origin/pkg/build/api" exutil "github.com/openshift/origin/test/extended/util" ) @@ -54,7 +56,7 @@ var _ = g.Describe("[builds][Conformance] s2i build with a quota", func() { o.Expect(buildLog).To(o.ContainSubstring("PERIOD=100000")) o.Expect(buildLog).To(o.ContainSubstring("QUOTA=6000")) - events, err := oc.KubeClient().Core().Events(oc.Namespace()).Search(br.Build) + events, err := oc.KubeClient().Core().Events(oc.Namespace()).Search(kapi.Scheme, br.Build) o.Expect(err).NotTo(o.HaveOccurred(), "Should be able to get events from the build") o.Expect(events).NotTo(o.BeNil(), "Build event list should not be nil") diff --git a/test/extended/builds/secrets.go b/test/extended/builds/secrets.go index 06b6e0856b15..6ac1ce904e6c 100644 --- a/test/extended/builds/secrets.go +++ b/test/extended/builds/secrets.go @@ -5,8 +5,10 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" ) var _ = g.Describe("[builds][Slow] can use build secrets", func() { @@ -50,7 +52,7 @@ var _ = g.Describe("[builds][Slow] can use build secrets", func() { o.Expect(err).NotTo(o.HaveOccurred()) g.By("verifying the build secrets were available during build and not present in the output image") - pod := exutil.GetPodForContainer(kapi.Container{Name: "test", Image: image}) + pod := exutil.GetPodForContainer(kapiv1.Container{Name: "test", Image: image}) oc.KubeFramework().TestContainerOutput("test-build-secret-source", pod, 0, []string{ "testsecret/secret1=secret1", "testsecret/secret2=secret2", @@ -85,7 +87,7 @@ var _ = g.Describe("[builds][Slow] can use build secrets", func() { o.Expect(err).NotTo(o.HaveOccurred()) g.By("verifying the secrets are present in container output") - pod := exutil.GetPodForContainer(kapi.Container{Name: "test", Image: image}) + pod := exutil.GetPodForContainer(kapiv1.Container{Name: "test", Image: image}) oc.KubeFramework().TestContainerOutput("test-build-secret-docker", pod, 0, []string{ "secret1=secret1", "relative-secret2=secret2", diff --git a/test/extended/builds/start.go b/test/extended/builds/start.go index 9b7269ba379a..a3ad700db10f 100644 --- a/test/extended/builds/start.go +++ b/test/extended/builds/start.go @@ -7,11 +7,12 @@ import ( "sync" "time" - "k8s.io/kubernetes/pkg/util/wait" - g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + buildapi "github.com/openshift/origin/pkg/build/api" exutil "github.com/openshift/origin/test/extended/util" ) @@ -248,7 +249,7 @@ var _ = g.Describe("[builds][Slow] starting a build using CLI", func() { }) o.Expect(buildName).ToNot(o.BeEmpty()) - build, err := oc.Client().Builds(oc.Namespace()).Get(buildName) + build, err := oc.Client().Builds(oc.Namespace()).Get(buildName, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(build).NotTo(o.BeNil(), "build object should exist") diff --git a/test/extended/cli/rsync.go b/test/extended/cli/rsync.go index 8856b8e5334f..9ca61b7a181b 100644 --- a/test/extended/cli/rsync.go +++ b/test/extended/cli/rsync.go @@ -12,8 +12,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" e2e "k8s.io/kubernetes/test/e2e/framework" exutil "github.com/openshift/origin/test/extended/util" @@ -44,7 +44,7 @@ var _ = g.Describe("[cli][Slow] can use rsync to upload files to pods", func() { g.By("Getting the jenkins pod name") selector, _ := labels.Parse("name=jenkins") - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: selector}) + pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: selector.String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).ToNot(o.BeZero()) podName = pods.Items[0].Name diff --git a/test/extended/deployments/deployments.go b/test/extended/deployments/deployments.go index 5fc2804f7fd3..0942db5f175d 100644 --- a/test/extended/deployments/deployments.go +++ b/test/extended/deployments/deployments.go @@ -9,10 +9,12 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/wait" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" e2e "k8s.io/kubernetes/test/e2e/framework" "github.com/openshift/origin/pkg/client" @@ -20,6 +22,7 @@ import ( deployutil "github.com/openshift/origin/pkg/deploy/util" imageapi "github.com/openshift/origin/pkg/image/api" exutil "github.com/openshift/origin/test/extended/util" + "k8s.io/kubernetes/pkg/api/v1" ) const deploymentRunTimeout = 5 * time.Minute @@ -106,11 +109,11 @@ var _ = g.Describe("deploymentconfigs", func() { } for _, pod := range pods { e2e.Logf("%02d: deleting deployer pod %s", i, pod.Name) - options := kapi.NewDeleteOptions(0) + options := metav1.NewDeleteOptions(0) if rand.Float32() < 0.5 { options = nil } - if err := oc.KubeClient().Core().Pods(oc.Namespace()).Delete(pod.Name, options); err != nil { + if err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Delete(pod.Name, options); err != nil { e2e.Logf("%02d: unable to delete deployer pod %q: %v", i, pod.Name, err) } } @@ -208,13 +211,13 @@ var _ = g.Describe("deploymentconfigs", func() { name := "deployment-image-resolution" o.Expect(waitForLatestCondition(oc, name, deploymentRunTimeout, deploymentImageTriggersResolved(2))).NotTo(o.HaveOccurred()) - is, err := oc.Client().ImageStreams(oc.Namespace()).Get(name) + is, err := oc.Client().ImageStreams(oc.Namespace()).Get(name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(is.Status.DockerImageRepository).NotTo(o.BeEmpty()) o.Expect(is.Status.Tags["direct"].Items).NotTo(o.BeEmpty()) o.Expect(is.Status.Tags["pullthrough"].Items).NotTo(o.BeEmpty()) - dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) + dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(dc.Spec.Triggers).To(o.HaveLen(3)) @@ -261,7 +264,7 @@ var _ = g.Describe("deploymentconfigs", func() { g.By("ensuring no scale up of the deployment happens") wait.PollImmediate(100*time.Millisecond, 10*time.Second, func() (bool, error) { - rc, err := oc.KubeClient().Core().ReplicationControllers(oc.Namespace()).Get("deployment-test-1") + rc, err := oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()).Get("deployment-test-1", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(rc.Spec.Replicas).Should(o.BeEquivalentTo(0)) o.Expect(rc.Status.Replicas).Should(o.BeEquivalentTo(0)) @@ -269,7 +272,7 @@ var _ = g.Describe("deploymentconfigs", func() { }) g.By("verifying the scale is updated on the deployment config") - config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get("deployment-test") + config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get("deployment-test", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(config.Spec.Replicas).Should(o.BeEquivalentTo(1)) o.Expect(config.Spec.Test).Should(o.BeTrue()) @@ -459,7 +462,7 @@ var _ = g.Describe("deploymentconfigs", func() { g.By("waiting for the first rollout to complete") o.Expect(waitForLatestCondition(oc, name, deploymentRunTimeout, deploymentReachedCompletion)).NotTo(o.HaveOccurred()) - dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) + dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) g.By("updating the deployment config in order to trigger a new rollout") @@ -471,7 +474,7 @@ var _ = g.Describe("deploymentconfigs", func() { // Wait for latestVersion=2 to be surfaced in the API latestVersion := dc.Status.LatestVersion err = wait.PollImmediate(500*time.Millisecond, 10*time.Second, func() (bool, error) { - dc, err = oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) + dc, err = oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -789,13 +792,19 @@ var _ = g.Describe("deploymentconfigs", func() { o.Expect(waitForLatestCondition(oc, "history-limit", deploymentRunTimeout, deploymentReachedCompletion)).NotTo(o.HaveOccurred()) o.Expect(waitForSyncedConfig(oc, "history-limit", deploymentRunTimeout)).NotTo(o.HaveOccurred(), "the controller needs to have synced with the updated deployment configuration before checking that the revision history limits are being adhered to") - deploymentConfig, deployments, _, err := deploymentInfo(oc, "history-limit") + deploymentConfig, deploymentsv1, _, err := deploymentInfo(oc, "history-limit") o.Expect(err).NotTo(o.HaveOccurred()) // sanity check to ensure that the following asertion on the amount of old deployments is valid o.Expect(*deploymentConfig.Spec.RevisionHistoryLimit).To(o.Equal(int32(revisionHistoryLimit))) // we need to filter out any deployments that we don't care about, // namely the active deployment and any newer deployments + // TODO: get rid of ugly conversion by porting the deploymentconfig controller to v1 RCs + deployments := make([]*kapi.ReplicationController, len(deploymentsv1)) + for i := range deploymentsv1 { + deployments[i] = &kapi.ReplicationController{} + v1.Convert_v1_ReplicationController_To_api_ReplicationController(deploymentsv1[i], deployments[i], nil) + } oldDeployments := deployutil.DeploymentsForCleanup(deploymentConfig, deployments) // we should not have more deployments than acceptable @@ -821,14 +830,14 @@ var _ = g.Describe("deploymentconfigs", func() { o.Expect(waitForLatestCondition(oc, name, deploymentRunTimeout, deploymentRunning)).NotTo(o.HaveOccurred()) g.By("verifying that all pods are ready") - config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) + config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) selector := labels.Set(config.Spec.Selector).AsSelector() - opts := kapi.ListOptions{LabelSelector: selector} + opts := metav1.ListOptions{LabelSelector: selector.String()} ready := 0 if err := wait.PollImmediate(500*time.Millisecond, 3*time.Minute, func() (bool, error) { - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(opts) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(opts) if err != nil { return false, nil } @@ -836,7 +845,7 @@ var _ = g.Describe("deploymentconfigs", func() { ready = 0 for i := range pods.Items { pod := pods.Items[i] - if kapi.IsPodReady(&pod) { + if kapiv1.IsPodReady(&pod) { ready++ } } @@ -849,8 +858,9 @@ var _ = g.Describe("deploymentconfigs", func() { g.By("verifying that the deployment is still running") latestName := deployutil.DeploymentNameForConfigVersion(name, config.Status.LatestVersion) - latest, err := oc.KubeClient().Core().ReplicationControllers(oc.Namespace()).Get(latestName) + latest, err := oc.InternalKubeClient().Core().ReplicationControllers(oc.Namespace()).Get(latestName, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) + if deployutil.IsTerminatedDeployment(latest) { o.Expect(fmt.Errorf("expected deployment %q not to have terminated", latest.Name)).NotTo(o.HaveOccurred()) } diff --git a/test/extended/deployments/util.go b/test/extended/deployments/util.go index 2a965bc09a2f..9d6d1e4b25c9 100644 --- a/test/extended/deployments/util.go +++ b/test/extended/deployments/util.go @@ -6,11 +6,13 @@ import ( "strings" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" e2e "k8s.io/kubernetes/test/e2e/framework" deployapi "github.com/openshift/origin/pkg/deploy/api" @@ -26,8 +28,8 @@ func deploymentStatuses(rcs []kapi.ReplicationController) []string { return statuses } -func deploymentPods(pods []kapi.Pod) (map[string][]*kapi.Pod, error) { - deployers := make(map[string][]*kapi.Pod) +func deploymentPods(pods []kapiv1.Pod) (map[string][]*kapiv1.Pod, error) { + deployers := make(map[string][]*kapiv1.Pod) for i := range pods { name, ok := pods[i].Labels[deployapi.DeployerPodForDeploymentLabel] if !ok { @@ -40,7 +42,7 @@ func deploymentPods(pods []kapi.Pod) (map[string][]*kapi.Pod, error) { var completedStatuses = sets.NewString(string(deployapi.DeploymentStatusComplete), string(deployapi.DeploymentStatusFailed)) -func checkDeployerPodInvariants(deploymentName string, pods []*kapi.Pod) (isRunning, isCompleted bool, err error) { +func checkDeployerPodInvariants(deploymentName string, pods []*kapiv1.Pod) (isRunning, isCompleted bool, err error) { running := false completed := false succeeded := false @@ -56,10 +58,10 @@ func checkDeployerPodInvariants(deploymentName string, pods []*kapi.Pod) (isRunn hasDeployer = true switch pod.Status.Phase { - case kapi.PodSucceeded: + case kapiv1.PodSucceeded: succeeded = true completed = true - case kapi.PodFailed: + case kapiv1.PodFailed: completed = true default: running = true @@ -75,8 +77,8 @@ func checkDeployerPodInvariants(deploymentName string, pods []*kapi.Pod) (isRunn switch { case strings.HasSuffix(pod.Name, "-pre"), strings.HasSuffix(pod.Name, "-mid"), strings.HasSuffix(pod.Name, "-post"): switch pod.Status.Phase { - case kapi.PodSucceeded: - case kapi.PodFailed: + case kapiv1.PodSucceeded: + case kapiv1.PodFailed: if succeeded { return false, false, fmt.Errorf("deployer hook pod %q failed but the deployment %q pod succeeded", pod.Name, deploymentName) } @@ -95,7 +97,7 @@ func checkDeployerPodInvariants(deploymentName string, pods []*kapi.Pod) (isRunn return running, completed, nil } -func checkDeploymentInvariants(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) error { +func checkDeploymentInvariants(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) error { deployers, err := deploymentPods(pods) if err != nil { return err @@ -163,11 +165,13 @@ func checkDeploymentInvariants(dc *deployapi.DeploymentConfig, rcs []*kapi.Repli return nil } -func deploymentReachedCompletion(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) { +func deploymentReachedCompletion(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) { if len(rcs) == 0 { return false, nil } - rc := rcs[len(rcs)-1] + rcv1 := rcs[len(rcs)-1] + rc := &kapi.ReplicationController{} + kapiv1.Convert_v1_ReplicationController_To_api_ReplicationController(rcv1, rc, nil) version := deployutil.DeploymentVersionFor(rc) if version != dc.Status.LatestVersion { return false, nil @@ -195,11 +199,13 @@ func deploymentReachedCompletion(dc *deployapi.DeploymentConfig, rcs []*kapi.Rep return true, nil } -func deploymentFailed(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, _ []kapi.Pod) (bool, error) { +func deploymentFailed(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, _ []kapiv1.Pod) (bool, error) { if len(rcs) == 0 { return false, nil } - rc := rcs[len(rcs)-1] + rcv1 := rcs[len(rcs)-1] + rc := &kapi.ReplicationController{} + kapiv1.Convert_v1_ReplicationController_To_api_ReplicationController(rcv1, rc, nil) version := deployutil.DeploymentVersionFor(rc) if version != dc.Status.LatestVersion { return false, nil @@ -211,11 +217,13 @@ func deploymentFailed(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationCon return cond != nil && cond.Reason == deployapi.TimedOutReason, nil } -func deploymentRunning(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) { +func deploymentRunning(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) { if len(rcs) == 0 { return false, nil } - rc := rcs[len(rcs)-1] + rcv1 := rcs[len(rcs)-1] + rc := &kapi.ReplicationController{} + kapiv1.Convert_v1_ReplicationController_To_api_ReplicationController(rcv1, rc, nil) version := deployutil.DeploymentVersionFor(rc) if version != dc.Status.LatestVersion { //e2e.Logf("deployment %s is not the latest version on DC: %d", rc.Name, version) @@ -240,8 +248,8 @@ func deploymentRunning(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationCo } } -func deploymentPreHookRetried(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) { - var preHook *kapi.Pod +func deploymentPreHookRetried(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) { + var preHook *kapiv1.Pod for i := range pods { pod := pods[i] if !strings.HasSuffix(pod.Name, "-pre") { @@ -258,8 +266,8 @@ func deploymentPreHookRetried(dc *deployapi.DeploymentConfig, rcs []*kapi.Replic return preHook.Status.ContainerStatuses[0].RestartCount > 0, nil } -func deploymentImageTriggersResolved(expectTriggers int) func(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) { - return func(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) { +func deploymentImageTriggersResolved(expectTriggers int) func(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) { + return func(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) { expect := 0 for _, t := range dc.Spec.Triggers { if t.Type != deployapi.DeploymentTriggerOnImageChange { @@ -280,36 +288,36 @@ func deploymentImageTriggersResolved(expectTriggers int) func(dc *deployapi.Depl } } -func deploymentInfo(oc *exutil.CLI, name string) (*deployapi.DeploymentConfig, []*kapi.ReplicationController, []kapi.Pod, error) { - dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) +func deploymentInfo(oc *exutil.CLI, name string) (*deployapi.DeploymentConfig, []*kapiv1.ReplicationController, []kapiv1.Pod, error) { + dc, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) if err != nil { return nil, nil, nil, err } // get pods before RCs, so we see more RCs than pods. - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{}) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{}) if err != nil { return nil, nil, nil, err } - rcs, err := oc.KubeClient().Core().ReplicationControllers(oc.Namespace()).List(kapi.ListOptions{ - LabelSelector: deployutil.ConfigSelector(name), + rcs, err := oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()).List(metav1.ListOptions{ + LabelSelector: deployutil.ConfigSelector(name).String(), }) if err != nil { return nil, nil, nil, err } - deployments := make([]*kapi.ReplicationController, 0, len(rcs.Items)) + deployments := make([]*kapiv1.ReplicationController, 0, len(rcs.Items)) for i := range rcs.Items { deployments = append(deployments, &rcs.Items[i]) } - sort.Sort(deployutil.ByLatestVersionAsc(deployments)) + sort.Sort(deployutil.ByLatestVersionAscV1(deployments)) return dc, deployments, pods.Items, nil } -type deploymentConditionFunc func(dc *deployapi.DeploymentConfig, rcs []*kapi.ReplicationController, pods []kapi.Pod) (bool, error) +type deploymentConditionFunc func(dc *deployapi.DeploymentConfig, rcs []*kapiv1.ReplicationController, pods []kapiv1.Pod) (bool, error) func waitForLatestCondition(oc *exutil.CLI, name string, timeout time.Duration, fn deploymentConditionFunc) error { return wait.PollImmediate(200*time.Millisecond, timeout, func() (bool, error) { @@ -334,7 +342,7 @@ func waitForSyncedConfig(oc *exutil.CLI, name string, timeout time.Duration) err } generation := dc.Generation return wait.PollImmediate(200*time.Millisecond, timeout, func() (bool, error) { - config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name) + config, err := oc.Client().DeploymentConfigs(oc.Namespace()).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -346,7 +354,7 @@ func waitForSyncedConfig(oc *exutil.CLI, name string, timeout time.Duration) err // rollout and then wait till the deployer pod finish. Then scrubs the deployer logs and // return it. func waitForDeployerToComplete(oc *exutil.CLI, name string, timeout time.Duration) (string, error) { - watcher, err := oc.KubeClient().ReplicationControllers(oc.Namespace()).Watch(kapi.ListOptions{FieldSelector: fields.Everything()}) + watcher, err := oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()).Watch(metav1.ListOptions{FieldSelector: fields.Everything().String()}) if err != nil { return "", err } @@ -367,7 +375,7 @@ func waitForDeployerToComplete(oc *exutil.CLI, name string, timeout time.Duratio return "", err } podName := deployutil.DeployerPodNameForDeployment(rc.Name) - if err := deployutil.WaitForRunningDeployerPod(oc.KubeClient(), rc, timeout); err != nil { + if err := deployutil.WaitForRunningDeployerPod(oc.InternalKubeClient().Core(), rc, timeout); err != nil { return "", err } output, err := oc.Run("logs").Args("-f", "pods/"+podName).Output() diff --git a/test/extended/dns/dns.go b/test/extended/dns/dns.go index fce1754e7cb2..6078b7e38cb1 100644 --- a/test/extended/dns/dns.go +++ b/test/extended/dns/dns.go @@ -9,29 +9,31 @@ import ( "strings" . "github.com/onsi/ginkgo" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/uuid" + "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/uuid" - "k8s.io/kubernetes/pkg/watch" + kapi "k8s.io/kubernetes/pkg/api" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" e2e "k8s.io/kubernetes/test/e2e/framework" ) -func createDNSPod(namespace, probeCmd string) *api.Pod { - pod := &api.Pod{ - TypeMeta: unversioned.TypeMeta{ +func createDNSPod(namespace, probeCmd string) *kapiv1.Pod { + pod := &kapiv1.Pod{ + TypeMeta: metav1.TypeMeta{ Kind: "Pod", - APIVersion: registered.GroupOrDie(api.GroupName).GroupVersion.String(), + APIVersion: kapi.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), }, - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dns-test-" + string(uuid.NewUUID()), Namespace: namespace, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyNever, - Containers: []api.Container{ + Spec: kapiv1.PodSpec{ + RestartPolicy: kapiv1.RestartPolicyNever, + Containers: []kapiv1.Container{ { Name: "querier", Image: "gcr.io/google_containers/dnsutils:e2e", @@ -158,7 +160,7 @@ func assertLinesExist(lines sets.String, expect int, r io.Reader) error { func PodSucceeded(event watch.Event) (bool, error) { switch event.Type { case watch.Deleted: - return false, errors.NewNotFound(unversioned.GroupResource{Resource: "pods"}, "") + return false, errors.NewNotFound(schema.GroupResource{Resource: "pods"}, "") } switch t := event.Object.(type) { case *api.Pod: @@ -172,20 +174,20 @@ func PodSucceeded(event watch.Event) (bool, error) { return false, nil } -func validateDNSResults(f *e2e.Framework, pod *api.Pod, fileNames sets.String, expect int) { +func validateDNSResults(f *e2e.Framework, pod *kapiv1.Pod, fileNames sets.String, expect int) { By("submitting the pod to kubernetes") - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) defer func() { By("deleting the pod") defer GinkgoRecover() - podClient.Delete(pod.Name, api.NewDeleteOptions(0)) + podClient.Delete(pod.Name, metav1.NewDeleteOptions(0)) }() updated, err := podClient.Create(pod) if err != nil { e2e.Failf("Failed to create %s pod: %v", pod.Name, err) } - w, err := f.ClientSet.Core().Pods(f.Namespace.Name).Watch(api.SingleObject(api.ObjectMeta{Name: pod.Name, ResourceVersion: updated.ResourceVersion})) + w, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: pod.Name, ResourceVersion: updated.ResourceVersion})) if err != nil { e2e.Failf("Failed: %v", err) } @@ -194,7 +196,7 @@ func validateDNSResults(f *e2e.Framework, pod *api.Pod, fileNames sets.String, e } By("retrieving the pod logs") - r, err := podClient.GetLogs(pod.Name, &api.PodLogOptions{Container: "querier"}).Stream() + r, err := podClient.GetLogs(pod.Name, &kapiv1.PodLogOptions{Container: "querier"}).Stream() if err != nil { e2e.Failf("Failed to get pod logs %s: %v", pod.Name, err) } @@ -214,13 +216,13 @@ func validateDNSResults(f *e2e.Framework, pod *api.Pod, fileNames sets.String, e e2e.Logf("DNS probes using %s succeeded\n", pod.Name) } -func createServiceSpec(serviceName string, isHeadless bool, externalName string, selector map[string]string) *api.Service { - s := &api.Service{ - ObjectMeta: api.ObjectMeta{ +func createServiceSpec(serviceName string, isHeadless bool, externalName string, selector map[string]string) *kapiv1.Service { + s := &kapiv1.Service{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, }, - Spec: api.ServiceSpec{ - Ports: []api.ServicePort{ + Spec: kapiv1.ServiceSpec{ + Ports: []kapiv1.ServicePort{ {Port: 80, Name: "http", Protocol: "TCP"}, }, Selector: selector, @@ -230,29 +232,29 @@ func createServiceSpec(serviceName string, isHeadless bool, externalName string, s.Spec.ClusterIP = "None" } if len(externalName) > 0 { - s.Spec.Type = api.ServiceTypeExternalName + s.Spec.Type = kapiv1.ServiceTypeExternalName s.Spec.ExternalName = externalName s.Spec.ClusterIP = "" } return s } -func createEndpointSpec(name string) *api.Endpoints { - return &api.Endpoints{ - ObjectMeta: api.ObjectMeta{ +func createEndpointSpec(name string) *kapiv1.Endpoints { + return &kapiv1.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, - Subsets: []api.EndpointSubset{ + Subsets: []kapiv1.EndpointSubset{ { - Addresses: []api.EndpointAddress{ + Addresses: []kapiv1.EndpointAddress{ {IP: "1.1.1.1", Hostname: "endpoint1"}, {IP: "1.1.1.2"}, }, - NotReadyAddresses: []api.EndpointAddress{ + NotReadyAddresses: []kapiv1.EndpointAddress{ {IP: "2.1.1.1"}, {IP: "2.1.1.2"}, }, - Ports: []api.EndpointPort{ + Ports: []kapiv1.EndpointPort{ {Port: 80}, }, }, @@ -260,7 +262,7 @@ func createEndpointSpec(name string) *api.Endpoints { } } -func ipsForEndpoints(ep *api.Endpoints) []string { +func ipsForEndpoints(ep *kapiv1.Endpoints) []string { ips := sets.NewString() for _, sub := range ep.Subsets { for _, addr := range sub.Addresses { @@ -274,23 +276,23 @@ var _ = Describe("DNS", func() { f := e2e.NewDefaultFramework("dns") It("should answer endpoint and wildcard queries for the cluster [Conformance]", func() { - if _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(createServiceSpec("headless", true, "", nil)); err != nil { + if _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(createServiceSpec("headless", true, "", nil)); err != nil { e2e.Failf("unable to create headless service: %v", err) } - if _, err := f.ClientSet.Core().Endpoints(f.Namespace.Name).Create(createEndpointSpec("headless")); err != nil { + if _, err := f.ClientSet.CoreV1().Endpoints(f.Namespace.Name).Create(createEndpointSpec("headless")); err != nil { e2e.Failf("unable to create clusterip endpoints: %v", err) } - if _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(createServiceSpec("clusterip", false, "", nil)); err != nil { + if _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(createServiceSpec("clusterip", false, "", nil)); err != nil { e2e.Failf("unable to create clusterip service: %v", err) } - if _, err := f.ClientSet.Core().Endpoints(f.Namespace.Name).Create(createEndpointSpec("clusterip")); err != nil { + if _, err := f.ClientSet.CoreV1().Endpoints(f.Namespace.Name).Create(createEndpointSpec("clusterip")); err != nil { e2e.Failf("unable to create clusterip endpoints: %v", err) } - if _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(createServiceSpec("externalname", true, "www.google.com", nil)); err != nil { + if _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(createServiceSpec("externalname", true, "www.google.com", nil)); err != nil { e2e.Failf("unable to create externalName service: %v", err) } - ep, err := f.ClientSet.Core().Endpoints("default").Get("kubernetes") + ep, err := f.ClientSet.CoreV1().Endpoints("default").Get("kubernetes", metav1.GetOptions{}) if err != nil { e2e.Failf("unable to find endpoints for kubernetes.default: %v", err) } diff --git a/test/extended/idling/idling.go b/test/extended/idling/idling.go index 78aa170d09ad..66b36be282ec 100644 --- a/test/extended/idling/idling.go +++ b/test/extended/idling/idling.go @@ -13,10 +13,12 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + unidlingproxy "github.com/openshift/origin/pkg/proxy/unidler" unidlingapi "github.com/openshift/origin/pkg/unidling/api" exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" ) func tryEchoUDPOnce(ip net.IP, udpPort int, expectedBuff []byte, readTimeout time.Duration) ([]byte, error) { @@ -55,7 +57,7 @@ func tryEchoUDPOnce(ip net.IP, udpPort int, expectedBuff []byte, readTimeout tim return actualBuff, nil } -func tryEchoUDP(svc *kapi.Service) error { +func tryEchoUDP(svc *kapiv1.Service) error { rawIP := svc.Spec.ClusterIP o.Expect(rawIP).NotTo(o.BeEmpty(), "The service should have a cluster IP set") ip := net.ParseIP(rawIP) @@ -79,7 +81,7 @@ func tryEchoUDP(svc *kapi.Service) error { return nil } -func tryEchoTCP(svc *kapi.Service) error { +func tryEchoTCP(svc *kapiv1.Service) error { rawIP := svc.Spec.ClusterIP if rawIP == "" { return fmt.Errorf("no ClusterIP specified on service %s", svc.Name) @@ -171,7 +173,7 @@ func checkSingleIdle(oc *exutil.CLI, idlingFile string, resources map[string][]s g.By("Fetching the service and checking the annotations are present") serviceName := resources["service"][0] - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(endpoints.Annotations).To(o.HaveKey(unidlingapi.IdledAtAnnotation)) @@ -290,7 +292,7 @@ var _ = g.Describe("idling and unidling", func() { g.By("Connecting to the service IP and checking the echo") serviceName := resources["service"][0] - svc, err := oc.KubeClient().Core().Services(oc.Namespace()).Get(serviceName) + svc, err := oc.KubeClient().CoreV1().Services(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) err = tryEchoTCP(svc) @@ -300,7 +302,7 @@ var _ = g.Describe("idling and unidling", func() { err = waitForEndpointsAvailable(oc, serviceName) o.Expect(err).ToNot(o.HaveOccurred()) - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) g.By("Making sure the endpoints are no longer marked as idled") @@ -315,7 +317,7 @@ var _ = g.Describe("idling and unidling", func() { g.By("Connecting to the service IP and repeatedly connecting, making sure we seamlessly idle and come back up") serviceName := resources["service"][0] - svc, err := oc.KubeClient().Core().Services(oc.Namespace()).Get(serviceName) + svc, err := oc.KubeClient().CoreV1().Services(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) o.Consistently(func() error { return tryEchoTCP(svc) }, 10*time.Second, 500*time.Millisecond).ShouldNot(o.HaveOccurred()) @@ -324,7 +326,7 @@ var _ = g.Describe("idling and unidling", func() { err = waitForEndpointsAvailable(oc, serviceName) o.Expect(err).ToNot(o.HaveOccurred()) - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) g.By("Making sure the endpoints are no longer marked as idled") @@ -343,7 +345,7 @@ var _ = g.Describe("idling and unidling", func() { o.Expect(err).ToNot(o.HaveOccurred()) g.By("Connecting to the service IP many times and checking the echo") - svc, err := oc.KubeClient().Core().Services(oc.Namespace()).Get(serviceName) + svc, err := oc.KubeClient().CoreV1().Services(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) connectionsToStart := 100 @@ -374,7 +376,7 @@ var _ = g.Describe("idling and unidling", func() { g.By("Waiting until we have endpoints") err = waitForEndpointsAvailable(oc, serviceName) - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) g.By("Making sure the endpoints are no longer marked as idled") @@ -393,7 +395,7 @@ var _ = g.Describe("idling and unidling", func() { g.By("Connecting to the service IP and checking the echo") serviceName := resources["service"][0] - svc, err := oc.KubeClient().Core().Services(oc.Namespace()).Get(serviceName) + svc, err := oc.KubeClient().CoreV1().Services(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) err = tryEchoUDP(svc) @@ -403,7 +405,7 @@ var _ = g.Describe("idling and unidling", func() { err = waitForEndpointsAvailable(oc, serviceName) o.Expect(err).ToNot(o.HaveOccurred()) - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) g.By("Making sure the endpoints are no longer marked as idled") @@ -423,7 +425,7 @@ var _ = g.Describe("idling and unidling", func() { g.By("Connecting to the service IP many times and checking the echo") serviceName := resources["service"][0] - svc, err := oc.KubeClient().Core().Services(oc.Namespace()).Get(serviceName) + svc, err := oc.KubeClient().CoreV1().Services(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) connectionsToStart := 100 @@ -455,7 +457,7 @@ var _ = g.Describe("idling and unidling", func() { err = waitForEndpointsAvailable(oc, serviceName) o.Expect(err).ToNot(o.HaveOccurred()) - endpoints, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + endpoints, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) o.Expect(err).ToNot(o.HaveOccurred()) g.By("Making sure the endpoints are no longer marked as idled") diff --git a/test/extended/idling/util.go b/test/extended/idling/util.go index ebfbe8c9df81..5d4927b36bb9 100644 --- a/test/extended/idling/util.go +++ b/test/extended/idling/util.go @@ -5,13 +5,13 @@ import ( "github.com/openshift/origin/pkg/util/errors" exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" ) func waitForEndpointsAvailable(oc *exutil.CLI, serviceName string) error { return wait.Poll(200*time.Millisecond, 3*time.Minute, func() (bool, error) { - ep, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) + ep, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName, metav1.GetOptions{}) // Tolerate NotFound b/c it could take a moment for the endpoints to be created if errors.TolerateNotFoundError(err) != nil { return false, err @@ -23,8 +23,8 @@ func waitForEndpointsAvailable(oc *exutil.CLI, serviceName string) error { func waitForNoPodsAvailable(oc *exutil.CLI) error { return wait.Poll(200*time.Millisecond, 3*time.Minute, func() (bool, error) { - //ep, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(serviceName) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{}) + //ep, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(serviceName) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{}) if err != nil { return false, err } diff --git a/test/extended/image_ecosystem/helper.go b/test/extended/image_ecosystem/helper.go index 8dae978c1a75..54774978a493 100644 --- a/test/extended/image_ecosystem/helper.go +++ b/test/extended/image_ecosystem/helper.go @@ -5,7 +5,8 @@ import ( "strings" "time" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" g "github.com/onsi/ginkgo" @@ -14,7 +15,7 @@ import ( // RunInPodContainer will run provided command in the specified pod container. func RunInPodContainer(oc *exutil.CLI, selector labels.Selector, cmd []string) error { - pods, err := exutil.WaitForPods(oc.KubeClient().Core().Pods(oc.Namespace()), selector, exutil.CheckPodIsRunningFn, 1, 2*time.Minute) + pods, err := exutil.WaitForPods(oc.KubeClient().CoreV1().Pods(oc.Namespace()), selector, exutil.CheckPodIsRunningFn, 1, 2*time.Minute) if err != nil { return err } @@ -22,7 +23,7 @@ func RunInPodContainer(oc *exutil.CLI, selector labels.Selector, cmd []string) e return fmt.Errorf("Got %d pods for selector %v, expected 1", len(pods), selector) } - pod, err := oc.KubeClient().Core().Pods(oc.Namespace()).Get(pods[0]) + pod, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Get(pods[0], metav1.GetOptions{}) if err != nil { return err } diff --git a/test/extended/image_ecosystem/jenkins_plugin.go b/test/extended/image_ecosystem/jenkins_plugin.go index f8c27f853320..65a1ff34f5f3 100644 --- a/test/extended/image_ecosystem/jenkins_plugin.go +++ b/test/extended/image_ecosystem/jenkins_plugin.go @@ -13,8 +13,10 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" exutil "github.com/openshift/origin/test/extended/util" "github.com/openshift/origin/test/extended/util/jenkins" @@ -39,7 +41,7 @@ func loadFixture(oc *exutil.CLI, filename string) { func assertEnvVars(oc *exutil.CLI, buildPrefix string, varsToFind map[string]string) { - buildList, err := oc.Client().Builds(oc.Namespace()).List(kapi.ListOptions{}) + buildList, err := oc.Client().Builds(oc.Namespace()).List(metav1.ListOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) // Ensure that expected start-build environment variables were injected @@ -71,13 +73,13 @@ func assertEnvVars(oc *exutil.CLI, buildPrefix string, varsToFind map[string]str } // Stands up a simple pod which can be used for exec commands -func initExecPod(oc *exutil.CLI) *kapi.Pod { +func initExecPod(oc *exutil.CLI) *kapiv1.Pod { // Create a running pod in which we can execute our commands oc.Run("run").Args("centos", "--image", "centos:7", "--command", "--", "sleep", "1800").Execute() - var targetPod *kapi.Pod + var targetPod *kapiv1.Pod err := wait.Poll(10*time.Second, 10*time.Minute, func() (bool, error) { - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{}) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{}) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) for _, p := range pods.Items { if strings.HasPrefix(p.Name, "centos") && !strings.Contains(p.Name, "deploy") && p.Status.Phase == "Running" { @@ -158,7 +160,7 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", o.Expect(err).NotTo(o.HaveOccurred()) g.By("waiting for jenkins deployment") - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "jenkins", oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "jenkins", oc) o.Expect(err).NotTo(o.HaveOccurred()) j = jenkins.NewRef(oc) @@ -218,9 +220,9 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", // we leverage some of the openshift utilities for waiting for the deployment before we poll // jenkins for the successful job completion g.By("waiting for frontend, frontend-prod deployments as signs that the build has finished") - err := exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "frontend", oc) + err := exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "frontend", oc) o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "frontend-prod", oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "frontend-prod", oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("get build console logs and see if succeeded") @@ -265,9 +267,9 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", // we leverage some of the openshift utilities for waiting for the deployment before we poll // jenkins for the successful job completion g.By("waiting for frontend, frontend-prod deployments as signs that the build has finished") - err := exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "frontend", oc) + err := exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "frontend", oc) o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "frontend-prod", oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "frontend-prod", oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("get build console logs and see if succeeded") @@ -323,7 +325,7 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", // we leverage some of the openshift utilities for waiting for the deployment before we poll // jenkins for the successful job completion g.By("waiting for frontend deployments as signs that the build has finished") - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "frontend", oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "frontend", oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("get build console logs and see if succeeded") @@ -339,7 +341,7 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", g.It("jenkins-plugin test trigger build DSL", func() { - buildsBefore, err := oc.Client().Builds(oc.Namespace()).List(kapi.ListOptions{}) + buildsBefore, err := oc.Client().Builds(oc.Namespace()).List(metav1.ListOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) data, err := j.BuildDSLJob(oc.Namespace(), @@ -355,12 +357,12 @@ var _ = g.Describe("[image_ecosystem][jenkins][Slow] openshift pipeline plugin", o.Expect(err).NotTo(o.HaveOccurred()) err = wait.Poll(10*time.Second, 10*time.Minute, func() (bool, error) { - buildsAfter, err := oc.Client().Builds(oc.Namespace()).List(kapi.ListOptions{}) + buildsAfter, err := oc.Client().Builds(oc.Namespace()).List(metav1.ListOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) return (len(buildsAfter.Items) != len(buildsBefore.Items)), nil }) - buildsAfter, err := oc.Client().Builds(oc.Namespace()).List(kapi.ListOptions{}) + buildsAfter, err := oc.Client().Builds(oc.Namespace()).List(metav1.ListOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(buildsAfter.Items)).To(o.Equal(len(buildsBefore.Items) + 1)) diff --git a/test/extended/image_ecosystem/mariadb_ephemeral.go b/test/extended/image_ecosystem/mariadb_ephemeral.go index 758b96dcd6ab..ccb2877dbfa6 100644 --- a/test/extended/image_ecosystem/mariadb_ephemeral.go +++ b/test/extended/image_ecosystem/mariadb_ephemeral.go @@ -29,7 +29,7 @@ var _ = g.Describe("[image_ecosystem][mariadb][Slow] openshift mariadb image", f // oc.KubeFramework().WaitForAnEndpoint currently will wait forever; for now, prefacing with our WaitForADeploymentToComplete, // which does have a timeout, since in most cases a failure in the service coming up stems from a failed deployment - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), "mariadb", oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), "mariadb", oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("expecting the mariadb service get endpoints") diff --git a/test/extended/image_ecosystem/mongodb_replica_statefulset.go b/test/extended/image_ecosystem/mongodb_replica_statefulset.go index 599ded45a208..7096e91ebc19 100644 --- a/test/extended/image_ecosystem/mongodb_replica_statefulset.go +++ b/test/extended/image_ecosystem/mongodb_replica_statefulset.go @@ -9,7 +9,7 @@ import ( exutil "github.com/openshift/origin/test/extended/util" dbutil "github.com/openshift/origin/test/extended/util/db" - kapi "k8s.io/kubernetes/pkg/api" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" ) var _ = g.Describe("[Conformance][image_ecosystem][mongodb][Slow] openshift mongodb replication (with statefulset)", func() { @@ -99,7 +99,7 @@ var _ = g.Describe("[Conformance][image_ecosystem][mongodb][Slow] openshift mong podNames, err = exutil.WaitForPods( oc.KubeClient().Core().Pods(oc.Namespace()), exutil.ParseLabelsOrDie("name=mongodb-replicaset"), - func(pod kapi.Pod) bool { return pod.DeletionTimestamp != nil }, + func(pod kapiv1.Pod) bool { return pod.DeletionTimestamp != nil }, 0, 2*time.Minute, ) diff --git a/test/extended/image_ecosystem/mysql_replica.go b/test/extended/image_ecosystem/mysql_replica.go index 4e52cf003a78..a5ec93f07c09 100644 --- a/test/extended/image_ecosystem/mysql_replica.go +++ b/test/extended/image_ecosystem/mysql_replica.go @@ -12,8 +12,8 @@ import ( "github.com/openshift/origin/test/extended/util/db" testutil "github.com/openshift/origin/test/util" - kapi "k8s.io/kubernetes/pkg/api" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" ) type testCase struct { @@ -77,7 +77,7 @@ func cleanup(oc *exutil.CLI) { oc.AsAdmin().Run("delete").Args("all", "--all", "-n", oc.Namespace()).Execute() exutil.DumpImageStreams(oc) oc.AsAdmin().Run("delete").Args("pvc", "--all", "-n", oc.Namespace()).Execute() - exutil.CleanupHostPathVolumes(oc.AdminKubeClient().Core().PersistentVolumes(), oc.Namespace()) + exutil.CleanupHostPathVolumes(oc.AdminKubeClient().CoreV1().PersistentVolumes(), oc.Namespace()) } func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { @@ -85,7 +85,7 @@ func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { oc.SetOutputDir(exutil.TestContext.OutputDir) defer cleanup(oc) - _, err := exutil.SetupHostPathVolumes(oc.AdminKubeClient().Core().PersistentVolumes(), oc.Namespace(), "1Gi", 2) + _, err := exutil.SetupHostPathVolumes(oc.AdminKubeClient().CoreV1().PersistentVolumes(), oc.Namespace(), "1Gi", 2) o.Expect(err).NotTo(o.HaveOccurred()) err = testutil.WaitForPolicyUpdate(oc.Client(), oc.Namespace(), "create", templateapi.Resource("templates"), true) @@ -101,7 +101,7 @@ func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { // oc.KubeFramework().WaitForAnEndpoint currently will wait forever; for now, prefacing with our WaitForADeploymentToComplete, // which does have a timeout, since in most cases a failure in the service coming up stems from a failed deployment g.By("waiting for the deployment to complete") - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), helperName, oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), helperName, oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("waiting for an endpoint") @@ -114,7 +114,7 @@ func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { table := fmt.Sprintf("table_%0.2d", tableCounter) g.By("creating replication helpers") - master, slaves, helper := CreateMySQLReplicationHelpers(oc.KubeClient().Core().Pods(oc.Namespace()), masterDeployment, slaveDeployment, fmt.Sprintf("%s-1", helperName), slaveCount) + master, slaves, helper := CreateMySQLReplicationHelpers(oc.KubeClient().CoreV1().Pods(oc.Namespace()), masterDeployment, slaveDeployment, fmt.Sprintf("%s-1", helperName), slaveCount) o.Expect(exutil.WaitUntilAllHelpersAreUp(oc, []exutil.Database{master, helper})).NotTo(o.HaveOccurred()) o.Expect(exutil.WaitUntilAllHelpersAreUp(oc, slaves)).NotTo(o.HaveOccurred()) @@ -156,24 +156,24 @@ func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { g.By("after master is restarted by changing the Deployment Config") err = oc.Run("env").Args("dc", "mysql-master", "MYSQL_ROOT_PASSWORD=newpass").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) master, _, _ = assertReplicationIsWorking("mysql-master-2", "mysql-slave-1", 1) g.By("after master is restarted by deleting the pod") err = oc.Run("delete").Args("pod", "-l", "deployment=mysql-master-2").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) _, slaves, _ := assertReplicationIsWorking("mysql-master-2", "mysql-slave-1", 1) g.By("after slave is restarted by deleting the pod") err = oc.Run("delete").Args("pod", "-l", "deployment=mysql-slave-1").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), slaves[0].PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), slaves[0].PodName(), 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) assertReplicationIsWorking("mysql-master-2", "mysql-slave-1", 1) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: exutil.ParseLabelsOrDie("deployment=mysql-slave-1")}) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: exutil.ParseLabelsOrDie("deployment=mysql-slave-1").String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) @@ -182,7 +182,7 @@ func replicationTestFactory(oc *exutil.CLI, tc testCase) func() { g.By("after slave is scaled to 0 and then back to 4 replicas") err = oc.Run("scale").Args("dc", "mysql-slave", "--replicas=0").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), pods.Items[0].Name, 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), pods.Items[0].Name, 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) err = oc.Run("scale").Args("dc", "mysql-slave", "--replicas=4").Execute() o.Expect(err).NotTo(o.HaveOccurred()) diff --git a/test/extended/image_ecosystem/postgresql_replica.go b/test/extended/image_ecosystem/postgresql_replica.go index dd8bab3aa509..61920c8aab37 100644 --- a/test/extended/image_ecosystem/postgresql_replica.go +++ b/test/extended/image_ecosystem/postgresql_replica.go @@ -12,8 +12,8 @@ import ( "github.com/openshift/origin/test/extended/util/db" testutil "github.com/openshift/origin/test/util" - kapi "k8s.io/kubernetes/pkg/api" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" ) var ( @@ -69,7 +69,7 @@ func PostgreSQLReplicationTestFactory(oc *exutil.CLI, image string) func() { oc.SetOutputDir(exutil.TestContext.OutputDir) defer cleanup(oc) - _, err := exutil.SetupHostPathVolumes(oc.AdminKubeClient().Core().PersistentVolumes(), oc.Namespace(), "512Mi", 1) + _, err := exutil.SetupHostPathVolumes(oc.AdminKubeClient().CoreV1().PersistentVolumes(), oc.Namespace(), "512Mi", 1) o.Expect(err).NotTo(o.HaveOccurred()) err = testutil.WaitForPolicyUpdate(oc.Client(), oc.Namespace(), "create", templateapi.Resource("templates"), true) @@ -84,7 +84,7 @@ func PostgreSQLReplicationTestFactory(oc *exutil.CLI, image string) func() { // oc.KubeFramework().WaitForAnEndpoint currently will wait forever; for now, prefacing with our WaitForADeploymentToComplete, // which does have a timeout, since in most cases a failure in the service coming up stems from a failed deployment - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), postgreSQLHelperName, oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), postgreSQLHelperName, oc) o.Expect(err).NotTo(o.HaveOccurred()) err = oc.KubeFramework().WaitForAnEndpoint(postgreSQLHelperName) @@ -103,7 +103,7 @@ func PostgreSQLReplicationTestFactory(oc *exutil.CLI, image string) func() { tableCounter++ table := fmt.Sprintf("table_%0.2d", tableCounter) - master, slaves, helper := CreatePostgreSQLReplicationHelpers(oc.KubeClient().Core().Pods(oc.Namespace()), masterDeployment, slaveDeployment, fmt.Sprintf("%s-1", postgreSQLHelperName), slaveCount) + master, slaves, helper := CreatePostgreSQLReplicationHelpers(oc.KubeClient().CoreV1().Pods(oc.Namespace()), masterDeployment, slaveDeployment, fmt.Sprintf("%s-1", postgreSQLHelperName), slaveCount) err := exutil.WaitUntilAllHelpersAreUp(oc, []exutil.Database{master, helper}) if err != nil { exutil.DumpDeploymentLogs("postgresql-master", oc) @@ -150,31 +150,31 @@ func PostgreSQLReplicationTestFactory(oc *exutil.CLI, image string) func() { g.By("after master is restarted by changing the Deployment Config") err = oc.Run("env").Args("dc", "postgresql-master", "POSTGRESQL_ADMIN_PASSWORD=newpass").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) master, _, _ = assertReplicationIsWorking("postgresql-master-2", "postgresql-slave-1", 1) g.By("after master is restarted by deleting the pod") err = oc.Run("delete").Args("pod", "-l", "deployment=postgresql-master-2").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), master.PodName(), 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) _, slaves, _ := assertReplicationIsWorking("postgresql-master-2", "postgresql-slave-1", 1) g.By("after slave is restarted by deleting the pod") err = oc.Run("delete").Args("pod", "-l", "deployment=postgresql-slave-1").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), slaves[0].PodName(), 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), slaves[0].PodName(), 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) assertReplicationIsWorking("postgresql-master-2", "postgresql-slave-1", 1) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: exutil.ParseLabelsOrDie("deployment=postgresql-slave-1")}) + pods, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: exutil.ParseLabelsOrDie("deployment=postgresql-slave-1").String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) g.By("after slave is scaled to 0 and then back to 4 replicas") err = oc.Run("scale").Args("dc", "postgresql-slave", "--replicas=0").Execute() o.Expect(err).NotTo(o.HaveOccurred()) - err = exutil.WaitUntilPodIsGone(oc.KubeClient().Core().Pods(oc.Namespace()), pods.Items[0].Name, 1*time.Minute) + err = exutil.WaitUntilPodIsGone(oc.KubeClient().CoreV1().Pods(oc.Namespace()), pods.Items[0].Name, 1*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) err = oc.Run("scale").Args("dc", "postgresql-slave", "--replicas=4").Execute() o.Expect(err).NotTo(o.HaveOccurred()) diff --git a/test/extended/image_ecosystem/s2i_perl.go b/test/extended/image_ecosystem/s2i_perl.go index 652814bd02fd..2fb41d67d5f4 100644 --- a/test/extended/image_ecosystem/s2i_perl.go +++ b/test/extended/image_ecosystem/s2i_perl.go @@ -7,8 +7,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" exutil "github.com/openshift/origin/test/extended/util" ) @@ -69,7 +69,7 @@ var _ = g.Describe("[image_ecosystem][perl][Slow] hot deploy for openshift perl RunInPodContainer(oc, dcLabelOne, modifyCommand) assertPageCountIs(3, dcLabelOne) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: dcLabelOne}) + pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: dcLabelOne.String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) diff --git a/test/extended/image_ecosystem/s2i_python.go b/test/extended/image_ecosystem/s2i_python.go index dcb49854e6bf..f10c6cfbbbb6 100644 --- a/test/extended/image_ecosystem/s2i_python.go +++ b/test/extended/image_ecosystem/s2i_python.go @@ -7,8 +7,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" exutil "github.com/openshift/origin/test/extended/util" ) @@ -73,7 +73,7 @@ var _ = g.Describe("[image_ecosystem][python][Slow] hot deploy for openshift pyt RunInPodContainer(oc, dcLabelOne, modifyCommand) assertPageCountIs(3, dcLabelOne) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: dcLabelOne}) + pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: dcLabelOne.String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) diff --git a/test/extended/image_ecosystem/s2i_ruby.go b/test/extended/image_ecosystem/s2i_ruby.go index 5b41d58ef22b..4eedb550c2e2 100644 --- a/test/extended/image_ecosystem/s2i_ruby.go +++ b/test/extended/image_ecosystem/s2i_ruby.go @@ -7,8 +7,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/labels" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" exutil "github.com/openshift/origin/test/extended/util" ) @@ -67,7 +67,7 @@ var _ = g.Describe("[image_ecosystem][ruby][Slow] hot deploy for openshift ruby g.By("testing application content source modification") assertPageContent("Welcome to your Rails application on OpenShift", dcLabelOne) - pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: dcLabelOne}) + pods, err := oc.KubeClient().Core().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: dcLabelOne.String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(pods.Items)).To(o.Equal(1)) diff --git a/test/extended/image_ecosystem/sample_repos.go b/test/extended/image_ecosystem/sample_repos.go index fadc1f11a344..648d01b86d83 100644 --- a/test/extended/image_ecosystem/sample_repos.go +++ b/test/extended/image_ecosystem/sample_repos.go @@ -32,7 +32,7 @@ func NewSampleRepoTest(c SampleRepoConfig) func() { g.JustBeforeEach(func() { g.By("Waiting for builder service account") - err := exutil.WaitForBuilderAccount(oc.KubeClient().Core().ServiceAccounts(oc.Namespace())) + err := exutil.WaitForBuilderAccount(oc.KubeClient().CoreV1().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) @@ -57,12 +57,12 @@ func NewSampleRepoTest(c SampleRepoConfig) func() { o.Expect(err).NotTo(o.HaveOccurred()) g.By("expecting the app deployment to be complete") - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), c.deploymentConfigName, oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), c.deploymentConfigName, oc) o.Expect(err).NotTo(o.HaveOccurred()) if len(c.dbDeploymentConfigName) > 0 { g.By("expecting the db deployment to be complete") - err = exutil.WaitForADeploymentToComplete(oc.KubeClient().Core().ReplicationControllers(oc.Namespace()), c.dbDeploymentConfigName, oc) + err = exutil.WaitForADeploymentToComplete(oc.KubeClient().CoreV1().ReplicationControllers(oc.Namespace()), c.dbDeploymentConfigName, oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("expecting the db service is available") diff --git a/test/extended/image_ecosystem/scl.go b/test/extended/image_ecosystem/scl.go index 1610611d1385..1e2094594e0b 100644 --- a/test/extended/image_ecosystem/scl.go +++ b/test/extended/image_ecosystem/scl.go @@ -7,7 +7,7 @@ import ( o "github.com/onsi/gomega" exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" ) func getPodNameForTest(image string, t tc) string { @@ -20,7 +20,7 @@ var _ = g.Describe("[image_ecosystem][Slow] openshift images should be SCL enabl g.JustBeforeEach(func() { g.By("waiting for builder service account") - err := exutil.WaitForBuilderAccount(oc.KubeClient().Core().ServiceAccounts(oc.Namespace())) + err := exutil.WaitForBuilderAccount(oc.KubeClient().CoreV1().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) @@ -29,7 +29,7 @@ var _ = g.Describe("[image_ecosystem][Slow] openshift images should be SCL enabl g.Describe("returning s2i usage when running the image", func() { g.It(fmt.Sprintf("%q should print the usage", t.DockerImageReference), func() { g.By(fmt.Sprintf("creating a sample pod for %q", t.DockerImageReference)) - pod := exutil.GetPodForContainer(kapi.Container{ + pod := exutil.GetPodForContainer(kapiv1.Container{ Name: "test", Image: t.DockerImageReference, }) @@ -40,7 +40,7 @@ var _ = g.Describe("[image_ecosystem][Slow] openshift images should be SCL enabl g.Describe("using the SCL in s2i images", func() { g.It(fmt.Sprintf("%q should be SCL enabled", t.DockerImageReference), func() { g.By(fmt.Sprintf("creating a sample pod for %q with /bin/bash -c command", t.DockerImageReference)) - pod := exutil.GetPodForContainer(kapi.Container{ + pod := exutil.GetPodForContainer(kapiv1.Container{ Image: t.DockerImageReference, Name: "test", Command: []string{"/bin/bash", "-c", t.Cmd}, @@ -49,12 +49,12 @@ var _ = g.Describe("[image_ecosystem][Slow] openshift images should be SCL enabl oc.KubeFramework().TestContainerOutput(getPodNameForTest(image, t), pod, 0, []string{t.Expected}) g.By(fmt.Sprintf("creating a sample pod for %q", t.DockerImageReference)) - pod = exutil.GetPodForContainer(kapi.Container{ + pod = exutil.GetPodForContainer(kapiv1.Container{ Image: t.DockerImageReference, Name: "test", Command: []string{"/usr/bin/sleep", "infinity"}, }) - _, err := oc.KubeClient().Core().Pods(oc.Namespace()).Create(pod) + _, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Create(pod) o.Expect(err).NotTo(o.HaveOccurred()) err = oc.KubeFramework().WaitForPodRunning(pod.Name) diff --git a/test/extended/imageapis/limitrange_admission.go b/test/extended/imageapis/limitrange_admission.go index 5eaf0b37c379..8e01ad52e55a 100644 --- a/test/extended/imageapis/limitrange_admission.go +++ b/test/extended/imageapis/limitrange_admission.go @@ -5,8 +5,9 @@ import ( "os" "strconv" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" @@ -148,7 +149,7 @@ var _ = g.Describe("[imageapis] openshift limit range admission", func() { o.Expect(err).NotTo(o.HaveOccurred()) g.By(fmt.Sprintf("trying to tag a docker image exceeding limit %v", limit)) - is, err := oc.Client().ImageStreams(oc.Namespace()).Get("stream") + is, err := oc.Client().ImageStreams(oc.Namespace()).Get("stream", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) is.Spec.Tags["foo"] = imageapi.TagReference{ Name: "foo", @@ -165,7 +166,7 @@ var _ = g.Describe("[imageapis] openshift limit range admission", func() { o.Expect(quotautil.IsErrorQuotaExceeded(err)).Should(o.Equal(true)) g.By("re-tagging the image under different tag") - is, err = oc.Client().ImageStreams(oc.Namespace()).Get("stream") + is, err = oc.Client().ImageStreams(oc.Namespace()).Get("stream", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) is.Spec.Tags["duplicate"] = imageapi.TagReference{ Name: "duplicate", @@ -254,7 +255,7 @@ func buildAndPushTestImagesTo(oc *exutil.CLI, isName string, tagPrefix string, n // createLimitRangeOfType creates a new limit range object with given limits for given limit type in current namespace func createLimitRangeOfType(oc *exutil.CLI, limitType kapi.LimitType, maxLimits kapi.ResourceList) (*kapi.LimitRange, error) { lr := &kapi.LimitRange{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: limitRangeName, }, Spec: kapi.LimitRangeSpec{ @@ -268,14 +269,14 @@ func createLimitRangeOfType(oc *exutil.CLI, limitType kapi.LimitType, maxLimits } g.By(fmt.Sprintf("creating limit range object %q with %s limited to: %v", limitRangeName, limitType, maxLimits)) - lr, err := oc.AdminKubeClient().Core().LimitRanges(oc.Namespace()).Create(lr) + lr, err := oc.InternalAdminKubeClient().Core().LimitRanges(oc.Namespace()).Create(lr) return lr, err } // bumpLimit changes the limit value for given resource for all the limit types of limit range object func bumpLimit(oc *exutil.CLI, resourceName kapi.ResourceName, limit string) (kapi.ResourceList, error) { g.By(fmt.Sprintf("bump a limit on resource %q to %s", resourceName, limit)) - lr, err := oc.AdminKubeClient().Core().LimitRanges(oc.Namespace()).Get(limitRangeName) + lr, err := oc.InternalAdminKubeClient().Core().LimitRanges(oc.Namespace()).Get(limitRangeName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -299,7 +300,7 @@ func bumpLimit(oc *exutil.CLI, resourceName kapi.ResourceName, limit string) (ka if !change { return res, nil } - _, err = oc.AdminKubeClient().Core().LimitRanges(oc.Namespace()).Update(lr) + _, err = oc.InternalAdminKubeClient().Core().LimitRanges(oc.Namespace()).Update(lr) return res, err } diff --git a/test/extended/imageapis/quota_admission.go b/test/extended/imageapis/quota_admission.go index a088c0d2dd19..7b8658136490 100644 --- a/test/extended/imageapis/quota_admission.go +++ b/test/extended/imageapis/quota_admission.go @@ -4,9 +4,10 @@ import ( "fmt" "time" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kutilerrors "k8s.io/apimachinery/pkg/util/errors" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - kutilerrors "k8s.io/kubernetes/pkg/util/errors" g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" @@ -99,7 +100,7 @@ var _ = g.Describe("[imageapis] openshift resource quota admission", func() { err = oc.Client().ImageStreams(oc.Namespace()).Delete("first") o.Expect(err).NotTo(o.HaveOccurred()) used, err = exutil.WaitForResourceQuotaSync( - oc.KubeClient().Core().ResourceQuotas(oc.Namespace()), + oc.InternalKubeClient().Core().ResourceQuotas(oc.Namespace()), quotaName, kapi.ResourceList{imageapi.ResourceImageStreams: resource.MustParse("1")}, true, @@ -121,7 +122,7 @@ var _ = g.Describe("[imageapis] openshift resource quota admission", func() { // a first usage refresh func createResourceQuota(oc *exutil.CLI, hard kapi.ResourceList) (*kapi.ResourceQuota, error) { rq := &kapi.ResourceQuota{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: quotaName, }, Spec: kapi.ResourceQuotaSpec{ @@ -130,7 +131,7 @@ func createResourceQuota(oc *exutil.CLI, hard kapi.ResourceList) (*kapi.Resource } g.By(fmt.Sprintf("creating resource quota with a limit %v", hard)) - rq, err := oc.AdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Create(rq) + rq, err := oc.InternalAdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Create(rq) if err != nil { return nil, err } @@ -167,12 +168,12 @@ func assertQuotasEqual(a, b kapi.ResourceList) error { // bumpQuota modifies hard spec of quota object with the given value. It returns modified hard spec. func bumpQuota(oc *exutil.CLI, resourceName kapi.ResourceName, value int64) (kapi.ResourceList, error) { g.By(fmt.Sprintf("bump the quota to %s=%d", resourceName, value)) - rq, err := oc.AdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Get(quotaName) + rq, err := oc.InternalAdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Get(quotaName, metav1.GetOptions{}) if err != nil { return nil, err } rq.Spec.Hard[resourceName] = *resource.NewQuantity(value, resource.DecimalSI) - _, err = oc.AdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Update(rq) + _, err = oc.InternalAdminKubeClient().Core().ResourceQuotas(oc.Namespace()).Update(rq) if err != nil { return nil, err } @@ -187,7 +188,7 @@ func bumpQuota(oc *exutil.CLI, resourceName kapi.ResourceName, value int64) (kap func waitForResourceQuotaSync(oc *exutil.CLI, name string, expectedResources kapi.ResourceList) (kapi.ResourceList, error) { g.By(fmt.Sprintf("waiting for resource quota %s to get updated", name)) used, err := exutil.WaitForResourceQuotaSync( - oc.KubeClient().Core().ResourceQuotas(oc.Namespace()), + oc.InternalKubeClient().Core().ResourceQuotas(oc.Namespace()), quotaName, expectedResources, false, @@ -203,7 +204,7 @@ func waitForResourceQuotaSync(oc *exutil.CLI, name string, expectedResources kap func waitForLimitSync(oc *exutil.CLI, hardLimit kapi.ResourceList) error { g.By(fmt.Sprintf("waiting for resource quota %s to get updated", quotaName)) return testutil.WaitForResourceQuotaLimitSync( - oc.KubeClient().Core().ResourceQuotas(oc.Namespace()), + oc.InternalKubeClient().Core().ResourceQuotas(oc.Namespace()), quotaName, hardLimit, waitTimeout) @@ -219,7 +220,7 @@ func deleteTestImagesAndStreams(oc *exutil.CLI) { oc.Namespace(), } { g.By(fmt.Sprintf("Deleting images and image streams in project %q", projectName)) - iss, err := oc.AdminClient().ImageStreams(projectName).List(kapi.ListOptions{}) + iss, err := oc.AdminClient().ImageStreams(projectName).List(metav1.ListOptions{}) if err != nil { continue } diff --git a/test/extended/images/helper.go b/test/extended/images/helper.go index ceed424e6411..046e23a3bbfb 100644 --- a/test/extended/images/helper.go +++ b/test/extended/images/helper.go @@ -14,6 +14,8 @@ import ( dockerclient "github.com/fsouza/go-dockerclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/image/api" exutil "github.com/openshift/origin/test/extended/util" @@ -71,7 +73,7 @@ func BuildAndPushImageOfSizeWithBuilder( istName += ":" + tag } - bc, err := oc.Client().BuildConfigs(namespace).Get(name) + bc, err := oc.Client().BuildConfigs(namespace).Get(name, metav1.GetOptions{}) if err == nil { if bc.Spec.CommonSpec.Output.To.Kind != "ImageStreamTag" { return fmt.Errorf("Unexpected kind of buildspec's output (%s != %s)", bc.Spec.CommonSpec.Output.To.Kind, "ImageStreamTag") @@ -240,7 +242,7 @@ func BuildAndPushImageOfSizeWithDocker( // GetDockerRegistryURL returns a cluster URL of internal docker registry if available. func GetDockerRegistryURL(oc *exutil.CLI) (string, error) { - svc, err := oc.AdminKubeClient().Core().Services("default").Get("docker-registry") + svc, err := oc.AdminKubeClient().Core().Services("default").Get("docker-registry", metav1.GetOptions{}) if err != nil { return "", err } diff --git a/test/extended/images/prune.go b/test/extended/images/prune.go index 9d5de5f276ce..a3f1415447a0 100644 --- a/test/extended/images/prune.go +++ b/test/extended/images/prune.go @@ -12,7 +12,7 @@ import ( "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" dockerregistryserver "github.com/openshift/origin/pkg/dockerregistry/server" exutil "github.com/openshift/origin/test/extended/util" @@ -118,10 +118,10 @@ func testPruneImages(oc *exutil.CLI, schemaVersion int) { o.Expect(pruneSize < keepSize).To(o.BeTrue()) g.By(fmt.Sprintf("ensure uploaded image is of schema %d", schemaVersion)) - imgPrune, err := oc.AsAdmin().Client().Images().Get(imgPruneName) + imgPrune, err := oc.AsAdmin().Client().Images().Get(imgPruneName, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(imgPrune.DockerImageManifestMediaType).To(o.Equal(mediaType)) - imgKeep, err := oc.AsAdmin().Client().Images().Get(imgKeepName) + imgKeep, err := oc.AsAdmin().Client().Images().Get(imgKeepName, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(imgKeep.DockerImageManifestMediaType).To(o.Equal(mediaType)) @@ -198,7 +198,7 @@ func tearDownPruneImagesTest(oc *exutil.CLI, cleanUp *cleanUpContainer) { func getRegistryStorageSize(oc *exutil.CLI) (int64, error) { ns := oc.Namespace() defer oc.SetNamespace(ns) - out, err := oc.SetNamespace(kapi.NamespaceDefault).AsAdmin().Run("rsh").Args("dc/docker-registry", "du", "--bytes", "--summarize", "/registry/docker/registry").Output() + out, err := oc.SetNamespace(metav1.NamespaceDefault).AsAdmin().Run("rsh").Args("dc/docker-registry", "du", "--bytes", "--summarize", "/registry/docker/registry").Output() if err != nil { return 0, err } @@ -218,7 +218,7 @@ func getRegistryStorageSize(oc *exutil.CLI) (int64, error) { func doesRegistryAcceptSchema2(oc *exutil.CLI) (bool, error) { ns := oc.Namespace() defer oc.SetNamespace(ns) - env, err := oc.SetNamespace(kapi.NamespaceDefault).AsAdmin().Run("env").Args("dc/docker-registry", "--list").Output() + env, err := oc.SetNamespace(metav1.NamespaceDefault).AsAdmin().Run("env").Args("dc/docker-registry", "--list").Output() if err != nil { return false, err } @@ -231,7 +231,7 @@ func doesRegistryAcceptSchema2(oc *exutil.CLI) (bool, error) { // and the function blocks until the registry is re-deployed and ready for new requests. func ensureRegistryAcceptsSchema2(oc *exutil.CLI, accept bool) error { ns := oc.Namespace() - oc = oc.SetNamespace(kapi.NamespaceDefault).AsAdmin() + oc = oc.SetNamespace(metav1.NamespaceDefault).AsAdmin() defer oc.SetNamespace(ns) env, err := oc.Run("env").Args("dc/docker-registry", "--list").Output() if err != nil { @@ -248,7 +248,7 @@ func ensureRegistryAcceptsSchema2(oc *exutil.CLI, accept bool) error { return nil } - dc, err := oc.Client().DeploymentConfigs(kapi.NamespaceDefault).Get("docker-registry") + dc, err := oc.Client().DeploymentConfigs(metav1.NamespaceDefault).Get("docker-registry", metav1.GetOptions{}) if err != nil { return err } diff --git a/test/extended/jobs/jobs.go b/test/extended/jobs/jobs.go index 2269d7a35607..39a666d4f94a 100644 --- a/test/extended/jobs/jobs.go +++ b/test/extended/jobs/jobs.go @@ -8,7 +8,7 @@ import ( o "github.com/onsi/gomega" exeutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/apis/batch" ) @@ -29,16 +29,16 @@ var _ = g.Describe("[job][Conformance] openshift can execute jobs", func() { o.Expect(err).NotTo(o.HaveOccurred()) g.By("waiting for a pod...") - podNames, err := exeutil.WaitForPods(oc.KubeClient().Core().Pods(oc.Namespace()), exeutil.ParseLabelsOrDie(labels), exeutil.CheckPodIsSucceededFn, 1, 3*time.Minute) + podNames, err := exeutil.WaitForPods(oc.KubeClient().CoreV1().Pods(oc.Namespace()), exeutil.ParseLabelsOrDie(labels), exeutil.CheckPodIsSucceededFn, 1, 3*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(podNames)).Should(o.Equal(1)) g.By("waiting for a job...") - err = exeutil.WaitForAJob(oc.KubeClient().Batch().Jobs(oc.Namespace()), name, 2*time.Minute) + err = exeutil.WaitForAJob(oc.KubeClient().BatchV1().Jobs(oc.Namespace()), name, 2*time.Minute) o.Expect(err).NotTo(o.HaveOccurred()) g.By("checking job status...") - jobs, err := oc.KubeClient().Batch().Jobs(oc.Namespace()).List(kapi.ListOptions{LabelSelector: exeutil.ParseLabelsOrDie(labels)}) + jobs, err := oc.KubeClient().BatchV1().Jobs(oc.Namespace()).List(metav1.ListOptions{LabelSelector: exeutil.ParseLabelsOrDie(labels).String()}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(jobs.Items)).Should(o.Equal(1)) diff --git a/test/extended/networking/multicast.go b/test/extended/networking/multicast.go index 8db861f092ad..1dc341b3a9e4 100644 --- a/test/extended/networking/multicast.go +++ b/test/extended/networking/multicast.go @@ -8,8 +8,8 @@ import ( testexutil "github.com/openshift/origin/test/extended/util" testutil "github.com/openshift/origin/test/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" e2e "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -40,10 +40,10 @@ var _ = Describe("[networking] multicast", func() { }) }) -func makeNamespaceMulticastEnabled(ns *api.Namespace) { +func makeNamespaceMulticastEnabled(ns *kapiv1.Namespace) { client, err := testutil.GetClusterAdminClient(testexutil.KubeConfigPath()) expectNoError(err) - netns, err := client.NetNamespaces().Get(ns.Name) + netns, err := client.NetNamespaces().Get(ns.Name, metav1.GetOptions{}) expectNoError(err) if netns.Annotations == nil { netns.Annotations = make(map[string]string, 1) @@ -97,7 +97,7 @@ func testMulticast(f *e2e.Framework, oc *testexutil.CLI) error { return err[i] } var zero int64 - defer f.ClientSet.Core().Pods(f.Namespace.Name).Delete(pod[i], &api.DeleteOptions{GracePeriodSeconds: &zero}) + defer f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod[i], &metav1.DeleteOptions{GracePeriodSeconds: &zero}) matchIP[i] = regexp.MustCompile(ip[i] + ".*multicast.*1/1/0%") ch[i] = make(chan struct{}) } @@ -128,15 +128,15 @@ func testMulticast(f *e2e.Framework, oc *testexutil.CLI) error { func launchTestMulticastPod(f *e2e.Framework, nodeName string, podName string) (string, error) { contName := fmt.Sprintf("%s-container", podName) - pod := &api.Pod{ - TypeMeta: unversioned.TypeMeta{ + pod := &kapiv1.Pod{ + TypeMeta: metav1.TypeMeta{ Kind: "Pod", }, - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, }, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: kapiv1.PodSpec{ + Containers: []kapiv1.Container{ { Name: contName, Image: "openshift/test-multicast", @@ -144,15 +144,15 @@ func launchTestMulticastPod(f *e2e.Framework, nodeName string, podName string) ( }, }, NodeName: nodeName, - RestartPolicy: api.RestartPolicyNever, + RestartPolicy: kapiv1.RestartPolicyNever, }, } - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) expectNoError(err) podIP := "" - err = waitForPodCondition(f.ClientSet, f.Namespace.Name, podName, "running", podStartTimeout, func(pod *api.Pod) (bool, error) { + err = waitForPodCondition(f.ClientSet, f.Namespace.Name, podName, "running", podStartTimeout, func(pod *kapiv1.Pod) (bool, error) { podIP = pod.Status.PodIP return podIP != "", nil }) diff --git a/test/extended/networking/networkpolicy.go b/test/extended/networking/networkpolicy.go index b5a52abfe5a2..673d8db1b09b 100644 --- a/test/extended/networking/networkpolicy.go +++ b/test/extended/networking/networkpolicy.go @@ -17,10 +17,10 @@ limitations under the License. package networking import ( - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/util/intstr" "k8s.io/kubernetes/test/e2e/framework" "fmt" @@ -56,13 +56,13 @@ var _ = Describe("NetworkPolicy", func() { podServer, service := createServerPodAndService(f, ns, "server", []int{80}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(podServer.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(podServer.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", podServer.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -90,13 +90,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, ns, "server", []int{80}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -107,12 +107,12 @@ var _ = Describe("NetworkPolicy", func() { By("Creating a network policy for the server which allows traffic from the pod 'client-a'.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-client-a-via-pod-selector", }, Spec: extensions.NetworkPolicySpec{ // Apply this policy to the Server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -120,7 +120,7 @@ var _ = Describe("NetworkPolicy", func() { // Allow traffic only from client-a Ingress: []extensions.NetworkPolicyIngressRule{{ From: []extensions.NetworkPolicyPeer{{ - PodSelector: &unversioned.LabelSelector{ + PodSelector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": "client-a", }, @@ -130,12 +130,12 @@ var _ = Describe("NetworkPolicy", func() { }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() @@ -153,13 +153,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, ns, "server", []int{80, 81}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -179,12 +179,12 @@ var _ = Describe("NetworkPolicy", func() { By("Creating a network policy for the Service which allows traffic only to one port.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-81", }, Spec: extensions.NetworkPolicySpec{ // Apply to server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -197,12 +197,12 @@ var _ = Describe("NetworkPolicy", func() { }}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() @@ -219,13 +219,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, ns, "server", []int{80, 81}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -239,12 +239,12 @@ var _ = Describe("NetworkPolicy", func() { By("Creating a network policy for the Service which allows traffic only to one port.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-81", }, Spec: extensions.NetworkPolicySpec{ // Apply to server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -257,12 +257,12 @@ var _ = Describe("NetworkPolicy", func() { }}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() @@ -279,13 +279,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, ns, "server", []int{80, 81}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -305,12 +305,12 @@ var _ = Describe("NetworkPolicy", func() { By("Creating a network policy for the Service which allows traffic only to one port.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-80", }, Spec: extensions.NetworkPolicySpec{ // Apply to server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -323,24 +323,24 @@ var _ = Describe("NetworkPolicy", func() { }}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() By("Creating a network policy for the Service which allows traffic only to another port.") policy2 := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-81", }, Spec: extensions.NetworkPolicySpec{ // Apply to server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -353,12 +353,12 @@ var _ = Describe("NetworkPolicy", func() { }}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy2) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy2) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy2.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy2.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy2.Name, err) } }() @@ -375,13 +375,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, ns, "server", []int{80, 81}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(ns.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(ns.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -401,23 +401,23 @@ var _ = Describe("NetworkPolicy", func() { By("Creating a network policy which allows all traffic.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-all", }, Spec: extensions.NetworkPolicySpec{ // Allow all traffic - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{}, }, Ingress: []extensions.NetworkPolicyIngressRule{{}}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(ns.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() @@ -443,13 +443,13 @@ var _ = Describe("NetworkPolicy", func() { serverPod, service := createServerPodAndService(f, nsA, "server", []int{80}) defer func() { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(nsA.Name).Delete(serverPod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(nsA.Name).Delete(serverPod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", serverPod.Name, err) } }() defer func() { By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(nsA.Name).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(nsA.Name).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } }() @@ -460,12 +460,12 @@ var _ = Describe("NetworkPolicy", func() { // Create Policy for that service that allows traffic only via namespace B By("Creating a network policy for the server which allows traffic from namespace-b.") policy := extensions.NetworkPolicy{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "allow-ns-b-via-namespace-selector", }, Spec: extensions.NetworkPolicySpec{ // Apply to server - PodSelector: unversioned.LabelSelector{ + PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": serverPod.Name, }, @@ -473,7 +473,7 @@ var _ = Describe("NetworkPolicy", func() { // Allow traffic only from NS-B Ingress: []extensions.NetworkPolicyIngressRule{{ From: []extensions.NetworkPolicyPeer{{ - NamespaceSelector: &unversioned.LabelSelector{ + NamespaceSelector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "ns-name": nsBName, }, @@ -482,12 +482,12 @@ var _ = Describe("NetworkPolicy", func() { }}, }, } - _, err = f.ClientSet.Extensions().NetworkPolicies(nsA.Name).Create(&policy) + _, err = f.InternalClientset.Extensions().NetworkPolicies(nsA.Name).Create(&policy) Expect(err).NotTo(HaveOccurred()) defer func() { By("Cleaning up the policy.") - if err = f.ClientSet.Extensions().NetworkPolicies(nsA.Name).Delete(policy.Name, nil); err != nil { + if err = f.InternalClientset.Extensions().NetworkPolicies(nsA.Name).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } }() @@ -498,18 +498,18 @@ var _ = Describe("NetworkPolicy", func() { }) }) -func testCanConnect(f *framework.Framework, ns *api.Namespace, podName string, service *api.Service, targetPort int) { +func testCanConnect(f *framework.Framework, ns *kapiv1.Namespace, podName string, service *kapiv1.Service, targetPort int) { By(fmt.Sprintf("Creating client pod %s that should successfully connect to %s.", podName, service.Name)) podClient := createNetworkClientPod(f, ns, podName, service.Spec.ClusterIP, targetPort) defer func() { By(fmt.Sprintf("Cleaning up the pod %s", podName)) - if err := f.ClientSet.Core().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", podClient.Name, err) } }() framework.Logf("Waiting for %s to complete.", podClient.Name) - err := framework.WaitForPodNoLongerRunningInNamespace(f.ClientSet, podClient.Name, ns.Name, "0") + err := framework.WaitForPodNoLongerRunningInNamespace(f.ClientSet, podClient.Name, ns.Name) Expect(err).NotTo(HaveOccurred(), "Pod did not finish as expected.") framework.Logf("Waiting for %s to complete.", podClient.Name) @@ -517,12 +517,12 @@ func testCanConnect(f *framework.Framework, ns *api.Namespace, podName string, s Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("checking %s could communicate with server.", podClient.Name)) } -func testCannotConnect(f *framework.Framework, ns *api.Namespace, podName string, service *api.Service, targetPort int) { +func testCannotConnect(f *framework.Framework, ns *kapiv1.Namespace, podName string, service *kapiv1.Service, targetPort int) { By(fmt.Sprintf("Creating client pod %s that should not be able to connect to %s.", podName, service.Name)) podClient := createNetworkClientPod(f, ns, podName, service.Spec.ClusterIP, targetPort) defer func() { By(fmt.Sprintf("Cleaning up the pod %s", podName)) - if err := f.ClientSet.Core().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", podClient.Name, err) } }() @@ -535,14 +535,14 @@ func testCannotConnect(f *framework.Framework, ns *api.Namespace, podName string // Create a server pod with a listening container for each port in ports[]. // Will also assign a pod label with key: "pod-name" and label set to the given podname for later use by the network // policy. -func createServerPodAndService(f *framework.Framework, namespace *api.Namespace, podName string, ports []int) (*api.Pod, *api.Service) { +func createServerPodAndService(f *framework.Framework, namespace *kapiv1.Namespace, podName string, ports []int) (*kapiv1.Pod, *kapiv1.Service) { // Because we have a variable amount of ports, we'll first loop through and generate our Containers for our pod, // and ServicePorts.for our Service. - containers := []api.Container{} - servicePorts := []api.ServicePort{} + containers := []kapiv1.Container{} + servicePorts := []kapiv1.ServicePort{} for _, port := range ports { // Build the containers for the server pod. - containers = append(containers, api.Container{ + containers = append(containers, kapiv1.Container{ Name: fmt.Sprintf("%s-container-%d", podName, port), Image: "gcr.io/google_containers/redis:e2e", Args: []string{ @@ -550,11 +550,11 @@ func createServerPodAndService(f *framework.Framework, namespace *api.Namespace, "-c", fmt.Sprintf("/bin/nc -kl %d", port), }, - Ports: []api.ContainerPort{{ContainerPort: int32(port)}}, + Ports: []kapiv1.ContainerPort{{ContainerPort: int32(port)}}, }) // Build the Service Ports for the service. - servicePorts = append(servicePorts, api.ServicePort{ + servicePorts = append(servicePorts, kapiv1.ServicePort{ Name: fmt.Sprintf("%s-%d", podName, port), Port: int32(port), TargetPort: intstr.FromInt(port), @@ -562,16 +562,16 @@ func createServerPodAndService(f *framework.Framework, namespace *api.Namespace, } By(fmt.Sprintf("Creating a server pod %s in namespace %s", podName, namespace.Name)) - pod, err := f.ClientSet.Core().Pods(namespace.Name).Create(&api.Pod{ - ObjectMeta: api.ObjectMeta{ + pod, err := f.ClientSet.CoreV1().Pods(namespace.Name).Create(&kapiv1.Pod{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{ "pod-name": podName, }, }, - Spec: api.PodSpec{ + Spec: kapiv1.PodSpec{ Containers: containers, - RestartPolicy: api.RestartPolicyNever, + RestartPolicy: kapiv1.RestartPolicyNever, }, }) Expect(err).NotTo(HaveOccurred()) @@ -579,11 +579,11 @@ func createServerPodAndService(f *framework.Framework, namespace *api.Namespace, svcName := fmt.Sprintf("svc-%s", podName) By(fmt.Sprintf("Creating a service %s for pod %s in namespace %s", svcName, podName, namespace.Name)) - svc, err := f.ClientSet.Core().Services(namespace.Name).Create(&api.Service{ - ObjectMeta: api.ObjectMeta{ + svc, err := f.ClientSet.CoreV1().Services(namespace.Name).Create(&kapiv1.Service{ + ObjectMeta: metav1.ObjectMeta{ Name: svcName, }, - Spec: api.ServiceSpec{ + Spec: kapiv1.ServiceSpec{ Ports: servicePorts, Selector: map[string]string{ "pod-name": podName, @@ -599,17 +599,17 @@ func createServerPodAndService(f *framework.Framework, namespace *api.Namespace, // Create a client pod which will attempt a netcat to the provided service, on the specified port. // This client will attempt a oneshot connection, then die, without restarting the pod. // Test can then be asserted based on whether the pod quit with an error or not. -func createNetworkClientPod(f *framework.Framework, namespace *api.Namespace, podName string, targetIP string, targetPort int) *api.Pod { - pod, err := f.ClientSet.Core().Pods(namespace.Name).Create(&api.Pod{ - ObjectMeta: api.ObjectMeta{ +func createNetworkClientPod(f *framework.Framework, namespace *kapiv1.Namespace, podName string, targetIP string, targetPort int) *kapiv1.Pod { + pod, err := f.ClientSet.CoreV1().Pods(namespace.Name).Create(&kapiv1.Pod{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{ "pod-name": podName, }, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyNever, - Containers: []api.Container{ + Spec: kapiv1.PodSpec{ + RestartPolicy: kapiv1.RestartPolicyNever, + Containers: []kapiv1.Container{ { Name: fmt.Sprintf("%s-container", podName), Image: "gcr.io/google_containers/redis:e2e", @@ -629,7 +629,7 @@ func createNetworkClientPod(f *framework.Framework, namespace *api.Namespace, po // Configure namespace network isolation by setting the network-policy annotation // on the namespace. -func setNamespaceIsolation(f *framework.Framework, namespace *api.Namespace, ingressIsolation string) { +func setNamespaceIsolation(f *framework.Framework, namespace *kapiv1.Namespace, ingressIsolation string) { var annotations = map[string]string{} if ingressIsolation != "" { By(fmt.Sprintf("Enabling isolation through namespace annotations on namespace %v", namespace.Name)) @@ -647,6 +647,6 @@ func setNamespaceIsolation(f *framework.Framework, namespace *api.Namespace, ing // requires less plumbing. namespace.ObjectMeta.Annotations = annotations namespace.ObjectMeta.ResourceVersion = "" - _, err := f.ClientSet.Core().Namespaces().Update(namespace) + _, err := f.ClientSet.CoreV1().Namespaces().Update(namespace) Expect(err).NotTo(HaveOccurred()) } diff --git a/test/extended/networking/ovs.go b/test/extended/networking/ovs.go new file mode 100644 index 000000000000..71f2869cc37a --- /dev/null +++ b/test/extended/networking/ovs.go @@ -0,0 +1,320 @@ +package networking + +import ( + "fmt" + "net" + "reflect" + "regexp" + "strings" + "time" + + testexutil "github.com/openshift/origin/test/extended/util" + testutil "github.com/openshift/origin/test/util" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + e2e "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +const ( + hostSubnetTimeout = 30 * time.Second +) + +var _ = Describe("[networking] OVS", func() { + Context("generic", func() { + f1 := e2e.NewDefaultFramework("net-ovs1") + oc := testexutil.NewCLI("get-flows", testexutil.KubeConfigPath()) + + It("should add and remove flows when pods are added and removed", func() { + nodes := e2e.GetReadySchedulableNodesOrDie(f1.ClientSet) + origFlows := getFlowsForAllNodes(oc, nodes.Items) + Expect(len(origFlows)).To(Equal(len(nodes.Items))) + for _, flows := range origFlows { + Expect(len(flows)).ToNot(Equal(0)) + } + + podName := "ovs-test-webserver" + deployNodeName := nodes.Items[0].Name + ipPort := e2e.LaunchWebserverPod(f1, podName, deployNodeName) + ip := strings.Split(ipPort, ":")[0] + + checkFlowsForAllNodes(oc, nodes.Items, func(nodeName string, newFlows []string) error { + if nodeName == deployNodeName { + return findFlowOrError("Should have flows referring to pod IP address", newFlows, ip) + } else { + return matchFlowsOrError("Flows on non-deployed-to nodes should be unchanged", newFlows, origFlows[nodeName]) + } + }) + + err := f1.ClientSet.Core().Pods(f1.Namespace.Name).Delete(podName, &metav1.DeleteOptions{}) + Expect(err).NotTo(HaveOccurred()) + + checkFlowsForNode(oc, deployNodeName, func(nodeName string, flows []string) error { + return matchFlowsOrError("Flows after deleting pod should be same as before creating it", flows, origFlows[nodeName]) + }) + }) + + It("should add and remove flows when nodes are added and removed", func() { + var err error + nodes := e2e.GetReadySchedulableNodesOrDie(f1.ClientSet) + origFlows := getFlowsForAllNodes(oc, nodes.Items) + + // The SDN/OVS code doesn't care that the node doesn't actually exist, + // but we try to pick an IP on our local subnet to avoid sending + // traffic into the real world. + highNodeIP := "" + for _, node := range nodes.Items { + if node.Status.Addresses[0].Address > highNodeIP { + highNodeIP = node.Status.Addresses[0].Address + } + } + Expect(highNodeIP).NotTo(Equal("")) + ip := net.ParseIP(highNodeIP) + Expect(ip).NotTo(BeNil()) + ip = ip.To4() + Expect(ip).NotTo(BeNil()) + Expect(ip[3]).NotTo(Equal(255)) + ip[3] += 1 + newNodeIP := ip.String() + + nodeName := "ovs-test-node" + node := &kapiv1.Node{ + TypeMeta: metav1.TypeMeta{ + Kind: "Node", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: nodeName, + }, + Spec: kapiv1.NodeSpec{ + Unschedulable: true, + }, + Status: kapiv1.NodeStatus{ + Addresses: []kapiv1.NodeAddress{ + { + Type: kapiv1.NodeInternalIP, + Address: newNodeIP, + }, + }, + }, + } + node, err = f1.ClientSet.CoreV1().Nodes().Create(node) + Expect(err).NotTo(HaveOccurred()) + defer f1.ClientSet.CoreV1().Nodes().Delete(node.Name, &metav1.DeleteOptions{}) + + osClient, err := testutil.GetClusterAdminClient(testexutil.KubeConfigPath()) + Expect(err).NotTo(HaveOccurred()) + + e2e.Logf("Waiting up to %v for HostSubnet to be created", hostSubnetTimeout) + for start := time.Now(); time.Since(start) < hostSubnetTimeout; time.Sleep(time.Second) { + _, err = osClient.HostSubnets().Get(node.Name, metav1.GetOptions{}) + if err == nil { + break + } + } + Expect(err).NotTo(HaveOccurred()) + + checkFlowsForAllNodes(oc, nodes.Items, func(nodeName string, newFlows []string) error { + return findFlowOrError("Should have flows referring to node IP address", newFlows, newNodeIP) + }) + + err = f1.ClientSet.Core().Nodes().Delete(node.Name, &metav1.DeleteOptions{}) + Expect(err).NotTo(HaveOccurred()) + e2e.Logf("Waiting up to %v for HostSubnet to be deleted", hostSubnetTimeout) + for start := time.Now(); time.Since(start) < hostSubnetTimeout; time.Sleep(time.Second) { + _, err = osClient.HostSubnets().Get(node.Name, metav1.GetOptions{}) + if err != nil { + break + } + } + Expect(err).NotTo(BeNil()) + + checkFlowsForAllNodes(oc, nodes.Items, func(nodeName string, flows []string) error { + return matchFlowsOrError("Flows after deleting node should be same as before creating it", flows, origFlows[nodeName]) + }) + }) + }) + + InMultiTenantContext(func() { + f1 := e2e.NewDefaultFramework("net-ovs1") + oc := testexutil.NewCLI("get-flows", testexutil.KubeConfigPath()) + + It("should add and remove flows when services are added and removed", func() { + nodes := e2e.GetReadySchedulableNodesOrDie(f1.ClientSet) + origFlows := getFlowsForAllNodes(oc, nodes.Items) + + serviceName := "ovs-test-service" + deployNodeName := nodes.Items[0].Name + ipPort := launchWebserverService(f1, serviceName, deployNodeName) + ip := strings.Split(ipPort, ":")[0] + + checkFlowsForAllNodes(oc, nodes.Items, func(nodeName string, newFlows []string) error { + return findFlowOrError("Should have flows referring to service IP address", newFlows, ip) + }) + + err := f1.ClientSet.Core().Pods(f1.Namespace.Name).Delete(serviceName, &metav1.DeleteOptions{}) + Expect(err).NotTo(HaveOccurred()) + err = f1.ClientSet.Core().Services(f1.Namespace.Name).Delete(serviceName, &metav1.DeleteOptions{}) + Expect(err).NotTo(HaveOccurred()) + + checkFlowsForAllNodes(oc, nodes.Items, func(nodeName string, flows []string) error { + return matchFlowsOrError("Flows after deleting service should be same as before creating it", flows, origFlows[nodeName]) + }) + }) + }) +}) + +type FlowError struct { + msg string + flows []string + expected []string +} + +func (err FlowError) Error() string { + return err.msg +} + +func matchFlowsOrError(msg string, flows, expected []string) error { + if reflect.DeepEqual(flows, expected) { + return nil + } else { + return FlowError{msg, flows, expected} + } +} + +func findFlowOrError(msg string, flows []string, ip string) error { + for _, flow := range flows { + if strings.Contains(flow, "="+ip+",") || strings.Contains(flow, "="+ip+" ") { + return nil + } + } + return FlowError{fmt.Sprintf("%s (%s)", msg, ip), flows, nil} +} + +func doGetFlowsForNode(oc *testexutil.CLI, nodeName string) ([]string, error) { + pod := &kapiv1.Pod{ + TypeMeta: metav1.TypeMeta{ + Kind: "Pod", + }, + ObjectMeta: metav1.ObjectMeta{ + GenerateName: "flow-check", + }, + Spec: kapiv1.PodSpec{ + Containers: []kapiv1.Container{ + { + Name: "flow-check", + Image: "openshift/openvswitch", + // kubernetes seems to get confused sometimes if the pod exits too quickly + Command: []string{"sh", "-c", "ovs-ofctl -O OpenFlow13 dump-flows br0 && sleep 1"}, + VolumeMounts: []kapiv1.VolumeMount{ + { + Name: "ovs-socket", + MountPath: "/var/run/openvswitch/br0.mgmt", + }, + }, + }, + }, + Volumes: []kapiv1.Volume{ + { + Name: "ovs-socket", + VolumeSource: kapiv1.VolumeSource{ + HostPath: &kapiv1.HostPathVolumeSource{ + Path: "/var/run/openvswitch/br0.mgmt", + }, + }, + }, + }, + NodeName: nodeName, + RestartPolicy: kapiv1.RestartPolicyNever, + // We don't actually need HostNetwork, we just set it so that deploying this pod won't cause any OVS flows to be added + HostNetwork: true, + }, + } + f := oc.KubeFramework() + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) + pod, err := podClient.Create(pod) + if err != nil { + return nil, err + } + defer podClient.Delete(pod.Name, &metav1.DeleteOptions{}) + err = waitForPodSuccessInNamespace(f.ClientSet, pod.Name, "flow-check", f.Namespace.Name) + if err != nil { + return nil, err + } + logs, err := oc.Run("logs").Args(pod.Name).Output() + if err != nil { + return nil, err + } + + // For ease of comparison, strip out the parts of the rules that change + flows := strings.Split(logs, "\n") + strip_re := regexp.MustCompile(`(duration|n_packets|n_bytes)=[^,]*, `) + for i := range flows { + flows[i] = strip_re.ReplaceAllLiteralString(flows[i], "") + } + return flows, nil +} + +func getFlowsForAllNodes(oc *testexutil.CLI, nodes []kapiv1.Node) map[string][]string { + var err error + flows := make(map[string][]string, len(nodes)) + for _, node := range nodes { + flows[node.Name], err = doGetFlowsForNode(oc, node.Name) + expectNoError(err) + } + return flows +} + +type CheckFlowFunc func(nodeName string, flows []string) error + +var checkFlowBackoff = utilwait.Backoff{ + Duration: time.Second, + Factor: 2, + Steps: 5, +} + +func checkFlowsForNode(oc *testexutil.CLI, nodeName string, checkFlow CheckFlowFunc) { + var lastCheckErr error + e2e.Logf("Checking OVS flows for node %q up to %d times", nodeName, checkFlowBackoff.Steps) + err := utilwait.ExponentialBackoff(checkFlowBackoff, func() (bool, error) { + flows, err := doGetFlowsForNode(oc, nodeName) + if err != nil { + return false, err + } + if lastCheckErr = checkFlow(nodeName, flows); lastCheckErr != nil { + e2e.Logf("Check failed (%v)", lastCheckErr) + return false, nil + } + return true, nil + }) + if err != nil && lastCheckErr != nil { + err = lastCheckErr + } + expectNoError(err) +} + +func checkFlowsForAllNodes(oc *testexutil.CLI, nodes []kapiv1.Node, checkFlow CheckFlowFunc) { + var lastCheckErr error + e2e.Logf("Checking OVS flows for all nodes up to %d times", checkFlowBackoff.Steps) + err := utilwait.ExponentialBackoff(checkFlowBackoff, func() (bool, error) { + lastCheckErr = nil + for _, node := range nodes { + flows, err := doGetFlowsForNode(oc, node.Name) + if err != nil { + return false, err + } + if lastCheckErr = checkFlow(node.Name, flows); lastCheckErr != nil { + e2e.Logf("Check failed for node %q (%v)", node.Name, lastCheckErr) + return false, nil + } + } + return true, nil + }) + if err != nil && lastCheckErr != nil { + err = lastCheckErr + } + expectNoError(err) +} diff --git a/test/extended/networking/util.go b/test/extended/networking/util.go index a43e464bb9fa..6f9c7a1653bf 100644 --- a/test/extended/networking/util.go +++ b/test/extended/networking/util.go @@ -8,9 +8,9 @@ import ( testexutil "github.com/openshift/origin/test/extended/util" testutil "github.com/openshift/origin/test/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" e2e "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -41,21 +41,21 @@ func expectNoError(err error, explain ...interface{}) { } // podReady returns whether pod has a condition of Ready with a status of true. -func podReady(pod *api.Pod) bool { +func podReady(pod *kapiv1.Pod) bool { for _, cond := range pod.Status.Conditions { - if cond.Type == api.PodReady && cond.Status == api.ConditionTrue { + if cond.Type == kapiv1.PodReady && cond.Status == kapiv1.ConditionTrue { return true } } return false } -type podCondition func(pod *api.Pod) (bool, error) +type podCondition func(pod *kapiv1.Pod) (bool, error) func waitForPodCondition(c kclientset.Interface, ns, podName, desc string, timeout time.Duration, condition podCondition) error { e2e.Logf("Waiting up to %[1]v for pod %-[2]*[3]s status to be %[4]s", timeout, podPrintWidth, podName, desc) for start := time.Now(); time.Since(start) < timeout; time.Sleep(poll) { - pod, err := c.Core().Pods(ns).Get(podName) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) if err != nil { // Aligning this text makes it much more readable e2e.Logf("Get pod %-[1]*[2]s in namespace '%[3]s' failed, ignoring for %[4]v. Error: %[5]v", @@ -75,9 +75,9 @@ func waitForPodCondition(c kclientset.Interface, ns, podName, desc string, timeo // waitForPodSuccessInNamespace returns nil if the pod reached state success, or an error if it reached failure or ran too long. func waitForPodSuccessInNamespace(c kclientset.Interface, podName string, contName string, namespace string) error { - return waitForPodCondition(c, namespace, podName, "success or failure", podStartTimeout, func(pod *api.Pod) (bool, error) { + return waitForPodCondition(c, namespace, podName, "success or failure", podStartTimeout, func(pod *kapiv1.Pod) (bool, error) { // Cannot use pod.Status.Phase == api.PodSucceeded/api.PodFailed due to #2632 - ci, ok := api.GetContainerStatus(pod.Status.ContainerStatuses, contName) + ci, ok := kapiv1.GetContainerStatus(pod.Status.ContainerStatuses, contName) if !ok { e2e.Logf("No Status.Info for container '%s' in pod '%s' yet", contName, podName) } else { @@ -97,23 +97,23 @@ func waitForPodSuccessInNamespace(c kclientset.Interface, podName string, contNa func launchWebserverService(f *e2e.Framework, serviceName string, nodeName string) (serviceAddr string) { e2e.LaunchWebserverPod(f, serviceName, nodeName) // FIXME: make e2e.LaunchWebserverPod() set the label when creating the pod - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) - pod, err := podClient.Get(serviceName) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) + pod, err := podClient.Get(serviceName, metav1.GetOptions{}) expectNoError(err) pod.ObjectMeta.Labels = make(map[string]string) pod.ObjectMeta.Labels["name"] = "web" podClient.Update(pod) servicePort := 8080 - service := &api.Service{ - ObjectMeta: api.ObjectMeta{ + service := &kapiv1.Service{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, }, - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - Ports: []api.ServicePort{ + Spec: kapiv1.ServiceSpec{ + Type: kapiv1.ServiceTypeClusterIP, + Ports: []kapiv1.ServicePort{ { - Protocol: api.ProtocolTCP, + Protocol: kapiv1.ProtocolTCP, Port: int32(servicePort), }, }, @@ -122,11 +122,11 @@ func launchWebserverService(f *e2e.Framework, serviceName string, nodeName strin }, }, } - serviceClient := f.ClientSet.Core().Services(f.Namespace.Name) + serviceClient := f.ClientSet.CoreV1().Services(f.Namespace.Name) _, err = serviceClient.Create(service) expectNoError(err) expectNoError(f.WaitForAnEndpoint(serviceName)) - createdService, err := serviceClient.Get(serviceName) + createdService, err := serviceClient.Get(serviceName, metav1.GetOptions{}) expectNoError(err) serviceAddr = fmt.Sprintf("%s:%d", createdService.Spec.ClusterIP, servicePort) e2e.Logf("Target service IP:port is %s", serviceAddr) @@ -135,15 +135,15 @@ func launchWebserverService(f *e2e.Framework, serviceName string, nodeName strin func checkConnectivityToHost(f *e2e.Framework, nodeName string, podName string, host string, timeout int) error { contName := fmt.Sprintf("%s-container", podName) - pod := &api.Pod{ - TypeMeta: unversioned.TypeMeta{ + pod := &kapiv1.Pod{ + TypeMeta: metav1.TypeMeta{ Kind: "Pod", }, - ObjectMeta: api.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: podName, }, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: kapiv1.PodSpec{ + Containers: []kapiv1.Container{ { Name: contName, Image: "gcr.io/google_containers/busybox", @@ -151,10 +151,10 @@ func checkConnectivityToHost(f *e2e.Framework, nodeName string, podName string, }, }, NodeName: nodeName, - RestartPolicy: api.RestartPolicyNever, + RestartPolicy: kapiv1.RestartPolicyNever, }, } - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) expectNoError(err) defer podClient.Delete(podName, nil) @@ -169,10 +169,10 @@ func pluginImplementsNetworkPolicy() bool { return os.Getenv("NETWORKING_E2E_NETWORKPOLICY") == "true" } -func makeNamespaceGlobal(ns *api.Namespace) { +func makeNamespaceGlobal(ns *kapiv1.Namespace) { client, err := testutil.GetClusterAdminClient(testexutil.KubeConfigPath()) expectNoError(err) - netns, err := client.NetNamespaces().Get(ns.Name) + netns, err := client.NetNamespaces().Get(ns.Name, metav1.GetOptions{}) expectNoError(err) netns.NetID = 0 _, err = client.NetNamespaces().Update(netns) @@ -181,7 +181,7 @@ func makeNamespaceGlobal(ns *api.Namespace) { func checkPodIsolation(f1, f2 *e2e.Framework, nodeType NodeType) error { nodes := e2e.GetReadySchedulableNodesOrDie(f1.ClientSet) - var serverNode, clientNode *api.Node + var serverNode, clientNode *kapiv1.Node serverNode = &nodes.Items[0] if nodeType == DIFFERENT_NODE { if len(nodes.Items) == 1 { @@ -193,7 +193,7 @@ func checkPodIsolation(f1, f2 *e2e.Framework, nodeType NodeType) error { } podName := "isolation-webserver" - defer f1.ClientSet.Core().Pods(f1.Namespace.Name).Delete(podName, nil) + defer f1.ClientSet.CoreV1().Pods(f1.Namespace.Name).Delete(podName, nil) ip := e2e.LaunchWebserverPod(f1, podName, serverNode.Name) return checkConnectivityToHost(f2, clientNode.Name, "isolation-wget", ip, 10) @@ -201,7 +201,7 @@ func checkPodIsolation(f1, f2 *e2e.Framework, nodeType NodeType) error { func checkServiceConnectivity(serverFramework, clientFramework *e2e.Framework, nodeType NodeType) error { nodes := e2e.GetReadySchedulableNodesOrDie(serverFramework.ClientSet) - var serverNode, clientNode *api.Node + var serverNode, clientNode *kapiv1.Node serverNode = &nodes.Items[0] if nodeType == DIFFERENT_NODE { if len(nodes.Items) == 1 { @@ -212,9 +212,9 @@ func checkServiceConnectivity(serverFramework, clientFramework *e2e.Framework, n clientNode = serverNode } - podName := api.SimpleNameGenerator.GenerateName("service-") - defer serverFramework.ClientSet.Core().Pods(serverFramework.Namespace.Name).Delete(podName, nil) - defer serverFramework.ClientSet.Core().Services(serverFramework.Namespace.Name).Delete(podName, nil) + podName := kapiv1.SimpleNameGenerator.GenerateName("service-") + defer serverFramework.ClientSet.CoreV1().Pods(serverFramework.Namespace.Name).Delete(podName, nil) + defer serverFramework.ClientSet.CoreV1().Services(serverFramework.Namespace.Name).Delete(podName, nil) ip := launchWebserverService(serverFramework, podName, serverNode.Name) return checkConnectivityToHost(clientFramework, clientNode.Name, "service-wget", ip, 10) diff --git a/test/extended/registry/registry.go b/test/extended/registry/registry.go index eb20ce56dbfa..ee11367f8a1c 100644 --- a/test/extended/registry/registry.go +++ b/test/extended/registry/registry.go @@ -9,8 +9,8 @@ import ( dockerClient "github.com/fsouza/go-dockerclient" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" regclient "github.com/openshift/origin/pkg/dockerregistry" imageapi "github.com/openshift/origin/pkg/image/api" @@ -54,7 +54,7 @@ var _ = g.Describe("[Conformance][registry][migration] manifest migration from e o.Expect(err).NotTo(o.HaveOccurred()) g.By("checking that the image converted...") - image, err := oc.AsAdmin().Client().Images().Get(imageDigest) + image, err := oc.AsAdmin().Client().Images().Get(imageDigest, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(image.DockerImageManifest)).Should(o.Equal(0)) imageMetadataNotEmpty(image) @@ -68,7 +68,7 @@ var _ = g.Describe("[Conformance][registry][migration] manifest migration from e o.Expect(len(manifest)).Should(o.BeNumerically(">", 0)) g.By("restoring manifest...") - image, err = oc.AsAdmin().Client().Images().Get(imageDigest) + image, err = oc.AsAdmin().Client().Images().Get(imageDigest, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) imageMetadataNotEmpty(image) @@ -79,7 +79,7 @@ var _ = g.Describe("[Conformance][registry][migration] manifest migration from e imageMetadataNotEmpty(newImage) g.By("checking that the manifest is present in the image...") - image, err = oc.AsAdmin().Client().Images().Get(imageDigest) + image, err = oc.AsAdmin().Client().Images().Get(imageDigest, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(image.DockerImageManifest)).Should(o.BeNumerically(">", 0)) o.Expect(image.DockerImageManifest).Should(o.Equal(string(manifest))) @@ -95,7 +95,7 @@ var _ = g.Describe("[Conformance][registry][migration] manifest migration from e o.Expect(err).NotTo(o.HaveOccurred()) g.By("checking that the manifest was removed from the image...") - image, err = oc.AsAdmin().Client().Images().Get(imageDigest) + image, err = oc.AsAdmin().Client().Images().Get(imageDigest, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(len(image.DockerImageManifest)).Should(o.Equal(0)) imageMetadataNotEmpty(image) @@ -131,7 +131,7 @@ func imageMetadataNotEmpty(image *imageapi.Image) { func waitForImageUpdate(oc *exutil.CLI, image *imageapi.Image) error { return wait.Poll(200*time.Millisecond, 2*time.Minute, func() (bool, error) { - newImage, err := oc.AsAdmin().Client().Images().Get(image.Name) + newImage, err := oc.AsAdmin().Client().Images().Get(image.Name, metav1.GetOptions{}) if err != nil { return false, err } @@ -144,7 +144,7 @@ func waitForImageUpdate(oc *exutil.CLI, image *imageapi.Image) error { // namespaces. It also deletes shared projects. func deleteTestImages(oc *exutil.CLI) { g.By(fmt.Sprintf("Deleting images and image streams in project %q", oc.Namespace())) - iss, err := oc.AdminClient().ImageStreams(oc.Namespace()).List(kapi.ListOptions{}) + iss, err := oc.AdminClient().ImageStreams(oc.Namespace()).List(metav1.ListOptions{}) if err != nil { return } diff --git a/test/extended/router/metrics.go b/test/extended/router/metrics.go index 3958ee724a11..9d9b8843b12a 100644 --- a/test/extended/router/metrics.go +++ b/test/extended/router/metrics.go @@ -12,9 +12,10 @@ import ( dto "github.com/prometheus/client_model/go" "github.com/prometheus/common/expfmt" + kapierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" - kapierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" e2e "k8s.io/kubernetes/test/e2e/framework" exutil "github.com/openshift/origin/test/extended/util" @@ -30,7 +31,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", ) g.BeforeEach(func() { - dc, err := oc.AdminClient().DeploymentConfigs("default").Get("router") + dc, err := oc.AdminClient().DeploymentConfigs("default").Get("router", metav1.GetOptions{}) if kapierrs.IsNotFound(err) { g.Skip("no router installed on the cluster") return @@ -42,7 +43,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", hasMetrics = len(findEnvVar(env, "ROUTER_METRICS_TYPE")) > 0 hasHealth = len(findEnvVar(env, "ROUTER_LISTEN_ADDR")) > 0 - epts, err := oc.AdminKubeClient().Endpoints("default").Get("router") + epts, err := oc.AdminKubeClient().CoreV1().Endpoints("default").Get("router", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) host = epts.Subsets[0].Addresses[0].IP @@ -55,7 +56,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", g.Skip("router does not have ROUTER_LISTEN_ADDR set") } execPodName = exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By("listening on the health port") err := expectURLStatusCodeExec(ns, execPodName, fmt.Sprintf("http://%s:1935/healthz", host), 200) @@ -72,7 +73,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", o.Expect(err).NotTo(o.HaveOccurred()) execPodName = exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By("preventing access without a username and password") err = expectURLStatusCodeExec(ns, execPodName, fmt.Sprintf("http://%s:1935/metrics", host), 403) @@ -109,7 +110,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", allEndpoints := sets.NewString() services := []string{"weightedendpoints1", "weightedendpoints2"} for _, name := range services { - epts, err := oc.AdminKubeClient().Endpoints(ns).Get(name) + epts, err := oc.AdminKubeClient().CoreV1().Endpoints(ns).Get(name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) for _, s := range epts.Subsets { for _, a := range s.Addresses { @@ -156,7 +157,7 @@ var _ = g.Describe("[Conformance][networking][router] openshift router metrics", g.Skip("router does not have ROUTER_LISTEN_ADDR set") } execPodName = exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By("preventing access without a username and password") err := expectURLStatusCodeExec(ns, execPodName, fmt.Sprintf("http://%s:1935/debug/pprof/heap", host), 403) diff --git a/test/extended/router/scoped.go b/test/extended/router/scoped.go index d42083d35129..315338ae47a0 100644 --- a/test/extended/router/scoped.go +++ b/test/extended/router/scoped.go @@ -11,8 +11,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" e2e "k8s.io/kubernetes/test/e2e/framework" exutil "github.com/openshift/origin/test/extended/util" @@ -48,14 +48,14 @@ var _ = g.Describe("[Conformance][networking][router] openshift routers", func() }() oc.SetOutputDir(exutil.TestContext.OutputDir) ns := oc.KubeFramework().Namespace.Name - execPodName := exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + execPodName := exutil.CreateExecPodOrFail(oc.AdminKubeClient().CoreV1(), ns, "execpod") + defer func() { oc.AdminKubeClient().CoreV1().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By(fmt.Sprintf("creating a scoped router from a config file %q", configPath)) var routerIP string err := wait.Poll(time.Second, changeTimeoutSeconds*time.Second, func() (bool, error) { - pod, err := oc.KubeFramework().ClientSet.Core().Pods(oc.KubeFramework().Namespace.Name).Get("scoped-router") + pod, err := oc.KubeFramework().ClientSet.CoreV1().Pods(oc.KubeFramework().Namespace.Name).Get("scoped-router", metav1.GetOptions{}) if err != nil { return false, err } @@ -98,14 +98,14 @@ var _ = g.Describe("[Conformance][networking][router] openshift routers", func() }() oc.SetOutputDir(exutil.TestContext.OutputDir) ns := oc.KubeFramework().Namespace.Name - execPodName := exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + execPodName := exutil.CreateExecPodOrFail(oc.AdminKubeClient().CoreV1(), ns, "execpod") + defer func() { oc.AdminKubeClient().CoreV1().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By(fmt.Sprintf("creating a scoped router from a config file %q", configPath)) var routerIP string err := wait.Poll(time.Second, changeTimeoutSeconds*time.Second, func() (bool, error) { - pod, err := oc.KubeFramework().ClientSet.Core().Pods(ns).Get("router-override") + pod, err := oc.KubeFramework().ClientSet.CoreV1().Pods(ns).Get("router-override", metav1.GetOptions{}) if err != nil { return false, err } diff --git a/test/extended/router/weighted.go b/test/extended/router/weighted.go index e8740f0b664e..953f5ab966d7 100644 --- a/test/extended/router/weighted.go +++ b/test/extended/router/weighted.go @@ -12,8 +12,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" e2e "k8s.io/kubernetes/test/e2e/framework" exutil "github.com/openshift/origin/test/extended/util" @@ -48,13 +48,13 @@ var _ = g.Describe("[Conformance][networking][router] weighted openshift router" oc.SetOutputDir(exutil.TestContext.OutputDir) ns := oc.KubeFramework().Namespace.Name execPodName := exutil.CreateExecPodOrFail(oc.AdminKubeClient().Core(), ns, "execpod") - defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, kapi.NewDeleteOptions(1)) }() + defer func() { oc.AdminKubeClient().Core().Pods(ns).Delete(execPodName, metav1.NewDeleteOptions(1)) }() g.By(fmt.Sprintf("creating a weighted router from a config file %q", configPath)) var routerIP string err := wait.Poll(time.Second, changeTimeoutSeconds*time.Second, func() (bool, error) { - pod, err := oc.KubeFramework().ClientSet.Core().Pods(oc.KubeFramework().Namespace.Name).Get("weighted-router") + pod, err := oc.KubeFramework().ClientSet.Core().Pods(oc.KubeFramework().Namespace.Name).Get("weighted-router", metav1.GetOptions{}) if err != nil { return false, err } diff --git a/test/extended/security/supplemental_groups.go b/test/extended/security/supplemental_groups.go index 80b292a6b8e6..b0601b7d32e5 100644 --- a/test/extended/security/supplemental_groups.go +++ b/test/extended/security/supplemental_groups.go @@ -8,7 +8,8 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" e2e "k8s.io/kubernetes/test/e2e/framework" testutil "github.com/openshift/origin/test/util" @@ -34,14 +35,14 @@ var _ = g.Describe("[security] supplemental groups", func() { // so that we can check for the exact values later and not rely on SCC allocation. g.By("creating a pod that requests supplemental groups") submittedPod := supGroupPod(fsGroup, supGroup) - _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(submittedPod) + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(submittedPod) o.Expect(err).NotTo(o.HaveOccurred()) - defer f.ClientSet.Core().Pods(f.Namespace.Name).Delete(submittedPod.Name, nil) + defer f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(submittedPod.Name, nil) // we should have been admitted with the groups that we requested but if for any // reason they are different we will fail. g.By("retrieving the pod and ensuring groups are set") - retrievedPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(submittedPod.Name) + retrievedPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(submittedPod.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(*retrievedPod.Spec.SecurityContext.FSGroup).To(o.Equal(*submittedPod.Spec.SecurityContext.FSGroup)) o.Expect(retrievedPod.Spec.SecurityContext.SupplementalGroups).To(o.Equal(submittedPod.Spec.SecurityContext.SupplementalGroups)) @@ -53,7 +54,7 @@ var _ = g.Describe("[security] supplemental groups", func() { // find the docker id of our running container. g.By("finding the docker container id on the pod") - retrievedPod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Get(submittedPod.Name) + retrievedPod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(submittedPod.Name, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) containerID, err := getContainerID(retrievedPod) o.Expect(err).NotTo(o.HaveOccurred()) @@ -80,7 +81,7 @@ var _ = g.Describe("[security] supplemental groups", func() { }) // getContainerID is a helper to parse the docker container id from a status. -func getContainerID(p *kapi.Pod) (string, error) { +func getContainerID(p *kapiv1.Pod) (string, error) { for _, status := range p.Status.ContainerStatuses { if len(status.ContainerID) > 0 { containerID := strings.Replace(status.ContainerID, "docker://", "", -1) @@ -91,17 +92,17 @@ func getContainerID(p *kapi.Pod) (string, error) { } // supGroupPod generates the pod requesting supplemental groups. -func supGroupPod(fsGroup int64, supGroup int64) *kapi.Pod { - return &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ +func supGroupPod(fsGroup int64, supGroup int64) *kapiv1.Pod { + return &kapiv1.Pod{ + ObjectMeta: metav1.ObjectMeta{ Name: "supplemental-groups", }, - Spec: kapi.PodSpec{ - SecurityContext: &kapi.PodSecurityContext{ + Spec: kapiv1.PodSpec{ + SecurityContext: &kapiv1.PodSecurityContext{ FSGroup: &fsGroup, SupplementalGroups: []int64{supGroup}, }, - Containers: []kapi.Container{ + Containers: []kapiv1.Container{ { Name: "supplemental-groups", Image: "openshift/origin-pod", diff --git a/test/extended/templates/helpers.go b/test/extended/templates/helpers.go index f209502732c1..4db57536bde2 100644 --- a/test/extended/templates/helpers.go +++ b/test/extended/templates/helpers.go @@ -9,6 +9,7 @@ import ( authorizationapi "github.com/openshift/origin/pkg/authorization/api" userapi "github.com/openshift/origin/pkg/user/api" exutil "github.com/openshift/origin/test/extended/util" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" ) @@ -16,7 +17,7 @@ func createUser(cli *exutil.CLI, name, role string) *userapi.User { name = cli.Namespace() + "-" + name user, err := cli.AdminClient().Users().Create(&userapi.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, }) @@ -24,7 +25,7 @@ func createUser(cli *exutil.CLI, name, role string) *userapi.User { if role != "" { _, err = cli.AdminClient().RoleBindings(cli.Namespace()).Create(&authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("%s-%s-binding", name, role), }, RoleRef: kapi.ObjectReference{ diff --git a/test/extended/templates/templateinstance_impersonation.go b/test/extended/templates/templateinstance_impersonation.go index ec7bf758dca9..3cf8bef47aef 100644 --- a/test/extended/templates/templateinstance_impersonation.go +++ b/test/extended/templates/templateinstance_impersonation.go @@ -4,14 +4,16 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + kapi "k8s.io/kubernetes/pkg/api" + authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" templateapi "github.com/openshift/origin/pkg/template/api" userapi "github.com/openshift/origin/pkg/user/api" exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" ) // 1. Check that users can't create or update templateinstances unless they are, @@ -52,12 +54,12 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { viewuser = createUser(cli, "viewuser", bootstrappolicy.ViewRoleName) dummytemplateinstance = &templateapi.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Spec: templateapi.TemplateInstanceSpec{ Template: templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "template", Namespace: "dummy", }, @@ -118,7 +120,7 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { // additional plumbing to enable impersonateuser to impersonate edituser1 clusterrole, err = cli.AdminClient().ClusterRoles().Create(&authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: cli.Namespace() + "-impersonate", }, Rules: []authorizationapi.PolicyRule{ @@ -133,7 +135,7 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { o.Expect(err).NotTo(o.HaveOccurred()) clusterrolebinding, err = cli.AdminClient().ClusterRoleBindings().Create(&authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: cli.Namespace() + "-impersonate", }, RoleRef: kapi.ObjectReference{ @@ -170,7 +172,7 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { templateinstancecopy, err := kapi.Scheme.DeepCopy(dummytemplateinstance) o.Expect(err).NotTo(o.HaveOccurred()) - templateinstance, err := cli.TemplateClient().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) + templateinstance, err := cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) if !test.expectCreateUpdateSuccess { o.Expect(err).To(o.HaveOccurred()) @@ -178,7 +180,7 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { } else { o.Expect(err).NotTo(o.HaveOccurred()) - err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) + err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) o.Expect(err).NotTo(o.HaveOccurred()) } } @@ -192,10 +194,10 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { templateinstancecopy, err := kapi.Scheme.DeepCopy(dummytemplateinstance) o.Expect(err).NotTo(o.HaveOccurred()) - templateinstance, err := cli.AdminTemplateClient().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) + templateinstance, err := cli.AdminTemplateClient().Template().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) o.Expect(err).NotTo(o.HaveOccurred()) - newtemplateinstance, err := cli.TemplateClient().TemplateInstances(cli.Namespace()).Update(templateinstance) + newtemplateinstance, err := cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Update(templateinstance) if !test.expectCreateUpdateSuccess { o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsInvalid(err) || kerrors.IsForbidden(err)).To(o.BeTrue()) @@ -207,10 +209,10 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { // ensure spec (particularly including spec.requester.username) is // immutable templateinstance.Spec.Requester.Username = edituser2.Name - _, err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Update(templateinstance) + _, err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Update(templateinstance) o.Expect(err).To(o.HaveOccurred()) - err = cli.AdminTemplateClient().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) + err = cli.AdminTemplateClient().Template().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) o.Expect(err).NotTo(o.HaveOccurred()) } }) @@ -222,17 +224,17 @@ var _ = g.Describe("[templates] templateinstance impersonation tests", func() { templateinstancecopy, err := kapi.Scheme.DeepCopy(dummytemplateinstance) o.Expect(err).NotTo(o.HaveOccurred()) - templateinstance, err := cli.AdminTemplateClient().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) + templateinstance, err := cli.AdminTemplateClient().Template().TemplateInstances(cli.Namespace()).Create(templateinstancecopy.(*templateapi.TemplateInstance)) o.Expect(err).NotTo(o.HaveOccurred()) - err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) + err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) if test.expectDeleteSuccess { o.Expect(err).NotTo(o.HaveOccurred()) } else { o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsForbidden(err)).To(o.BeTrue()) - err = cli.AdminTemplateClient().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) + err = cli.AdminTemplateClient().Template().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) o.Expect(err).NotTo(o.HaveOccurred()) } } diff --git a/test/extended/templates/templateinstance_security.go b/test/extended/templates/templateinstance_security.go index 8638cf2e8979..6a31b8527e51 100644 --- a/test/extended/templates/templateinstance_security.go +++ b/test/extended/templates/templateinstance_security.go @@ -6,16 +6,19 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + kapi "k8s.io/kubernetes/pkg/api" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + "github.com/openshift/origin/pkg/api/latest" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" templateapi "github.com/openshift/origin/pkg/template/api" userapi "github.com/openshift/origin/pkg/user/api" exutil "github.com/openshift/origin/test/extended/util" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/wait" ) // Check that objects created through the TemplateInstance mechanism are done @@ -29,7 +32,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { adminuser, edituser *userapi.User dummyservice = &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "service", Namespace: "${NAMESPACE}", }, @@ -43,7 +46,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { } dummyrolebinding = &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "rolebinding", Namespace: "${NAMESPACE}", }, @@ -79,7 +82,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { objects: []runtime.Object{dummyservice}, expectCondition: templateapi.TemplateInstanceReady, checkOK: func(namespace string) bool { - _, err := cli.AdminKubeClient().Services(namespace).Get(dummyservice.Name) + _, err := cli.AdminKubeClient().CoreV1().Services(namespace).Get(dummyservice.Name, metav1.GetOptions{}) return err == nil }, }, @@ -90,7 +93,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { objects: []runtime.Object{dummyservice}, expectCondition: templateapi.TemplateInstanceInstantiateFailure, checkOK: func(namespace string) bool { - _, err := cli.AdminKubeClient().Services(namespace).Get(dummyservice.Name) + _, err := cli.AdminKubeClient().CoreV1().Services(namespace).Get(dummyservice.Name, metav1.GetOptions{}) return err != nil && kerrors.IsNotFound(err) }, }, @@ -101,7 +104,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { objects: []runtime.Object{dummyrolebinding}, expectCondition: templateapi.TemplateInstanceInstantiateFailure, checkOK: func(namespace string) bool { - _, err := cli.AdminClient().RoleBindings(namespace).Get(dummyrolebinding.Name) + _, err := cli.AdminClient().RoleBindings(namespace).Get(dummyrolebinding.Name, metav1.GetOptions{}) return err != nil && kerrors.IsNotFound(err) }, }, @@ -112,7 +115,7 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { objects: []runtime.Object{dummyrolebinding}, expectCondition: templateapi.TemplateInstanceReady, checkOK: func(namespace string) bool { - _, err := cli.AdminClient().RoleBindings(namespace).Get(dummyrolebinding.Name) + _, err := cli.AdminClient().RoleBindings(namespace).Get(dummyrolebinding.Name, metav1.GetOptions{}) return err == nil }, }, @@ -122,8 +125,8 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { g.By(test.by) cli.ChangeUser(test.user.Name) - secret, err := cli.KubeClient().Secrets(cli.Namespace()).Create(&kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + secret, err := cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Create(&kapiv1.Secret{ + ObjectMeta: metav1.ObjectMeta{ Name: "secret", }, Data: map[string][]byte{ @@ -133,12 +136,12 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { o.Expect(err).NotTo(o.HaveOccurred()) templateinstance := &templateapi.TemplateInstance{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "templateinstance", }, Spec: templateapi.TemplateInstanceSpec{ Template: templateapi.Template{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "template", Namespace: cli.Namespace(), }, @@ -158,11 +161,11 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { err = templateapi.AddObjectsToTemplate(&templateinstance.Spec.Template, test.objects, latest.Versions...) o.Expect(err).NotTo(o.HaveOccurred()) - templateinstance, err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Create(templateinstance) + templateinstance, err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Create(templateinstance) o.Expect(err).NotTo(o.HaveOccurred()) err = wait.Poll(100*time.Millisecond, 1*time.Minute, func() (bool, error) { - templateinstance, err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Get(templateinstance.Name) + templateinstance, err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Get(templateinstance.Name, metav1.GetOptions{}) if err != nil { return false, err } @@ -175,9 +178,9 @@ var _ = g.Describe("[templates] templateinstance security tests", func() { o.Expect(cond.Type).To(o.Equal(test.expectCondition)) o.Expect(test.checkOK(test.namespace)).To(o.BeTrue()) - err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) + err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Delete(templateinstance.Name, nil) o.Expect(err).NotTo(o.HaveOccurred()) - err = cli.KubeClient().Secrets(cli.Namespace()).Delete(secret.Name, nil) + err = cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Delete(secret.Name, nil) o.Expect(err).NotTo(o.HaveOccurred()) } }) diff --git a/test/extended/templates/templateservicebroker_e2e.go b/test/extended/templates/templateservicebroker_e2e.go index 8b08dc3473f7..fbe0c0633268 100644 --- a/test/extended/templates/templateservicebroker_e2e.go +++ b/test/extended/templates/templateservicebroker_e2e.go @@ -7,6 +7,12 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "github.com/pborman/uuid" + "golang.org/x/net/context" + + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -16,10 +22,6 @@ import ( templateapiv1 "github.com/openshift/origin/pkg/template/api/v1" exutil "github.com/openshift/origin/test/extended/util" testutil "github.com/openshift/origin/test/util" - "github.com/pborman/uuid" - "golang.org/x/net/context" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { @@ -39,11 +41,11 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { g.BeforeEach(func() { var err error - template, err = cli.Client().Templates("openshift").Get("cakephp-mysql-example") + template, err = cli.Client().Templates("openshift").Get("cakephp-mysql-example", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) clusterrolebinding, err = cli.AdminClient().ClusterRoleBindings().Create(&authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: cli.Namespace() + "templateservicebroker-client-binding", }, RoleRef: kapi.ObjectReference{ @@ -68,7 +70,7 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { err := cli.AdminClient().ClusterRoleBindings().Delete(clusterrolebinding.Name) o.Expect(err).NotTo(o.HaveOccurred()) - cli.AdminTemplateClient().BrokerTemplateInstances().Delete(instanceID, nil) + cli.AdminTemplateClient().Template().BrokerTemplateInstances().Delete(instanceID, nil) }) catalog := func() { @@ -99,11 +101,11 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { }) o.Expect(err).NotTo(o.HaveOccurred()) - brokerTemplateInstance, err := cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) - templateInstance, err := cli.TemplateClient().TemplateInstances(cli.Namespace()).Get(instanceID) + templateInstance, err := cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) - secret, err := cli.KubeClient().Secrets(cli.Namespace()).Get(instanceID) + secret, err := cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec).To(o.Equal(templateapi.BrokerTemplateInstanceSpec{ @@ -140,11 +142,11 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { "DATABASE_USER": []byte("test"), })) - examplesecret, err := cli.KubeClient().Secrets(cli.Namespace()).Get("cakephp-mysql-example") + examplesecret, err := cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Get("cakephp-mysql-example", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(examplesecret.Labels[templateapi.TemplateInstanceLabel]).To(o.Equal(instanceID)) - o.Expect(examplesecret.OwnerReferences).To(o.ContainElement(kapi.OwnerReference{ + o.Expect(examplesecret.OwnerReferences).To(o.ContainElement(metav1.OwnerReference{ APIVersion: templateapiv1.SchemeGroupVersion.String(), Kind: "TemplateInstance", Name: templateInstance.Name, @@ -165,13 +167,13 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { }) o.Expect(err).NotTo(o.HaveOccurred()) - brokerTemplateInstance, err := cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.Equal([]string{bindingID})) services := bind.Credentials["services"].(map[string]interface{}) - service, err := cli.KubeClient().Services(cli.Namespace()).Get("mysql") + service, err := cli.KubeClient().CoreV1().Services(cli.Namespace()).Get("mysql", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(services["MYSQL_SERVICE_HOST"]).To(o.Equal(service.Spec.ClusterIP)) o.Expect(services["MYSQL_SERVICE_PORT"]).To(o.Equal(strconv.Itoa(int(service.Spec.Ports[0].Port)))) @@ -182,7 +184,7 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { err := brokercli.Unbind(context.Background(), instanceID, bindingID) o.Expect(err).NotTo(o.HaveOccurred()) - brokerTemplateInstance, err := cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.HaveLen(0)) } @@ -192,19 +194,19 @@ var _ = g.Describe("[templates] templateservicebroker end-to-end test", func() { err := brokercli.Deprovision(context.Background(), instanceID) o.Expect(err).NotTo(o.HaveOccurred()) - _, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + _, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) - _, err = cli.TemplateClient().TemplateInstances(cli.Namespace()).Get(instanceID) + _, err = cli.TemplateClient().Template().TemplateInstances(cli.Namespace()).Get(instanceID, metav1.GetOptions{}) o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) - _, err = cli.KubeClient().Secrets(cli.Namespace()).Get(instanceID) + _, err = cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Get(instanceID, metav1.GetOptions{}) o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) - _, err = cli.KubeClient().Secrets(cli.Namespace()).Get("examplesecret") + _, err = cli.KubeClient().CoreV1().Secrets(cli.Namespace()).Get("examplesecret", metav1.GetOptions{}) // TODO: uncomment when GC is enabled // o.Expect(err).To(o.HaveOccurred()) // o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) diff --git a/test/extended/templates/templateservicebroker_security.go b/test/extended/templates/templateservicebroker_security.go index 6671d9afea3a..de8620f5a623 100644 --- a/test/extended/templates/templateservicebroker_security.go +++ b/test/extended/templates/templateservicebroker_security.go @@ -6,6 +6,12 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "github.com/pborman/uuid" + "golang.org/x/net/context" + + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kapi "k8s.io/kubernetes/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" @@ -15,10 +21,6 @@ import ( userapi "github.com/openshift/origin/pkg/user/api" exutil "github.com/openshift/origin/test/extended/util" testutil "github.com/openshift/origin/test/util" - "github.com/pborman/uuid" - "golang.org/x/net/context" - kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" ) var _ = g.Describe("[templates] templateservicebroker security test", func() { @@ -41,11 +43,11 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { g.BeforeEach(func() { var err error - template, err = cli.Client().Templates("openshift").Get("cakephp-mysql-example") + template, err = cli.Client().Templates("openshift").Get("cakephp-mysql-example", metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) clusterrolebinding, err = cli.AdminClient().ClusterRoleBindings().Create(&authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: cli.Namespace() + "templateservicebroker-client-binding", }, RoleRef: kapi.ObjectReference{ @@ -78,7 +80,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { err := cli.AdminClient().ClusterRoleBindings().Delete(clusterrolebinding.Name) o.Expect(err).NotTo(o.HaveOccurred()) - cli.AdminTemplateClient().BrokerTemplateInstances().Delete(instanceID, nil) + cli.AdminTemplateClient().Template().BrokerTemplateInstances().Delete(instanceID, nil) }) catalog := func() { @@ -131,7 +133,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { o.Expect(err.(*client.ServerError).StatusCode).To(o.Equal(http.StatusForbidden)) g.By("having no permissions to the namespace, no BrokerTemplateInstance should be created") - _, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + _, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) @@ -142,7 +144,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { o.Expect(err.(*client.ServerError).StatusCode).To(o.Equal(http.StatusForbidden)) g.By("having view permissions to the namespace, no BrokerTemplateInstance should be created") - _, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + _, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).To(o.HaveOccurred()) o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue()) @@ -150,7 +152,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { err = provision(edituser.Name) o.Expect(err).NotTo(o.HaveOccurred()) - brokerTemplateInstance, err := cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err := cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.HaveLen(0)) @@ -161,7 +163,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { o.Expect(err.(*client.ServerError).StatusCode).To(o.Equal(http.StatusForbidden)) g.By("having no permissions to the namespace, the BrokerTemplateInstance should be unchanged") - brokerTemplateInstance, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.HaveLen(0)) @@ -172,7 +174,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { o.Expect(err.(*client.ServerError).StatusCode).To(o.Equal(http.StatusForbidden)) g.By("having view permissions to the namespace, the BrokerTemplateInstance should be unchanged") - brokerTemplateInstance, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.HaveLen(0)) @@ -180,7 +182,7 @@ var _ = g.Describe("[templates] templateservicebroker security test", func() { err = bind(edituser.Name) o.Expect(err).NotTo(o.HaveOccurred()) - brokerTemplateInstance, err = cli.AdminTemplateClient().BrokerTemplateInstances().Get(instanceID) + brokerTemplateInstance, err = cli.AdminTemplateClient().Template().BrokerTemplateInstances().Get(instanceID, metav1.GetOptions{}) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(brokerTemplateInstance.Spec.BindingIDs).To(o.Equal([]string{bindingID})) }) diff --git a/test/extended/util/cli.go b/test/extended/util/cli.go index 5bcad20a8a02..f20b3029e178 100644 --- a/test/extended/util/cli.go +++ b/test/extended/util/cli.go @@ -14,12 +14,15 @@ import ( g "github.com/onsi/ginkgo" "github.com/spf13/cobra" - kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" + clientcmd "k8s.io/client-go/tools/clientcmd" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" + kinternalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/retry" - clientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/util/wait" e2e "k8s.io/kubernetes/test/e2e/framework" _ "github.com/openshift/origin/pkg/api/install" @@ -58,7 +61,7 @@ type CLI struct { func NewCLI(project, adminConfigPath string) *CLI { // Avoid every caller needing to provide a unique project name // SetupProject already treats this as a baseName - uniqueProject := kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", project)) + uniqueProject := names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", project)) client := &CLI{} client.kubeFramework = e2e.NewDefaultFramework(uniqueProject) @@ -124,8 +127,8 @@ func (c *CLI) ChangeUser(name string) *CLI { // SetNamespace sets a new namespace func (c *CLI) SetNamespace(ns string) *CLI { - c.kubeFramework.Namespace = &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + c.kubeFramework.Namespace = &kapiv1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ Name: ns, }, } @@ -147,21 +150,21 @@ func (c *CLI) SetOutputDir(dir string) *CLI { // SetupProject creates a new project and assign a random user to the project. // All resources will be then created within this project and Kubernetes E2E // suite will destroy the project after test case finish. -func (c *CLI) SetupProject(name string, kubeClient kclientset.Interface, _ map[string]string) (*kapi.Namespace, error) { - newNamespace := kapi.SimpleNameGenerator.GenerateName(fmt.Sprintf("extended-test-%s-", name)) +func (c *CLI) SetupProject(name string, kubeClient kclientset.Interface, _ map[string]string) (*kapiv1.Namespace, error) { + newNamespace := names.SimpleNameGenerator.GenerateName(fmt.Sprintf("extended-test-%s-", name)) c.SetNamespace(newNamespace).ChangeUser(fmt.Sprintf("%s-user", c.Namespace())) e2e.Logf("The user is now %q", c.Username()) e2e.Logf("Creating project %q", c.Namespace()) _, err := c.Client().ProjectRequests().Create(&projectapi.ProjectRequest{ - ObjectMeta: kapi.ObjectMeta{Name: c.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: c.Namespace()}, }) if err != nil { e2e.Logf("Failed to create a project and namespace %q: %v", c.Namespace(), err) return nil, err } if err := wait.ExponentialBackoff(retry.DefaultBackoff, func() (bool, error) { - if _, err := c.KubeClient().Core().Pods(c.Namespace()).List(kapi.ListOptions{}); err != nil { + if _, err := c.KubeClient().Core().Pods(c.Namespace()).List(metav1.ListOptions{}); err != nil { if apierrs.IsForbidden(err) { e2e.Logf("Waiting for user to have access to the namespace") return false, nil @@ -171,7 +174,7 @@ func (c *CLI) SetupProject(name string, kubeClient kclientset.Interface, _ map[s }); err != nil { return nil, err } - return &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: c.Namespace()}}, err + return &kapiv1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: c.Namespace()}}, err } // Verbose turns on printing verbose messages when executing OpenShift commands @@ -203,8 +206,8 @@ func (c *CLI) AdminClient() *client.Client { // Client provides an OpenShift client for the current user. If the user is not // set, then it provides client for the cluster admin user -func (c *CLI) TemplateClient() *templateclientset.Clientset { - _, clientConfig, err := configapi.GetKubeClient(c.configPath, nil) +func (c *CLI) TemplateClient() templateclientset.Interface { + _, clientConfig, err := configapi.GetInternalKubeClient(c.configPath, nil) client, err := templateclientset.NewForConfig(clientConfig) if err != nil { FatalErr(err) @@ -213,8 +216,8 @@ func (c *CLI) TemplateClient() *templateclientset.Clientset { } // AdminClient provides an OpenShift client for the cluster admin user. -func (c *CLI) AdminTemplateClient() *templateclientset.Clientset { - _, clientConfig, err := configapi.GetKubeClient(c.adminConfigPath, nil) +func (c *CLI) AdminTemplateClient() templateclientset.Interface { + _, clientConfig, err := configapi.GetInternalKubeClient(c.adminConfigPath, nil) client, err := templateclientset.NewForConfig(clientConfig) if err != nil { FatalErr(err) @@ -223,8 +226,26 @@ func (c *CLI) AdminTemplateClient() *templateclientset.Clientset { } // KubeClient provides a Kubernetes client for the current namespace -func (c *CLI) KubeClient() *kclientset.Clientset { - kubeClient, _, err := configapi.GetKubeClient(c.configPath, nil) +func (c *CLI) KubeClient() kclientset.Interface { + kubeClient, _, err := configapi.GetExternalKubeClient(c.configPath, nil) + if err != nil { + FatalErr(err) + } + return kubeClient +} + +// KubeClient provides a Kubernetes client for the current namespace +func (c *CLI) InternalKubeClient() kinternalclientset.Interface { + kubeClient, _, err := configapi.GetInternalKubeClient(c.configPath, nil) + if err != nil { + FatalErr(err) + } + return kubeClient +} + +// AdminKubeClient provides a Kubernetes client for the cluster admin user. +func (c *CLI) AdminKubeClient() kclientset.Interface { + kubeClient, _, err := configapi.GetExternalKubeClient(c.adminConfigPath, nil) if err != nil { FatalErr(err) } @@ -232,8 +253,8 @@ func (c *CLI) KubeClient() *kclientset.Clientset { } // AdminKubeClient provides a Kubernetes client for the cluster admin user. -func (c *CLI) AdminKubeClient() *kclientset.Clientset { - kubeClient, _, err := configapi.GetKubeClient(c.adminConfigPath, nil) +func (c *CLI) InternalAdminKubeClient() kinternalclientset.Interface { + kubeClient, _, err := configapi.GetInternalKubeClient(c.adminConfigPath, nil) if err != nil { FatalErr(err) } diff --git a/test/extended/util/db/common.go b/test/extended/util/db/common.go index 1e3f952475eb..a51492a9af60 100644 --- a/test/extended/util/db/common.go +++ b/test/extended/util/db/common.go @@ -6,7 +6,8 @@ import ( "strings" "github.com/openshift/origin/test/extended/util" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" ) // PodConfig holds configuration for a pod. @@ -16,7 +17,7 @@ type PodConfig struct { } func getPodConfig(c kcoreclient.PodInterface, podName string) (conf *PodConfig, err error) { - pod, err := c.Get(podName) + pod, err := c.Get(podName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -30,7 +31,7 @@ func getPodConfig(c kcoreclient.PodInterface, podName string) (conf *PodConfig, } func firstContainerName(c kcoreclient.PodInterface, podName string) (string, error) { - pod, err := c.Get(podName) + pod, err := c.Get(podName, metav1.GetOptions{}) if err != nil { return "", err } diff --git a/test/extended/util/db/mysql.go b/test/extended/util/db/mysql.go index a13567be69b3..f3be9cc210f2 100644 --- a/test/extended/util/db/mysql.go +++ b/test/extended/util/db/mysql.go @@ -32,7 +32,7 @@ func (m MySQL) PodName() string { // IsReady pings the MySQL server. func (m MySQL) IsReady(oc *util.CLI) (bool, error) { - conf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + conf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return false, err } @@ -51,11 +51,11 @@ func (m MySQL) IsReady(oc *util.CLI) (bool, error) { // Query executes an SQL query as an ordinary user and returns the result. func (m MySQL) Query(oc *util.CLI, query string) (string, error) { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return "", err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return "", err } @@ -67,11 +67,11 @@ func (m MySQL) Query(oc *util.CLI, query string) (string, error) { // QueryPrivileged executes an SQL query as a root user and returns the result. func (m MySQL) QueryPrivileged(oc *util.CLI, query string) (string, error) { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return "", err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return "", err } @@ -82,11 +82,11 @@ func (m MySQL) QueryPrivileged(oc *util.CLI, query string) (string, error) { // TestRemoteLogin will test whether we can login through to a remote database. func (m MySQL) TestRemoteLogin(oc *util.CLI, hostAddress string) error { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return err } diff --git a/test/extended/util/db/postgresql.go b/test/extended/util/db/postgresql.go index 3ba8432237d8..0906a60ce941 100644 --- a/test/extended/util/db/postgresql.go +++ b/test/extended/util/db/postgresql.go @@ -32,7 +32,7 @@ func (m PostgreSQL) PodName() string { // IsReady pings the PostgreSQL server. func (m PostgreSQL) IsReady(oc *util.CLI) (bool, error) { - conf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + conf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return false, err } @@ -51,11 +51,11 @@ func (m PostgreSQL) IsReady(oc *util.CLI) (bool, error) { // Query executes an SQL query as an ordinary user and returns the result. func (m PostgreSQL) Query(oc *util.CLI, query string) (string, error) { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return "", err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return "", err } @@ -67,11 +67,11 @@ func (m PostgreSQL) Query(oc *util.CLI, query string) (string, error) { // QueryPrivileged executes an SQL query as a root user and returns the result. func (m PostgreSQL) QueryPrivileged(oc *util.CLI, query string) (string, error) { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return "", err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return "", err } @@ -83,11 +83,11 @@ func (m PostgreSQL) QueryPrivileged(oc *util.CLI, query string) (string, error) // TestRemoteLogin will test whether we can login through to a remote database. func (m PostgreSQL) TestRemoteLogin(oc *util.CLI, hostAddress string) error { - container, err := firstContainerName(oc.KubeClient().Core().Pods(oc.Namespace()), m.podName) + container, err := firstContainerName(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.podName) if err != nil { return err } - masterConf, err := getPodConfig(oc.KubeClient().Core().Pods(oc.Namespace()), m.masterPodName) + masterConf, err := getPodConfig(oc.KubeClient().CoreV1().Pods(oc.Namespace()), m.masterPodName) if err != nil { return err } diff --git a/test/extended/util/db_image_helpers.go b/test/extended/util/db_image_helpers.go index bb52afdf198e..fb6ee98c20eb 100644 --- a/test/extended/util/db_image_helpers.go +++ b/test/extended/util/db_image_helpers.go @@ -9,7 +9,7 @@ import ( g "github.com/onsi/ginkgo" - "k8s.io/kubernetes/pkg/util/wait" + "k8s.io/apimachinery/pkg/util/wait" e2e "k8s.io/kubernetes/test/e2e/framework" ) diff --git a/test/extended/util/docker.go b/test/extended/util/docker.go index 3aefc7c3d148..aadb84be612f 100644 --- a/test/extended/util/docker.go +++ b/test/extended/util/docker.go @@ -10,7 +10,7 @@ import ( dockerClient "github.com/fsouza/go-dockerclient" tutil "github.com/openshift/origin/test/util" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/credentialprovider" ) @@ -36,7 +36,7 @@ func ListImages() ([]string, error) { //BuildAuthConfiguration constructs a non-standard dockerClient.AuthConfiguration that can be used to communicate with the openshift internal docker registry func BuildAuthConfiguration(credKey string, oc *CLI) (*dockerClient.AuthConfiguration, error) { authCfg := &dockerClient.AuthConfiguration{} - secretList, err := oc.AdminKubeClient().Core().Secrets(oc.Namespace()).List(kapi.ListOptions{}) + secretList, err := oc.AdminKubeClient().Core().Secrets(oc.Namespace()).List(metav1.ListOptions{}) g.By(fmt.Sprintf("get secret list err %v ", err)) if err == nil { diff --git a/test/extended/util/framework.go b/test/extended/util/framework.go index 1ea62893598d..6b02c900be12 100644 --- a/test/extended/util/framework.go +++ b/test/extended/util/framework.go @@ -18,22 +18,23 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" + "k8s.io/apimachinery/pkg/util/uuid" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/apimachinery/registered" - "k8s.io/kubernetes/pkg/apis/batch" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kbatchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion" - kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + batchv1 "k8s.io/kubernetes/pkg/apis/batch/v1" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" + kbatchclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/batch/v1" + kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" + kinternalcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/selection" - "k8s.io/kubernetes/pkg/util/uuid" - "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/test/e2e/framework" buildapi "github.com/openshift/origin/pkg/build/api" @@ -52,7 +53,7 @@ func WaitForOpenShiftNamespaceImageStreams(oc *CLI) error { langs := []string{"ruby", "nodejs", "perl", "php", "python", "wildfly", "mysql", "postgresql", "mongodb", "jenkins"} scan := func() bool { for _, lang := range langs { - is, err := oc.Client().ImageStreams("openshift").Get(lang) + is, err := oc.Client().ImageStreams("openshift").Get(lang, metav1.GetOptions{}) if err != nil { return false } @@ -87,7 +88,7 @@ func CheckOpenShiftNamespaceImageStreams(oc *CLI) { missing := false langs := []string{"ruby", "nodejs", "perl", "php", "python", "wildfly", "mysql", "postgresql", "mongodb", "jenkins"} for _, lang := range langs { - _, err := oc.Client().ImageStreams("openshift").Get(lang) + _, err := oc.Client().ImageStreams("openshift").Get(lang, metav1.GetOptions{}) if err != nil { missing = true break @@ -155,8 +156,8 @@ func DumpBuildLogs(bc string, oc *CLI) { ExaminePodDiskUsage(oc) } -func GetDeploymentConfigPods(oc *CLI, dcName string) (*kapi.PodList, error) { - return oc.KubeClient().Core().Pods(oc.Namespace()).List(kapi.ListOptions{LabelSelector: ParseLabelsOrDie(fmt.Sprintf("deploymentconfig=%s", dcName))}) +func GetDeploymentConfigPods(oc *CLI, dcName string) (*kapiv1.PodList, error) { + return oc.KubeClient().CoreV1().Pods(oc.Namespace()).List(metav1.ListOptions{LabelSelector: ParseLabelsOrDie(fmt.Sprintf("deploymentconfig=%s", dcName)).String()}) } // DumpDeploymentLogs will dump the latest deployment logs for a DeploymentConfig for debug purposes @@ -253,7 +254,7 @@ func ExaminePodDiskUsage(oc *CLI) { // WriteObjectToFile writes the JSON representation of runtime.Object into a temporary // file. func WriteObjectToFile(obj runtime.Object, filename string) error { - content, err := runtime.Encode(kapi.Codecs.LegacyCodec(registered.EnabledVersions()...), obj) + content, err := runtime.Encode(kapi.Codecs.LegacyCodec(kapi.Registry.EnabledVersions()...), obj) if err != nil { return err } @@ -376,7 +377,7 @@ func (t *BuildResult) dumpRegistryLogs() { if t.Build != nil && !t.Build.CreationTimestamp.IsZero() { buildStarted = &t.Build.CreationTimestamp.Time } else { - proj, err := oc.Client().Projects().Get(oc.Namespace()) + proj, err := oc.Client().Projects().Get(oc.Namespace(), metav1.GetOptions{}) if err != nil { fmt.Fprintf(g.GinkgoWriter, "Failed to get project %s: %v\n", oc.Namespace(), err) } else { @@ -540,7 +541,7 @@ func WaitForABuild(c client.BuildInterface, name string, isOK, isFailed, isCance // wait 2 minutes for build to exist err := wait.Poll(1*time.Second, 2*time.Minute, func() (bool, error) { - if _, err := c.Get(name); err != nil { + if _, err := c.Get(name, metav1.GetOptions{}); err != nil { return false, nil } return true, nil @@ -553,7 +554,7 @@ func WaitForABuild(c client.BuildInterface, name string, isOK, isFailed, isCance } // wait longer for the build to run to completion err = wait.Poll(5*time.Second, 60*time.Minute, func() (bool, error) { - list, err := c.List(kapi.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector()}) + list, err := c.List(metav1.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector().String()}) if err != nil { return false, err } @@ -592,7 +593,7 @@ var CheckBuildCancelledFn = func(b *buildapi.Build) bool { // provisioned func WaitForBuilderAccount(c kcoreclient.ServiceAccountInterface) error { waitFn := func() (bool, error) { - sc, err := c.Get("builder") + sc, err := c.Get("builder", metav1.GetOptions{}) if err != nil { // If we can't access the service accounts, let's wait till the controller // create it. @@ -616,7 +617,7 @@ func WaitForAnImageStream(client client.ImageStreamInterface, name string, isOK, isFailed func(*imageapi.ImageStream) bool) error { for { - list, err := client.List(kapi.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector()}) + list, err := client.List(metav1.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector().String()}) if err != nil { return err } @@ -631,7 +632,7 @@ func WaitForAnImageStream(client client.ImageStreamInterface, } rv := list.ResourceVersion - w, err := client.Watch(kapi.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector(), ResourceVersion: rv}) + w, err := client.Watch(metav1.ListOptions{FieldSelector: fields.Set{"name": name}.AsSelector().String(), ResourceVersion: rv}) if err != nil { return err } @@ -744,7 +745,7 @@ func compareResourceControllerNames(a, b string) int { // When isOK returns true, WaitForADeployment returns nil, when isFailed returns // true, WaitForADeployment returns an error including the deployment status. // WaitForADeployment waits for at most a certain timeout (non-configurable). -func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name string, isOK, isFailed func(*kapi.ReplicationController) bool, oc *CLI) error { +func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name string, isOK, isFailed func(*kapiv1.ReplicationController) bool, oc *CLI) error { timeout := 15 * time.Minute // closing done signals that any pending operation should be aborted. @@ -754,7 +755,7 @@ func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name // okOrFailed returns whether a replication controller matches either of // the predicates isOK or isFailed, and the associated error in case of // failure. - okOrFailed := func(rc *kapi.ReplicationController) (err error, matched bool) { + okOrFailed := func(rc *kapiv1.ReplicationController) (err error, matched bool) { if isOK(rc) { return nil, true } @@ -771,12 +772,12 @@ func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name if err != nil { return fmt.Errorf("unexpected error generating label selector: %v", err), false } - list, err := client.List(kapi.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement)}) + list, err := client.List(metav1.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement).String()}) if err != nil { return err, false } // multiple deployments are conceivable; so we look to see how the latest depoy does - var lastRC *kapi.ReplicationController + var lastRC *kapiv1.ReplicationController for _, rc := range list.Items { if lastRC == nil { lastRC = &rc @@ -794,7 +795,7 @@ func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name } } - w, err := client.Watch(kapi.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement), ResourceVersion: list.ResourceVersion}) + w, err := client.Watch(metav1.ListOptions{LabelSelector: labels.NewSelector().Add(*requirement).String(), ResourceVersion: list.ResourceVersion}) if err != nil { return err, false } @@ -806,7 +807,7 @@ func WaitForADeployment(client kcoreclient.ReplicationControllerInterface, name // watcher error, re-get and re-watch return nil, true } - rc, ok := val.Object.(*kapi.ReplicationController) + rc, ok := val.Object.(*kapiv1.ReplicationController) if !ok { continue } @@ -875,7 +876,7 @@ func WaitForRegistry( if waitForDCVersion != nil { latestVersion = *waitForDCVersion } else { - dc, err := dcNamespacer.DeploymentConfigs(kapi.NamespaceDefault).Get("docker-registry") + dc, err := dcNamespacer.DeploymentConfigs(metav1.NamespaceDefault).Get("docker-registry", metav1.GetOptions{}) if err != nil { return err } @@ -883,8 +884,8 @@ func WaitForRegistry( } fmt.Fprintf(g.GinkgoWriter, "waiting for deployment of version %d to complete\n", latestVersion) - err := WaitForADeployment(kubeClient.Core().ReplicationControllers(kapi.NamespaceDefault), "docker-registry", - func(rc *kapi.ReplicationController) bool { + err := WaitForADeployment(kubeClient.CoreV1().ReplicationControllers(metav1.NamespaceDefault), "docker-registry", + func(rc *kapiv1.ReplicationController) bool { if !CheckDeploymentCompletedFn(rc) { return false } @@ -895,7 +896,7 @@ func WaitForRegistry( } return v >= latestVersion }, - func(rc *kapi.ReplicationController) bool { + func(rc *kapiv1.ReplicationController) bool { v, err := strconv.ParseInt(rc.Annotations[deployapi.DeploymentVersionAnnotation], 10, 64) if err != nil { fmt.Fprintf(g.GinkgoWriter, "failed to parse %q of replication controller %q: %v\n", deployapi.DeploymentVersionAnnotation, rc.Name, err) @@ -911,7 +912,7 @@ func WaitForRegistry( } requirement, err := labels.NewRequirement(deployapi.DeploymentLabel, selection.Equals, []string{fmt.Sprintf("docker-registry-%d", latestVersion)}) - pods, err := WaitForPods(kubeClient.Core().Pods(kapi.NamespaceDefault), labels.NewSelector().Add(*requirement), CheckPodIsReadyFn, 1, time.Minute) + pods, err := WaitForPods(kubeClient.CoreV1().Pods(metav1.NamespaceDefault), labels.NewSelector().Add(*requirement), CheckPodIsReadyFn, 1, time.Minute) now := time.Now() fmt.Fprintf(g.GinkgoWriter, "deployed registry pod %s after %s\n", pods[0], now.Sub(start).String()) return err @@ -941,7 +942,7 @@ func isUsageSynced(received, expected kapi.ResourceList, expectedIsUpperLimit bo // or equal to quota's usage, which is useful for expected usage increment. Otherwise expected usage must // compare lower or equal to quota's usage, which is useful for expected usage decrement. func WaitForResourceQuotaSync( - client kcoreclient.ResourceQuotaInterface, + client kinternalcoreclient.ResourceQuotaInterface, name string, expectedUsage kapi.ResourceList, expectedIsUpperLimit bool, @@ -953,7 +954,7 @@ func WaitForResourceQuotaSync( expectedResourceNames := quota.ResourceNames(expectedUsage) - list, err := client.List(kapi.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector()}) + list, err := client.List(metav1.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector().String()}) if err != nil { return nil, err } @@ -966,7 +967,7 @@ func WaitForResourceQuotaSync( } rv := list.ResourceVersion - w, err := client.Watch(kapi.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector(), ResourceVersion: rv}) + w, err := client.Watch(metav1.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector().String(), ResourceVersion: rv}) if err != nil { return nil, err } @@ -993,18 +994,22 @@ func WaitForResourceQuotaSync( } // CheckDeploymentCompletedFn returns true if the deployment completed -var CheckDeploymentCompletedFn = func(d *kapi.ReplicationController) bool { +var CheckDeploymentCompletedFn = func(dv1 *kapiv1.ReplicationController) bool { + d := &kapi.ReplicationController{} + kapiv1.Convert_v1_ReplicationController_To_api_ReplicationController(dv1, d, nil) return deployutil.IsCompleteDeployment(d) } // CheckDeploymentFailedFn returns true if the deployment failed -var CheckDeploymentFailedFn = func(d *kapi.ReplicationController) bool { +var CheckDeploymentFailedFn = func(dv1 *kapiv1.ReplicationController) bool { + d := &kapi.ReplicationController{} + kapiv1.Convert_v1_ReplicationController_To_api_ReplicationController(dv1, d, nil) return deployutil.IsFailedDeployment(d) } // GetPodNamesByFilter looks up pods that satisfy the predicate and returns their names. -func GetPodNamesByFilter(c kcoreclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool) (podNames []string, err error) { - podList, err := c.List(kapi.ListOptions{LabelSelector: label}) +func GetPodNamesByFilter(c kcoreclient.PodInterface, label labels.Selector, predicate func(kapiv1.Pod) bool) (podNames []string, err error) { + podList, err := c.List(metav1.ListOptions{LabelSelector: label.String()}) if err != nil { return nil, err } @@ -1018,14 +1023,14 @@ func GetPodNamesByFilter(c kcoreclient.PodInterface, label labels.Selector, pred func WaitForAJob(c kbatchclient.JobInterface, name string, timeout time.Duration) error { return wait.Poll(1*time.Second, timeout, func() (bool, error) { - j, e := c.Get(name) + j, e := c.Get(name, metav1.GetOptions{}) if e != nil { return true, e } // TODO soltysh: replace this with a function once such exist, currently // it's private in the controller for _, c := range j.Status.Conditions { - if (c.Type == batch.JobComplete || c.Type == batch.JobFailed) && c.Status == kapi.ConditionTrue { + if (c.Type == batchv1.JobComplete || c.Type == batchv1.JobFailed) && c.Status == kapiv1.ConditionTrue { return true, nil } } @@ -1035,7 +1040,7 @@ func WaitForAJob(c kbatchclient.JobInterface, name string, timeout time.Duration // WaitForPods waits until given number of pods that match the label selector and // satisfy the predicate are found -func WaitForPods(c kcoreclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool, count int, timeout time.Duration) ([]string, error) { +func WaitForPods(c kcoreclient.PodInterface, label labels.Selector, predicate func(kapiv1.Pod) bool, count int, timeout time.Duration) ([]string, error) { var podNames []string err := wait.Poll(1*time.Second, timeout, func() (bool, error) { p, e := GetPodNamesByFilter(c, label, predicate) @@ -1052,25 +1057,25 @@ func WaitForPods(c kcoreclient.PodInterface, label labels.Selector, predicate fu } // CheckPodIsRunningFn returns true if the pod is running -var CheckPodIsRunningFn = func(pod kapi.Pod) bool { - return pod.Status.Phase == kapi.PodRunning +var CheckPodIsRunningFn = func(pod kapiv1.Pod) bool { + return pod.Status.Phase == kapiv1.PodRunning } // CheckPodIsSucceededFn returns true if the pod status is "Succdeded" -var CheckPodIsSucceededFn = func(pod kapi.Pod) bool { - return pod.Status.Phase == kapi.PodSucceeded +var CheckPodIsSucceededFn = func(pod kapiv1.Pod) bool { + return pod.Status.Phase == kapiv1.PodSucceeded } // CheckPodIsReadyFn returns true if the pod's ready probe determined that the pod is ready. -var CheckPodIsReadyFn = func(pod kapi.Pod) bool { - if pod.Status.Phase != kapi.PodRunning { +var CheckPodIsReadyFn = func(pod kapiv1.Pod) bool { + if pod.Status.Phase != kapiv1.PodRunning { return false } for _, cond := range pod.Status.Conditions { - if cond.Type != kapi.PodReady { + if cond.Type != kapiv1.PodReady { continue } - return cond.Status == kapi.ConditionTrue + return cond.Status == kapiv1.ConditionTrue } return false } @@ -1078,7 +1083,7 @@ var CheckPodIsReadyFn = func(pod kapi.Pod) bool { // WaitUntilPodIsGone waits until the named Pod will disappear func WaitUntilPodIsGone(c kcoreclient.PodInterface, podName string, timeout time.Duration) error { return wait.Poll(1*time.Second, timeout, func() (bool, error) { - _, err := c.Get(podName) + _, err := c.Get(podName, metav1.GetOptions{}) if err != nil { if strings.Contains(err.Error(), "not found") { return true, nil @@ -1092,7 +1097,7 @@ func WaitUntilPodIsGone(c kcoreclient.PodInterface, podName string, timeout time // GetDockerImageReference retrieves the full Docker pull spec from the given ImageStream // and tag func GetDockerImageReference(c client.ImageStreamInterface, name, tag string) (string, error) { - imageStream, err := c.Get(name) + imageStream, err := c.Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1107,55 +1112,55 @@ func GetDockerImageReference(c client.ImageStreamInterface, name, tag string) (s } // GetPodForContainer creates a new Pod that runs specified container -func GetPodForContainer(container kapi.Container) *kapi.Pod { +func GetPodForContainer(container kapiv1.Container) *kapiv1.Pod { name := namer.GetPodName("test-pod", string(uuid.NewUUID())) - return &kapi.Pod{ - TypeMeta: unversioned.TypeMeta{ + return &kapiv1.Pod{ + TypeMeta: metav1.TypeMeta{ Kind: "Pod", APIVersion: "v1", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: map[string]string{"name": name}, }, - Spec: kapi.PodSpec{ - Containers: []kapi.Container{container}, - RestartPolicy: kapi.RestartPolicyNever, + Spec: kapiv1.PodSpec{ + Containers: []kapiv1.Container{container}, + RestartPolicy: kapiv1.RestartPolicyNever, }, } } // CreatePersistentVolume creates a HostPath Persistent Volume. -func CreatePersistentVolume(name, capacity, hostPath string) *kapi.PersistentVolume { - return &kapi.PersistentVolume{ - TypeMeta: unversioned.TypeMeta{ +func CreatePersistentVolume(name, capacity, hostPath string) *kapiv1.PersistentVolume { + return &kapiv1.PersistentVolume{ + TypeMeta: metav1.TypeMeta{ Kind: "PersistentVolume", APIVersion: "v1", }, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: map[string]string{"name": name}, }, - Spec: kapi.PersistentVolumeSpec{ - PersistentVolumeSource: kapi.PersistentVolumeSource{ - HostPath: &kapi.HostPathVolumeSource{ + Spec: kapiv1.PersistentVolumeSpec{ + PersistentVolumeSource: kapiv1.PersistentVolumeSource{ + HostPath: &kapiv1.HostPathVolumeSource{ Path: hostPath, }, }, - Capacity: kapi.ResourceList{ - kapi.ResourceStorage: resource.MustParse(capacity), + Capacity: kapiv1.ResourceList{ + kapiv1.ResourceStorage: resource.MustParse(capacity), }, - AccessModes: []kapi.PersistentVolumeAccessMode{ - kapi.ReadWriteOnce, - kapi.ReadOnlyMany, - kapi.ReadWriteMany, + AccessModes: []kapiv1.PersistentVolumeAccessMode{ + kapiv1.ReadWriteOnce, + kapiv1.ReadOnlyMany, + kapiv1.ReadWriteMany, }, }, } } // SetupHostPathVolumes will create multiple PersistentVolumes with given capacity -func SetupHostPathVolumes(c kcoreclient.PersistentVolumeInterface, prefix, capacity string, count int) (volumes []*kapi.PersistentVolume, err error) { +func SetupHostPathVolumes(c kcoreclient.PersistentVolumeInterface, prefix, capacity string, count int) (volumes []*kapiv1.PersistentVolume, err error) { rootDir, err := ioutil.TempDir(TestContext.OutputDir, "persistent-volumes") if err != nil { return volumes, err @@ -1186,7 +1191,7 @@ func SetupHostPathVolumes(c kcoreclient.PersistentVolumeInterface, prefix, capac // CleanupHostPathVolumes removes all PersistentVolumes created by // SetupHostPathVolumes, with a given prefix func CleanupHostPathVolumes(c kcoreclient.PersistentVolumeInterface, prefix string) error { - pvs, err := c.List(kapi.ListOptions{}) + pvs, err := c.List(metav1.ListOptions{}) if err != nil { return err } @@ -1196,7 +1201,7 @@ func CleanupHostPathVolumes(c kcoreclient.PersistentVolumeInterface, prefix stri continue } - pvInfo, err := c.Get(pv.Name) + pvInfo, err := c.Get(pv.Name, metav1.GetOptions{}) if err != nil { fmt.Fprintf(g.GinkgoWriter, "WARNING: couldn't get meta info for PV %s: %v\n", pv.Name, err) continue @@ -1345,7 +1350,7 @@ func GetEndpointAddress(oc *CLI, name string) (string, error) { if err != nil { return "", err } - endpoint, err := oc.KubeClient().Core().Endpoints(oc.Namespace()).Get(name) + endpoint, err := oc.KubeClient().CoreV1().Endpoints(oc.Namespace()).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -1354,8 +1359,8 @@ func GetEndpointAddress(oc *CLI, name string) (string, error) { // GetPodForImage creates a new Pod that runs the containers from specified // Docker image reference -func GetPodForImage(dockerImageReference string) *kapi.Pod { - return GetPodForContainer(kapi.Container{ +func GetPodForImage(dockerImageReference string) *kapiv1.Pod { + return GetPodForContainer(kapiv1.Container{ Name: "test", Image: dockerImageReference, }) @@ -1365,17 +1370,17 @@ func GetPodForImage(dockerImageReference string) *kapi.Pod { // vessel for kubectl exec commands. // Returns the name of the created pod. // TODO: expose upstream -func CreateExecPodOrFail(client kcoreclient.CoreInterface, ns, name string) string { +func CreateExecPodOrFail(client kcoreclient.CoreV1Interface, ns, name string) string { framework.Logf("Creating new exec pod") execPod := framework.NewHostExecPodSpec(ns, name) created, err := client.Pods(ns).Create(execPod) o.Expect(err).NotTo(o.HaveOccurred()) err = wait.PollImmediate(framework.Poll, 5*time.Minute, func() (bool, error) { - retrievedPod, err := client.Pods(execPod.Namespace).Get(created.Name) + retrievedPod, err := client.Pods(execPod.Namespace).Get(created.Name, metav1.GetOptions{}) if err != nil { return false, nil } - return retrievedPod.Status.Phase == kapi.PodRunning, nil + return retrievedPod.Status.Phase == kapiv1.PodRunning, nil }) o.Expect(err).NotTo(o.HaveOccurred()) return created.Name @@ -1384,25 +1389,25 @@ func CreateExecPodOrFail(client kcoreclient.CoreInterface, ns, name string) stri // CreateExecPodOnNode launches a exec pod in the given namespace and node // waits until it's Running, created pod name would be returned // TODO: expose upstream -func CreateExecPodOnNode(client kcoreclient.CoreInterface, ns, nodeName, name string) string { +func CreateExecPodOnNode(client kcoreclient.CoreV1Interface, ns, nodeName, name string) string { framework.Logf("Creating exec pod %q in namespace %q", name, ns) execPod := framework.NewHostExecPodSpec(ns, name) execPod.Spec.NodeName = nodeName created, err := client.Pods(ns).Create(execPod) o.Expect(err).NotTo(o.HaveOccurred()) err = wait.PollImmediate(framework.Poll, 5*time.Minute, func() (bool, error) { - retrievedPod, err := client.Pods(execPod.Namespace).Get(created.Name) + retrievedPod, err := client.Pods(execPod.Namespace).Get(created.Name, metav1.GetOptions{}) if err != nil { return false, nil } - return retrievedPod.Status.Phase == kapi.PodRunning, nil + return retrievedPod.Status.Phase == kapiv1.PodRunning, nil }) o.Expect(err).NotTo(o.HaveOccurred()) return created.Name } -func CheckForBuildEvent(client kcoreclient.CoreInterface, build *buildapi.Build, reason, message string) { - events, err := client.Events(build.Namespace).Search(build) +func CheckForBuildEvent(client kcoreclient.CoreV1Interface, build *buildapi.Build, reason, message string) { + events, err := client.Events(build.Namespace).Search(kapi.Scheme, build) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred(), "Should be able to get events from the build") o.ExpectWithOffset(1, events).NotTo(o.BeNil(), "Build event list should not be nil") diff --git a/test/extended/util/jenkins/monitor.go b/test/extended/util/jenkins/monitor.go index 282fcbf7d4c4..5ef55cb47b91 100644 --- a/test/extended/util/jenkins/monitor.go +++ b/test/extended/util/jenkins/monitor.go @@ -9,8 +9,9 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/util/wait" + exutil "github.com/openshift/origin/test/extended/util" - "k8s.io/kubernetes/pkg/util/wait" ) // JobMon is a Jenkins job monitor diff --git a/test/extended/util/jenkins/ref.go b/test/extended/util/jenkins/ref.go index c25bfe31cce1..fca7f70d632a 100644 --- a/test/extended/util/jenkins/ref.go +++ b/test/extended/util/jenkins/ref.go @@ -16,8 +16,9 @@ import ( g "github.com/onsi/ginkgo" o "github.com/onsi/gomega" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" buildapi "github.com/openshift/origin/pkg/build/api" exutil "github.com/openshift/origin/test/extended/util" @@ -331,7 +332,7 @@ func (j *JenkinsRef) GetLastJobConsoleLogs(jobName string) (string, error) { } // Finds the pod running Jenkins -func FindJenkinsPod(oc *exutil.CLI) *kapi.Pod { +func FindJenkinsPod(oc *exutil.CLI) *kapiv1.Pod { pods, err := exutil.GetDeploymentConfigPods(oc, "jenkins") o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) @@ -422,7 +423,7 @@ func ProcessLogURLAnnotations(oc *exutil.CLI, t *exutil.BuildResult) (*url.URL, func DumpLogs(oc *exutil.CLI, t *exutil.BuildResult) (string, error) { var err error if t.Build == nil { - t.Build, err = oc.Client().Builds(oc.Namespace()).Get(t.BuildName) + t.Build, err = oc.Client().Builds(oc.Namespace()).Get(t.BuildName, metav1.GetOptions{}) if err != nil { return "", fmt.Errorf("cannot retrieve build %s: %v", t.BuildName, err) } diff --git a/test/extended/util/test.go b/test/extended/util/test.go index f9ac7914548b..5b94f34a4000 100644 --- a/test/extended/util/test.go +++ b/test/extended/util/test.go @@ -15,12 +15,13 @@ import ( "github.com/onsi/gomega" flag "github.com/spf13/pflag" - kapi "k8s.io/kubernetes/pkg/api" - apierrs "k8s.io/kubernetes/pkg/api/errors" - kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/clientcmd" + kapiv1 "k8s.io/kubernetes/pkg/api/v1" + kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/util/wait" e2e "k8s.io/kubernetes/test/e2e/framework" "github.com/openshift/origin/pkg/client" @@ -153,7 +154,7 @@ func setCreateTestingNSFunc(baseName string, fn e2e.CreateTestingNSFn) { // createTestingNS delegates to custom namespace creation functions if registered. // otherwise, it ensures that kubernetes e2e tests have their service accounts in the privileged and anyuid SCCs -func createTestingNS(baseName string, c kclientset.Interface, labels map[string]string) (*kapi.Namespace, error) { +func createTestingNS(baseName string, c kclientset.Interface, labels map[string]string) (*kapiv1.Namespace, error) { // If a custom function exists, call it if fn, exists := customCreateTestingNSFuncs[baseName]; exists { return fn(baseName, c, labels) @@ -170,14 +171,14 @@ func createTestingNS(baseName string, c kclientset.Interface, labels map[string] e2e.Logf("About to run a Kube e2e test, ensuring namespace is privileged") // add the "privileged" scc to ensure pods that explicitly // request extra capabilities are not rejected - addE2EServiceAccountsToSCC(c, []kapi.Namespace{*ns}, "privileged") + addE2EServiceAccountsToSCC(c, []kapiv1.Namespace{*ns}, "privileged") // add the "anyuid" scc to ensure pods that don't specify a // uid don't get forced into a range (mimics upstream // behavior) - addE2EServiceAccountsToSCC(c, []kapi.Namespace{*ns}, "anyuid") + addE2EServiceAccountsToSCC(c, []kapiv1.Namespace{*ns}, "anyuid") // add the "hostmount-anyuid" scc to ensure pods using hostPath // can execute tests - addE2EServiceAccountsToSCC(c, []kapi.Namespace{*ns}, "hostmount-anyuid") + addE2EServiceAccountsToSCC(c, []kapiv1.Namespace{*ns}, "hostmount-anyuid") // The intra-pod test requires that the service account have // permission to retrieve service endpoints. @@ -185,7 +186,7 @@ func createTestingNS(baseName string, c kclientset.Interface, labels map[string] if err != nil { return ns, err } - addRoleToE2EServiceAccounts(osClient, []kapi.Namespace{*ns}, bootstrappolicy.ViewRoleName) + addRoleToE2EServiceAccounts(osClient, []kapiv1.Namespace{*ns}, bootstrappolicy.ViewRoleName) } // some test suites assume they can schedule to all nodes @@ -217,7 +218,7 @@ var longRetry = wait.Backoff{Steps: 100} // allowAllNodeScheduling sets the annotation on namespace that allows all nodes to be scheduled onto. func allowAllNodeScheduling(c kclientset.Interface, namespace string) { err := retry.RetryOnConflict(longRetry, func() error { - ns, err := c.Core().Namespaces().Get(namespace) + ns, err := c.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) if err != nil { return err } @@ -225,7 +226,7 @@ func allowAllNodeScheduling(c kclientset.Interface, namespace string) { ns.Annotations = make(map[string]string) } ns.Annotations["openshift.io/node-selector"] = "" - _, err = c.Core().Namespaces().Update(ns) + _, err = c.CoreV1().Namespaces().Update(ns) return err }) if err != nil { @@ -233,11 +234,11 @@ func allowAllNodeScheduling(c kclientset.Interface, namespace string) { } } -func addE2EServiceAccountsToSCC(c kclientset.Interface, namespaces []kapi.Namespace, sccName string) { +func addE2EServiceAccountsToSCC(c kclientset.Interface, namespaces []kapiv1.Namespace, sccName string) { // Because updates can race, we need to set the backoff retries to be > than the number of possible // parallel jobs starting at once. Set very high to allow future high parallelism. err := retry.RetryOnConflict(longRetry, func() error { - scc, err := c.Core().SecurityContextConstraints().Get(sccName) + scc, err := c.CoreV1().SecurityContextConstraints().Get(sccName, metav1.GetOptions{}) if err != nil { if apierrs.IsNotFound(err) { return nil @@ -250,7 +251,7 @@ func addE2EServiceAccountsToSCC(c kclientset.Interface, namespaces []kapi.Namesp scc.Groups = append(scc.Groups, fmt.Sprintf("system:serviceaccounts:%s", ns.Name)) } } - if _, err := c.Core().SecurityContextConstraints().Update(scc); err != nil { + if _, err := c.CoreV1().SecurityContextConstraints().Update(scc); err != nil { return err } return nil @@ -260,10 +261,10 @@ func addE2EServiceAccountsToSCC(c kclientset.Interface, namespaces []kapi.Namesp } } -func addRoleToE2EServiceAccounts(c *client.Client, namespaces []kapi.Namespace, roleName string) { +func addRoleToE2EServiceAccounts(c *client.Client, namespaces []kapiv1.Namespace, roleName string) { err := retry.RetryOnConflict(longRetry, func() error { for _, ns := range namespaces { - if strings.HasPrefix(ns.Name, "e2e-") && ns.Status.Phase != kapi.NamespaceTerminating { + if strings.HasPrefix(ns.Name, "e2e-") && ns.Status.Phase != kapiv1.NamespaceTerminating { sa := fmt.Sprintf("system:serviceaccount:%s:default", ns.Name) addRole := &policy.RoleModificationOptions{ RoleNamespace: "", diff --git a/test/integration/admissionconfig_test.go b/test/integration/admissionconfig_test.go index c056da0cab36..3f335a303acf 100644 --- a/test/integration/admissionconfig_test.go +++ b/test/integration/admissionconfig_test.go @@ -7,13 +7,14 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/admission" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + kyaml "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/apiserver/pkg/admission" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" - kyaml "k8s.io/kubernetes/pkg/util/yaml" buildapi "github.com/openshift/origin/pkg/build/api" "github.com/openshift/origin/pkg/client" @@ -25,13 +26,13 @@ import ( ) type TestPluginConfig struct { - unversioned.TypeMeta `json:",inline"` - Data string `json:"data"` + metav1.TypeMeta `json:",inline"` + Data string `json:"data"` } -func (obj *TestPluginConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *TestPluginConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } -func setupAdmissionTest(t *testing.T, setupConfig func(*configapi.MasterConfig)) (*kclientset.Clientset, *client.Client) { +func setupAdmissionTest(t *testing.T, setupConfig func(*configapi.MasterConfig)) (kclientset.Interface, *client.Client) { testutil.RequireEtcd(t) masterConfig, err := testserver.DefaultMasterOptions() if err != nil { @@ -122,7 +123,7 @@ func admissionTestPod() *kapi.Pod { } func admissionTestBuild() *buildapi.Build { - build := &buildapi.Build{ObjectMeta: kapi.ObjectMeta{ + build := &buildapi.Build{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ buildapi.BuildConfigLabel: "mock-build-config", buildapi.BuildRunPolicyLabel: string(buildapi.BuildRunPolicyParallel), @@ -192,7 +193,7 @@ func TestKubernetesAdmissionPluginOrderOverride(t *testing.T) { config.KubernetesMasterConfig.AdmissionConfig.PluginOrderOverride = []string{"plugin1", "plugin2"} }) - createdPod, err := kubeClient.Core().Pods(kapi.NamespaceDefault).Create(admissionTestPod()) + createdPod, err := kubeClient.Core().Pods(metav1.NamespaceDefault).Create(admissionTestPod()) if err != nil { t.Fatalf("Unexpected error creating pod: %v", err) } @@ -214,7 +215,7 @@ func TestKubernetesAdmissionPluginConfigFile(t *testing.T) { }, } }) - createdPod, err := kubeClient.Core().Pods(kapi.NamespaceDefault).Create(admissionTestPod()) + createdPod, err := kubeClient.Core().Pods(metav1.NamespaceDefault).Create(admissionTestPod()) if err = checkAdmissionObjectLabelValues(createdPod.Labels, map[string]string{"plugin1": "plugin1configvalue", "plugin2": "default"}); err != nil { t.Errorf("Error: %v", err) } @@ -234,7 +235,7 @@ func TestKubernetesAdmissionPluginEmbeddedConfig(t *testing.T) { }, } }) - createdPod, err := kubeClient.Core().Pods(kapi.NamespaceDefault).Create(admissionTestPod()) + createdPod, err := kubeClient.Core().Pods(metav1.NamespaceDefault).Create(admissionTestPod()) if err = checkAdmissionObjectLabelValues(createdPod.Labels, map[string]string{"plugin1": "embeddedvalue1", "plugin2": "default"}); err != nil { t.Errorf("Error: %v", err) } @@ -247,7 +248,7 @@ func TestOpenshiftAdmissionPluginOrderOverride(t *testing.T) { config.AdmissionConfig.PluginOrderOverride = []string{"plugin1", "plugin2"} }) - createdBuild, err := openshiftClient.Builds(kapi.NamespaceDefault).Create(admissionTestBuild()) + createdBuild, err := openshiftClient.Builds(metav1.NamespaceDefault).Create(admissionTestBuild()) if err != nil { t.Errorf("Unexpected error creating build: %v", err) } @@ -269,7 +270,7 @@ func TestOpenshiftAdmissionPluginConfigFile(t *testing.T) { }, } }) - createdBuild, err := openshiftClient.Builds(kapi.NamespaceDefault).Create(admissionTestBuild()) + createdBuild, err := openshiftClient.Builds(metav1.NamespaceDefault).Create(admissionTestBuild()) if err = checkAdmissionObjectLabelValues(createdBuild.Labels, map[string]string{"plugin1": "default", "plugin2": "plugin2configvalue"}); err != nil { t.Errorf("Error: %v", err) } @@ -289,7 +290,7 @@ func TestOpenshiftAdmissionPluginEmbeddedConfig(t *testing.T) { }, } }) - createdBuild, err := openshiftClient.Builds(kapi.NamespaceDefault).Create(admissionTestBuild()) + createdBuild, err := openshiftClient.Builds(metav1.NamespaceDefault).Create(admissionTestBuild()) if err = checkAdmissionObjectLabelValues(createdBuild.Labels, map[string]string{"plugin1": "default", "plugin2": "embeddedvalue2"}); err != nil { t.Errorf("Error: %v", err) } diff --git a/test/integration/api_paths_test.go b/test/integration/api_paths_test.go index 600add2770e4..ea37ae06bb2c 100644 --- a/test/integration/api_paths_test.go +++ b/test/integration/api_paths_test.go @@ -6,10 +6,10 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/util/sets" configapi "github.com/openshift/origin/pkg/cmd/server/api" testutil "github.com/openshift/origin/test/util" @@ -42,7 +42,7 @@ func TestRootAPIPaths(t *testing.T) { t.Fatalf("unexpected error issuing GET to root path: %v", err) } - var broadcastRootPaths unversioned.RootPaths + var broadcastRootPaths metav1.RootPaths if err := json.NewDecoder(rootResponse.Body).Decode(&broadcastRootPaths); err != nil { t.Fatalf("unexpected error decoding root path response: %v", err) } diff --git a/test/integration/audit_test.go b/test/integration/audit_test.go index b334de34331a..53a6fece442c 100644 --- a/test/integration/audit_test.go +++ b/test/integration/audit_test.go @@ -3,7 +3,7 @@ package integration import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "github.com/openshift/origin/pkg/client" @@ -11,7 +11,7 @@ import ( testserver "github.com/openshift/origin/test/util/server" ) -func setupAuditTest(t *testing.T) (*kclientset.Clientset, *client.Client) { +func setupAuditTest(t *testing.T) (kclientset.Interface, *client.Client) { testutil.RequireEtcd(t) masterConfig, err := testserver.DefaultMasterOptions() if err != nil { @@ -38,7 +38,7 @@ func TestBasicFunctionalityWithAudit(t *testing.T) { kubeClient, _ := setupAuditTest(t) defer testutil.DumpEtcdOnFailure(t) - if _, err := kubeClient.Core().Pods(kapi.NamespaceDefault).Watch(kapi.ListOptions{}); err != nil { + if _, err := kubeClient.Core().Pods(metav1.NamespaceDefault).Watch(metav1.ListOptions{}); err != nil { t.Errorf("Unexpected error watching pods: %v", err) } diff --git a/test/integration/auth_proxy_test.go b/test/integration/auth_proxy_test.go index 5e676dd777cf..f33aff29b66c 100644 --- a/test/integration/auth_proxy_test.go +++ b/test/integration/auth_proxy_test.go @@ -7,8 +7,8 @@ import ( "net/url" "testing" - kapi "k8s.io/kubernetes/pkg/api" - ktransport "k8s.io/kubernetes/pkg/client/transport" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + ktransport "k8s.io/client-go/transport" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/server/origin" @@ -60,7 +60,7 @@ func TestAuthProxyOnAuthorize(t *testing.T) { t.Logf("proxy server is on %v\n", proxyServer.URL) // need to prime clients so that we can get back a code. the client must be valid - result := clusterAdminClient.RESTClient.Post().Resource("oAuthClients").Body(&oauthapi.OAuthClient{ObjectMeta: kapi.ObjectMeta{Name: "test"}, Secret: "secret", RedirectURIs: []string{clusterAdminClientConfig.Host}}).Do() + result := clusterAdminClient.RESTClient.Post().Resource("oAuthClients").Body(&oauthapi.OAuthClient{ObjectMeta: metav1.ObjectMeta{Name: "test"}, Secret: "secret", RedirectURIs: []string{clusterAdminClientConfig.Host}}).Do() if result.Error() != nil { t.Fatal(result.Error()) } diff --git a/test/integration/authorization_test.go b/test/integration/authorization_test.go index 77e7a0be14fd..c47e2d11f86c 100644 --- a/test/integration/authorization_test.go +++ b/test/integration/authorization_test.go @@ -7,16 +7,16 @@ import ( "testing" "time" + kapierror "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - kunvapi "k8s.io/kubernetes/pkg/api/unversioned" kubeauthorizationapi "k8s.io/kubernetes/pkg/apis/authorization" extensionsapi "k8s.io/kubernetes/pkg/apis/extensions" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" @@ -41,7 +41,7 @@ func prettyPrintAction(act *authorizationapi.Action, defaultNamespaceStr string) if act.Group == "" && act.Version == "" { resourceStr = act.Resource } else { - groupVer := kunvapi.GroupVersion{Group: act.Group, Version: act.Version} + groupVer := schema.GroupVersion{Group: act.Group, Version: act.Version} resourceStr = fmt.Sprintf("%s/%s", act.Resource, groupVer.String()) } @@ -104,15 +104,15 @@ func TestClusterReaderCoverage(t *testing.T) { discoveryClient := client.NewDiscoveryClient(clusterAdminClient.RESTClient) - // (map[string]*unversioned.APIResourceList, error) + // (map[string]*metav1.APIResourceList, error) allResourceList, err := discoveryClient.ServerResources() if err != nil { t.Fatalf("unexpected error: %v", err) } - allResources := map[unversioned.GroupResource]bool{} + allResources := map[schema.GroupResource]bool{} for _, resources := range allResourceList { - version, err := unversioned.ParseGroupVersion(resources.GroupVersion) + version, err := schema.ParseGroupVersion(resources.GroupVersion) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -122,7 +122,7 @@ func TestClusterReaderCoverage(t *testing.T) { } } - escalatingResources := map[unversioned.GroupResource]bool{ + escalatingResources := map[schema.GroupResource]bool{ oauthapi.Resource("oauthauthorizetokens"): true, oauthapi.LegacyResource("oauthauthorizetokens"): true, oauthapi.Resource("oauthaccesstokens"): true, @@ -139,14 +139,14 @@ func TestClusterReaderCoverage(t *testing.T) { kapi.Resource("services/proxy"): true, } - readerRole, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.ClusterReaderRoleName) + readerRole, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.ClusterReaderRoleName, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } for _, rule := range readerRole.Rules { for _, group := range rule.APIGroups { for resource := range rule.Resources { - gr := unversioned.GroupResource{Group: group, Resource: resource} + gr := schema.GroupResource{Group: group, Resource: resource} if escalatingResources[gr] { t.Errorf("cluster-reader role has escalating resource %v. Check pkg/cmd/server/bootstrappolicy/policy.go.", gr) } @@ -161,7 +161,7 @@ func TestClusterReaderCoverage(t *testing.T) { } // remove resources without read APIs - nonreadingResources := []unversioned.GroupResource{ + nonreadingResources := []schema.GroupResource{ buildapi.Resource("buildconfigs/instantiatebinary"), buildapi.LegacyResource("buildconfigs/instantiatebinary"), buildapi.Resource("buildconfigs/instantiate"), @@ -223,23 +223,23 @@ func TestAuthorizationRestrictedAccessForProjectAdmins(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - _, err = haroldClient.DeploymentConfigs("hammer-project").List(kapi.ListOptions{}) + _, err = haroldClient.DeploymentConfigs("hammer-project").List(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } - _, err = markClient.DeploymentConfigs("hammer-project").List(kapi.ListOptions{}) + _, err = markClient.DeploymentConfigs("hammer-project").List(metav1.ListOptions{}) if (err == nil) || !kapierror.IsForbidden(err) { t.Fatalf("unexpected error: %v", err) } // projects are a special case where a get of a project actually sets a namespace. Make sure that // the namespace is properly special cased and set for authorization rules - _, err = haroldClient.Projects().Get("hammer-project") + _, err = haroldClient.Projects().Get("hammer-project", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } - _, err = markClient.Projects().Get("hammer-project") + _, err = markClient.Projects().Get("hammer-project", metav1.GetOptions{}) if (err == nil) || !kapierror.IsForbidden(err) { t.Fatalf("unexpected error: %v", err) } @@ -253,7 +253,7 @@ func TestAuthorizationRestrictedAccessForProjectAdmins(t *testing.T) { // if not found, it will retry up to numRetries at the specified delayInterval func waitForProject(t *testing.T, client client.Interface, projectName string, delayInterval time.Duration, numRetries int) { for i := 0; i <= numRetries; i++ { - projects, err := client.Projects().List(kapi.ListOptions{}) + projects, err := client.Projects().List(metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -349,7 +349,7 @@ func TestAuthorizationResolution(t *testing.T) { // the authorization cache may not be up to date, retry if err := wait.Poll(10*time.Millisecond, 2*time.Minute, func() (bool, error) { - _, err := buildListerClient.Builds(kapi.NamespaceDefault).List(kapi.ListOptions{}) + _, err := buildListerClient.Builds(metav1.NamespaceDefault).List(metav1.ListOptions{}) if kapierror.IsForbidden(err) { return false, nil } @@ -358,11 +358,11 @@ func TestAuthorizationResolution(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := buildListerClient.Builds(kapi.NamespaceDefault).List(kapi.ListOptions{}); err != nil { + if _, err := buildListerClient.Builds(metav1.NamespaceDefault).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } - if _, err := buildListerClient.DeploymentConfigs(kapi.NamespaceDefault).List(kapi.ListOptions{}); !kapierror.IsForbidden(err) { + if _, err := buildListerClient.DeploymentConfigs(metav1.NamespaceDefault).List(metav1.ListOptions{}); !kapierror.IsForbidden(err) { t.Errorf("expected forbidden, got %v", err) } @@ -800,7 +800,7 @@ func toKubeSelfSAR(testNS string, sar *authorizationapi.LocalSubjectAccessReview // TODO handle Extra/Scopes, Subresource and NonResourceAttributes func toKubeLocalSAR(testNS string, sar *authorizationapi.LocalSubjectAccessReview) *kubeauthorizationapi.LocalSubjectAccessReview { return &kubeauthorizationapi.LocalSubjectAccessReview{ - ObjectMeta: kapi.ObjectMeta{Namespace: testNS}, + ObjectMeta: metav1.ObjectMeta{Namespace: testNS}, Spec: kubeauthorizationapi.SubjectAccessReviewSpec{ User: sar.User, Groups: sar.Groups.List(), @@ -1510,7 +1510,7 @@ func TestOldLocalSubjectAccessReviewEndpoint(t *testing.T) { } // remove the new permission for localSAR - basicUserRole, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.BasicUserRoleName) + basicUserRole, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.BasicUserRoleName, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/basic_auth.go b/test/integration/basic_auth.go index d89913308f66..5364dcb44a46 100644 --- a/test/integration/basic_auth.go +++ b/test/integration/basic_auth.go @@ -13,7 +13,7 @@ import ( "github.com/golang/glog" "github.com/gorilla/context" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" ) type User struct { diff --git a/test/integration/bootstrap_policy_test.go b/test/integration/bootstrap_policy_test.go index 47f9ec773bf0..7299cd5bca33 100644 --- a/test/integration/bootstrap_policy_test.go +++ b/test/integration/bootstrap_policy_test.go @@ -5,10 +5,9 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" + kapierror "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -17,6 +16,7 @@ import ( "github.com/openshift/origin/pkg/cmd/util/tokencmd" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestBootstrapPolicyAuthenticatedUsersAgainstOpenshiftNamespace(t *testing.T) { @@ -55,24 +55,24 @@ func TestBootstrapPolicyAuthenticatedUsersAgainstOpenshiftNamespace(t *testing.T openshiftSharedResourcesNamespace := "openshift" - if _, err := valerieOpenshiftClient.Templates(openshiftSharedResourcesNamespace).List(kapi.ListOptions{}); err != nil { + if _, err := valerieOpenshiftClient.Templates(openshiftSharedResourcesNamespace).List(metav1.ListOptions{}); err != nil { t.Errorf("unexpected error: %v", err) } - if _, err := valerieOpenshiftClient.Templates(kapi.NamespaceDefault).List(kapi.ListOptions{}); err == nil || !kapierror.IsForbidden(err) { + if _, err := valerieOpenshiftClient.Templates(metav1.NamespaceDefault).List(metav1.ListOptions{}); err == nil || !kapierror.IsForbidden(err) { t.Errorf("unexpected error: %v", err) } - if _, err := valerieOpenshiftClient.ImageStreams(openshiftSharedResourcesNamespace).List(kapi.ListOptions{}); err != nil { + if _, err := valerieOpenshiftClient.ImageStreams(openshiftSharedResourcesNamespace).List(metav1.ListOptions{}); err != nil { t.Errorf("unexpected error: %v", err) } - if _, err := valerieOpenshiftClient.ImageStreams(kapi.NamespaceDefault).List(kapi.ListOptions{}); err == nil || !kapierror.IsForbidden(err) { + if _, err := valerieOpenshiftClient.ImageStreams(metav1.NamespaceDefault).List(metav1.ListOptions{}); err == nil || !kapierror.IsForbidden(err) { t.Errorf("unexpected error: %v", err) } if _, err := valerieOpenshiftClient.ImageStreamTags(openshiftSharedResourcesNamespace).Get("name", "tag"); !kapierror.IsNotFound(err) { t.Errorf("unexpected error: %v", err) } - if _, err := valerieOpenshiftClient.ImageStreamTags(kapi.NamespaceDefault).Get("name", "tag"); err == nil || !kapierror.IsForbidden(err) { + if _, err := valerieOpenshiftClient.ImageStreamTags(metav1.NamespaceDefault).Get("name", "tag"); err == nil || !kapierror.IsForbidden(err) { t.Errorf("unexpected error: %v", err) } } @@ -97,7 +97,7 @@ func TestBootstrapPolicyOverwritePolicyCommand(t *testing.T) { // after the policy is deleted, we must wait for it to be cleared from the policy cache err = wait.Poll(10*time.Millisecond, 10*time.Second, func() (bool, error) { - _, err := client.ClusterPolicies().List(kapi.ListOptions{}) + _, err := client.ClusterPolicies().List(metav1.ListOptions{}) if err == nil { return false, nil } @@ -116,7 +116,7 @@ func TestBootstrapPolicyOverwritePolicyCommand(t *testing.T) { t.Errorf("unexpected error: %v", err) } - if _, err := client.ClusterPolicies().List(kapi.ListOptions{}); err != nil { + if _, err := client.ClusterPolicies().List(metav1.ListOptions{}); err != nil { t.Errorf("unexpected error: %v", err) } } diff --git a/test/integration/build_admission_test.go b/test/integration/build_admission_test.go index 296431ce3965..9f3f6ac9d34a 100644 --- a/test/integration/build_admission_test.go +++ b/test/integration/build_admission_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - kapierror "k8s.io/kubernetes/pkg/api/errors" + kapierror "k8s.io/apimachinery/pkg/api/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/test/integration/buildcontroller_test.go b/test/integration/buildcontroller_test.go index dc8f025acf77..23236836ad35 100644 --- a/test/integration/buildcontroller_test.go +++ b/test/integration/buildcontroller_test.go @@ -3,6 +3,7 @@ package integration import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -69,7 +70,7 @@ func TestConcurrentBuildConfigControllers(t *testing.T) { build.RunBuildConfigChangeControllerTest(t, osClient, kClient) } -func setupBuildControllerTest(counts controllerCount, t *testing.T) (*client.Client, *kclientset.Clientset) { +func setupBuildControllerTest(counts controllerCount, t *testing.T) (*client.Client, kclientset.Interface) { testutil.RequireEtcd(t) master, clusterAdminKubeConfig, err := testserver.StartTestMaster() if err != nil { @@ -86,7 +87,7 @@ func setupBuildControllerTest(counts controllerCount, t *testing.T) (*client.Cli t.Fatal(err) } _, err = clusterAdminKubeClientset.Core().Namespaces().Create(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: testutil.Namespace()}, }) if err != nil { t.Fatal(err) diff --git a/test/integration/buildpod_admission_test.go b/test/integration/buildpod_admission_test.go index a97b1ced329f..af13819033ae 100644 --- a/test/integration/buildpod_admission_test.go +++ b/test/integration/buildpod_admission_test.go @@ -6,10 +6,11 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + watchapi "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/fields" - watchapi "k8s.io/kubernetes/pkg/watch" defaultsapi "github.com/openshift/origin/pkg/build/admission/defaults/api" overridesapi "github.com/openshift/origin/pkg/build/admission/overrides/api" @@ -167,7 +168,7 @@ func TestBuildOverrideAnnotations(t *testing.T) { } func buildPodAdmissionTestCustomBuild() *buildapi.Build { - build := &buildapi.Build{ObjectMeta: kapi.ObjectMeta{ + build := &buildapi.Build{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ buildapi.BuildConfigLabel: "mock-build-config", buildapi.BuildRunPolicyLabel: string(buildapi.BuildRunPolicyParallel), @@ -182,7 +183,7 @@ func buildPodAdmissionTestCustomBuild() *buildapi.Build { } func buildPodAdmissionTestDockerBuild() *buildapi.Build { - build := &buildapi.Build{ObjectMeta: kapi.ObjectMeta{ + build := &buildapi.Build{ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ buildapi.BuildConfigLabel: "mock-build-config", buildapi.BuildRunPolicyLabel: string(buildapi.BuildRunPolicyParallel), @@ -194,7 +195,7 @@ func buildPodAdmissionTestDockerBuild() *buildapi.Build { return build } -func runBuildPodAdmissionTest(t *testing.T, client *client.Client, kclientset *kclientset.Clientset, build *buildapi.Build) (*buildapi.Build, *kapi.Pod) { +func runBuildPodAdmissionTest(t *testing.T, client *client.Client, kclientset kclientset.Interface, build *buildapi.Build) (*buildapi.Build, *kapi.Pod) { ns := testutil.Namespace() _, err := client.Builds(ns).Create(build) @@ -202,11 +203,11 @@ func runBuildPodAdmissionTest(t *testing.T, client *client.Client, kclientset *k t.Fatalf("%v", err) } - watchOpt := kapi.ListOptions{ + watchOpt := metav1.ListOptions{ FieldSelector: fields.OneTermEqualSelector( "metadata.name", buildapi.GetBuildPodName(build), - ), + ).String(), } podWatch, err := kclientset.Core().Pods(ns).Watch(watchOpt) if err != nil { @@ -240,7 +241,7 @@ func runBuildPodAdmissionTest(t *testing.T, client *client.Client, kclientset *k return nil, nil } -func setupBuildDefaultsAdmissionTest(t *testing.T, defaultsConfig *defaultsapi.BuildDefaultsConfig) (*client.Client, *kclientset.Clientset) { +func setupBuildDefaultsAdmissionTest(t *testing.T, defaultsConfig *defaultsapi.BuildDefaultsConfig) (*client.Client, kclientset.Interface) { return setupBuildPodAdmissionTest(t, map[string]configapi.AdmissionPluginConfig{ "BuildDefaults": { Configuration: defaultsConfig, @@ -248,7 +249,7 @@ func setupBuildDefaultsAdmissionTest(t *testing.T, defaultsConfig *defaultsapi.B }) } -func setupBuildOverridesAdmissionTest(t *testing.T, overridesConfig *overridesapi.BuildOverridesConfig) (*client.Client, *kclientset.Clientset) { +func setupBuildOverridesAdmissionTest(t *testing.T, overridesConfig *overridesapi.BuildOverridesConfig) (*client.Client, kclientset.Interface) { return setupBuildPodAdmissionTest(t, map[string]configapi.AdmissionPluginConfig{ "BuildOverrides": { Configuration: overridesConfig, @@ -256,7 +257,7 @@ func setupBuildOverridesAdmissionTest(t *testing.T, overridesConfig *overridesap }) } -func setupBuildPodAdmissionTest(t *testing.T, pluginConfig map[string]configapi.AdmissionPluginConfig) (*client.Client, *kclientset.Clientset) { +func setupBuildPodAdmissionTest(t *testing.T, pluginConfig map[string]configapi.AdmissionPluginConfig) (*client.Client, kclientset.Interface) { testutil.RequireEtcd(t) master, err := testserver.DefaultMasterOptions() if err != nil { @@ -277,8 +278,8 @@ func setupBuildPodAdmissionTest(t *testing.T, pluginConfig map[string]configapi. t.Fatalf("%v", err) } - _, err = clusterAdminKubeClientset.Namespaces().Create(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: testutil.Namespace()}, + _, err = clusterAdminKubeClientset.Core().Namespaces().Create(&kapi.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: testutil.Namespace()}, }) if err != nil { t.Fatalf("%v", err) diff --git a/test/integration/cli_get_token_test.go b/test/integration/cli_get_token_test.go index 1fe266e2f51d..7aa9f6b8744b 100644 --- a/test/integration/cli_get_token_test.go +++ b/test/integration/cli_get_token_test.go @@ -4,6 +4,8 @@ import ( "bytes" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/util/clientcmd" "github.com/openshift/origin/pkg/cmd/util/tokencmd" @@ -40,7 +42,7 @@ func TestCLIGetToken(t *testing.T) { t.Fatal(err) } - user, err := osClient.Users().Get("~") + user, err := osClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatal(err) } diff --git a/test/integration/clientset_test.go b/test/integration/clientset_test.go index 7ecdc3c94be4..f161bbe1ceb5 100644 --- a/test/integration/clientset_test.go +++ b/test/integration/clientset_test.go @@ -61,7 +61,7 @@ func TestClientSet_v1_3(t *testing.T) { if _, err := c.Builds(namespace).Create(build); err != nil { t.Fatal(err) } - result, err := c.Builds(namespace).List(kapiv1.ListOptions{}) + result, err := c.Builds(namespace).List(kmetav1.ListOptions{}) if err != nil { t.Fatal(err) } diff --git a/test/integration/clusterquota_test.go b/test/integration/clusterquota_test.go index f974ff724e2d..2e9ce585d222 100644 --- a/test/integration/clusterquota_test.go +++ b/test/integration/clusterquota_test.go @@ -5,12 +5,12 @@ import ( "time" imageapi "github.com/openshift/origin/pkg/image/api" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" - "k8s.io/kubernetes/pkg/api/unversioned" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - utilwait "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" quotaapi "github.com/openshift/origin/pkg/quota/api" @@ -42,10 +42,10 @@ func TestClusterQuota(t *testing.T) { // time.Sleep(10 * time.Second) cq := "aapi.ClusterResourceQuota{ - ObjectMeta: kapi.ObjectMeta{Name: "overall"}, + ObjectMeta: metav1.ObjectMeta{Name: "overall"}, Spec: quotaapi.ClusterResourceQuotaSpec{ Selector: quotaapi.ClusterResourceQuotaSelector{ - LabelSelector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, + LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, }, Quota: kapi.ResourceQuotaSpec{ Hard: kapi.ResourceList{ @@ -88,12 +88,12 @@ func TestClusterQuota(t *testing.T) { t.Fatalf("unexpected error: %v", err) } if _, err := clusterAdminKubeClient.Core().ConfigMaps("second").Create(configmap); !kapierrors.IsForbidden(err) { - list, err := clusterAdminClient.AppliedClusterResourceQuotas("second").List(kapi.ListOptions{}) + list, err := clusterAdminClient.AppliedClusterResourceQuotas("second").List(metav1.ListOptions{}) if err == nil { t.Errorf("quota is %#v", list) } - list2, err := clusterAdminKubeClient.Core().ConfigMaps("").List(kapi.ListOptions{}) + list2, err := clusterAdminKubeClient.Core().ConfigMaps("").List(metav1.ListOptions{}) if err == nil { t.Errorf("ConfigMaps is %#v", list2) } @@ -107,12 +107,12 @@ func TestClusterQuota(t *testing.T) { t.Fatalf("unexpected error: %v", err) } if _, err := clusterAdminClient.ImageStreams("second").Create(imagestream); !kapierrors.IsForbidden(err) { - list, err := clusterAdminClient.AppliedClusterResourceQuotas("second").List(kapi.ListOptions{}) + list, err := clusterAdminClient.AppliedClusterResourceQuotas("second").List(metav1.ListOptions{}) if err == nil { t.Errorf("quota is %#v", list) } - list2, err := clusterAdminClient.ImageStreams("").List(kapi.ListOptions{}) + list2, err := clusterAdminClient.ImageStreams("").List(metav1.ListOptions{}) if err == nil { t.Errorf("ImageStreams is %#v", list2) } @@ -124,7 +124,7 @@ func TestClusterQuota(t *testing.T) { func waitForQuotaLabeling(clusterAdminClient client.AppliedClusterResourceQuotasNamespacer, namespaceName string) error { return utilwait.PollImmediate(100*time.Millisecond, 10*time.Second, func() (done bool, err error) { - list, err := clusterAdminClient.AppliedClusterResourceQuotas(namespaceName).List(kapi.ListOptions{}) + list, err := clusterAdminClient.AppliedClusterResourceQuotas(namespaceName).List(metav1.ListOptions{}) if err != nil { return false, nil } @@ -136,7 +136,7 @@ func waitForQuotaLabeling(clusterAdminClient client.AppliedClusterResourceQuotas } func labelNamespace(clusterAdminKubeClient kcoreclient.NamespacesGetter, namespaceName string) error { - ns1, err := clusterAdminKubeClient.Namespaces().Get(namespaceName) + ns1, err := clusterAdminKubeClient.Namespaces().Get(namespaceName, metav1.GetOptions{}) if err != nil { return err } diff --git a/test/integration/clusterresourceoverride_admission_test.go b/test/integration/clusterresourceoverride_admission_test.go index 5f91a902483a..fdc294df8e19 100644 --- a/test/integration/clusterresourceoverride_admission_test.go +++ b/test/integration/clusterresourceoverride_admission_test.go @@ -3,9 +3,10 @@ package integration import ( "testing" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "github.com/openshift/origin/pkg/cmd/server/api" @@ -68,7 +69,7 @@ func TestClusterResourceOverridePluginWithLimits(t *testing.T) { MaxLimitRequestRatio: kapi.ResourceList{}, } limit := &kapi.LimitRange{ - ObjectMeta: kapi.ObjectMeta{Name: "limit"}, + ObjectMeta: metav1.ObjectMeta{Name: "limit"}, Spec: kapi.LimitRangeSpec{Limits: []kapi.LimitRangeItem{limitItem}}, } _, err := limitHandler.Create(limit) @@ -154,7 +155,7 @@ func testClusterResourceOverridePod(name string, memory string, cpu string) *kap } container := kapi.Container{Name: name, Image: "scratch", Resources: resources} pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Spec: kapi.PodSpec{Containers: []kapi.Container{container}}, } return pod diff --git a/test/integration/deploy_scale_test.go b/test/integration/deploy_scale_test.go index 2914a7252869..4637812bdea6 100644 --- a/test/integration/deploy_scale_test.go +++ b/test/integration/deploy_scale_test.go @@ -4,7 +4,9 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/util/wait" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -51,7 +53,7 @@ func TestDeployScale(t *testing.T) { generation := dc.Generation condition := func() (bool, error) { - config, err := osClient.DeploymentConfigs(namespace).Get(dc.Name) + config, err := osClient.DeploymentConfigs(namespace).Get(dc.Name, metav1.GetOptions{}) if err != nil { return false, nil } @@ -71,8 +73,11 @@ func TestDeployScale(t *testing.T) { scaleUpdate := deployapi.ScaleFromConfig(dc) scaleUpdate.Spec.Replicas = 3 - - updatedScale, err := osClient.DeploymentConfigs(namespace).UpdateScale(scaleUpdate) + scaleUpdatev1beta1 := &extensionsv1beta1.Scale{} + if err := extensionsv1beta1.Convert_extensions_Scale_To_v1beta1_Scale(scaleUpdate, scaleUpdatev1beta1, nil); err != nil { + t.Fatalf("Unexpected error: %v", err) + } + updatedScale, err := osClient.DeploymentConfigs(namespace).UpdateScale(scaleUpdatev1beta1) if err != nil { // If this complains about "Scale" not being registered in "v1", check the kind overrides in the API registration in SubresourceGroupVersionKind t.Fatalf("Couldn't update DeploymentConfig scale to %#v: %v", scaleUpdate, err) diff --git a/test/integration/deploy_trigger_test.go b/test/integration/deploy_trigger_test.go index e18d4404fe44..d50e3ec9813f 100644 --- a/test/integration/deploy_trigger_test.go +++ b/test/integration/deploy_trigger_test.go @@ -5,10 +5,11 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + watchapi "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/util/wait" - watchapi "k8s.io/kubernetes/pkg/watch" deployapi "github.com/openshift/origin/pkg/deploy/api" deploytest "github.com/openshift/origin/pkg/deploy/api/test" @@ -55,7 +56,7 @@ func TestTriggers_manual(t *testing.T) { t.Fatalf("Couldn't create DeploymentConfig: %v %#v", err, config) } - rcWatch, err := kc.Core().ReplicationControllers(namespace).Watch(kapi.ListOptions{ResourceVersion: dc.ResourceVersion}) + rcWatch, err := kc.Core().ReplicationControllers(namespace).Watch(metav1.ListOptions{ResourceVersion: dc.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to Deployments: %v", err) } @@ -123,13 +124,13 @@ func TestTriggers_imageChange(t *testing.T) { t.Fatalf("error creating project: %v", err) } - imageStream := &imageapi.ImageStream{ObjectMeta: kapi.ObjectMeta{Name: deploytest.ImageStreamName}} + imageStream := &imageapi.ImageStream{ObjectMeta: metav1.ObjectMeta{Name: deploytest.ImageStreamName}} config := deploytest.OkDeploymentConfig(0) config.Namespace = testutil.Namespace() config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deploytest.OkImageChangeTrigger()} - configWatch, err := openshiftProjectAdminClient.DeploymentConfigs(testutil.Namespace()).Watch(kapi.ListOptions{}) + configWatch, err := openshiftProjectAdminClient.DeploymentConfigs(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to deploymentconfigs %v", err) } @@ -139,7 +140,7 @@ func TestTriggers_imageChange(t *testing.T) { t.Fatalf("Couldn't create imagestream: %v", err) } - imageWatch, err := openshiftProjectAdminClient.ImageStreams(testutil.Namespace()).Watch(kapi.ListOptions{}) + imageWatch, err := openshiftProjectAdminClient.ImageStreams(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to imagestreams: %v", err) } @@ -151,10 +152,10 @@ func TestTriggers_imageChange(t *testing.T) { // then wait for the stream status to be asynchronously updated. createTagEvent := func() { mapping := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: imageStream.Name}, + ObjectMeta: metav1.ObjectMeta{Name: imageStream.Name}, Tag: imageapi.DefaultImageTag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: updatedImage, }, DockerImageReference: updatedPullSpec, @@ -229,13 +230,13 @@ func TestTriggers_imageChange_nonAutomatic(t *testing.T) { t.Fatalf("error creating project: %v", err) } - imageStream := &imageapi.ImageStream{ObjectMeta: kapi.ObjectMeta{Name: deploytest.ImageStreamName}} + imageStream := &imageapi.ImageStream{ObjectMeta: metav1.ObjectMeta{Name: deploytest.ImageStreamName}} if imageStream, err = oc.ImageStreams(testutil.Namespace()).Create(imageStream); err != nil { t.Fatalf("Couldn't create imagestream: %v", err) } - imageWatch, err := oc.ImageStreams(testutil.Namespace()).Watch(kapi.ListOptions{}) + imageWatch, err := oc.ImageStreams(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to imagestreams: %v", err) } @@ -246,10 +247,10 @@ func TestTriggers_imageChange_nonAutomatic(t *testing.T) { // Make a function which can create a new tag event for the image stream and // then wait for the stream status to be asynchronously updated. mapping := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: imageStream.Name}, + ObjectMeta: metav1.ObjectMeta{Name: imageStream.Name}, Tag: imageapi.DefaultImageTag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: image, }, DockerImageReference: pullSpec, @@ -284,7 +285,7 @@ func TestTriggers_imageChange_nonAutomatic(t *testing.T) { } } - configWatch, err := oc.DeploymentConfigs(testutil.Namespace()).Watch(kapi.ListOptions{}) + configWatch, err := oc.DeploymentConfigs(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to deploymentconfigs: %v", err) } @@ -369,7 +370,7 @@ loop: if retryErr != nil { t.Fatalf("Couldn't instantiate deployment config %q: %v", request.Name, err) } - config, err = oc.DeploymentConfigs(config.Namespace).Get(config.Name) + config, err = oc.DeploymentConfigs(config.Namespace).Get(config.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -409,8 +410,8 @@ func TestTriggers_MultipleICTs(t *testing.T) { t.Fatalf("error creating project: %v", err) } - imageStream := &imageapi.ImageStream{ObjectMeta: kapi.ObjectMeta{Name: deploytest.ImageStreamName}} - secondImageStream := &imageapi.ImageStream{ObjectMeta: kapi.ObjectMeta{Name: "sample"}} + imageStream := &imageapi.ImageStream{ObjectMeta: metav1.ObjectMeta{Name: deploytest.ImageStreamName}} + secondImageStream := &imageapi.ImageStream{ObjectMeta: metav1.ObjectMeta{Name: "sample"}} config := deploytest.OkDeploymentConfig(0) config.Namespace = testutil.Namespace() @@ -420,7 +421,7 @@ func TestTriggers_MultipleICTs(t *testing.T) { secondTrigger.ImageChangeParams.From.Name = imageapi.JoinImageStreamTag("sample", imageapi.DefaultImageTag) config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{firstTrigger, secondTrigger} - configWatch, err := openshiftProjectAdminClient.DeploymentConfigs(testutil.Namespace()).Watch(kapi.ListOptions{}) + configWatch, err := openshiftProjectAdminClient.DeploymentConfigs(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to deploymentconfigs %v", err) } @@ -433,7 +434,7 @@ func TestTriggers_MultipleICTs(t *testing.T) { t.Fatalf("Couldn't create imagestream %q: %v", secondImageStream.Name, err) } - imageWatch, err := openshiftProjectAdminClient.ImageStreams(testutil.Namespace()).Watch(kapi.ListOptions{}) + imageWatch, err := openshiftProjectAdminClient.ImageStreams(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to imagestreams: %v", err) } @@ -446,10 +447,10 @@ func TestTriggers_MultipleICTs(t *testing.T) { // then wait for the stream status to be asynchronously updated. createTagEvent := func(name, tag, image, pullSpec string) { mapping := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: image, }, DockerImageReference: pullSpec, @@ -580,7 +581,7 @@ func TestTriggers_configChange(t *testing.T) { config.Namespace = namespace config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deploytest.OkConfigChangeTrigger()} - rcWatch, err := kc.Core().ReplicationControllers(namespace).Watch(kapi.ListOptions{}) + rcWatch, err := kc.Core().ReplicationControllers(namespace).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to Deployments %v", err) } @@ -608,7 +609,7 @@ func TestTriggers_configChange(t *testing.T) { // this is required to be done manually since the deployment and deployer pod controllers are not run in this test // get this live or conflicts will never end up resolved retryErr := retry.RetryOnConflict(wait.Backoff{Steps: maxUpdateRetries}, func() error { - liveDeployment, err := kc.Core().ReplicationControllers(deployment.Namespace).Get(deployment.Name) + liveDeployment, err := kc.Core().ReplicationControllers(deployment.Namespace).Get(deployment.Name, metav1.GetOptions{}) if err != nil { return err } @@ -633,7 +634,7 @@ func TestTriggers_configChange(t *testing.T) { // Update the config with a new environment variable and observe a new deployment // coming up. retryErr = retry.RetryOnConflict(wait.Backoff{Steps: maxUpdateRetries}, func() error { - latest, err := oc.DeploymentConfigs(namespace).Get(config.Name) + latest, err := oc.DeploymentConfigs(namespace).Get(config.Name, metav1.GetOptions{}) if err != nil { return err } @@ -655,7 +656,7 @@ func TestTriggers_configChange(t *testing.T) { if retryErr := retry.RetryOnConflict(wait.Backoff{Steps: maxUpdateRetries}, func() error { // submit a new config with an updated environment variable - newConfig, err := oc.DeploymentConfigs(namespace).Get(config.Name) + newConfig, err := oc.DeploymentConfigs(namespace).Get(config.Name, metav1.GetOptions{}) if err != nil { return err } @@ -698,7 +699,7 @@ func assertEnvVarEquals(name string, value string, deployment *kapi.ReplicationC func makeStream(name, tag, dir, image string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Status: imageapi.ImageStreamStatus{ Tags: map[string]imageapi.TagEventList{ tag: { diff --git a/test/integration/diag_nodes_test.go b/test/integration/diag_nodes_test.go index 52e7d0f16594..c5a97ef67bdc 100644 --- a/test/integration/diag_nodes_test.go +++ b/test/integration/diag_nodes_test.go @@ -4,9 +4,10 @@ import ( "testing" "time" + kapierror "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/wait" clusterdiags "github.com/openshift/origin/pkg/diagnostics/cluster" diagtype "github.com/openshift/origin/pkg/diagnostics/types" @@ -27,7 +28,7 @@ func TestDiagNodeConditions(t *testing.T) { } nodeDiag := clusterdiags.NodeDefinitions{KubeClient: client} err = wait.Poll(200*time.Millisecond, 5*time.Second, func() (bool, error) { - if _, err := client.Core().Nodes().Get(nodeConfig.NodeName); kapierror.IsNotFound(err) { + if _, err := client.Core().Nodes().Get(nodeConfig.NodeName, metav1.GetOptions{}); kapierror.IsNotFound(err) { return false, nil } return true, err @@ -46,7 +47,7 @@ func TestDiagNodeConditions(t *testing.T) { // Make the node unschedulable and verify diagnostics notices err = wait.Poll(200*time.Millisecond, time.Second, func() (bool, error) { - node, err := client.Core().Nodes().Get(nodeConfig.NodeName) + node, err := client.Core().Nodes().Get(nodeConfig.NodeName, metav1.GetOptions{}) if err != nil { return false, err } @@ -78,7 +79,7 @@ func TestDiagNodeConditions(t *testing.T) { // Next create a node and leave it in NotReady state. Should get a warning // about that, plus the previous error as there are still no nodes available. - _, err = client.Core().Nodes().Create(&kapi.Node{ObjectMeta: kapi.ObjectMeta{Name: "test-node"}}) + _, err = client.Core().Nodes().Create(&kapi.Node{ObjectMeta: metav1.ObjectMeta{Name: "test-node"}}) if err != nil { t.Fatalf("expected no errors creating a node: %#v", err) } diff --git a/test/integration/discovery_test.go b/test/integration/discovery_test.go index f2262177b94d..2f02f93277d1 100644 --- a/test/integration/discovery_test.go +++ b/test/integration/discovery_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" configapi "github.com/openshift/origin/pkg/cmd/server/api" testutil "github.com/openshift/origin/test/util" @@ -31,7 +31,7 @@ func TestDiscoveryGroupVersions(t *testing.T) { } for _, resource := range resources { - gv, err := unversioned.ParseGroupVersion(resource.GroupVersion) + gv, err := schema.ParseGroupVersion(resource.GroupVersion) if err != nil { continue } @@ -45,12 +45,12 @@ func TestDiscoveryGroupVersions(t *testing.T) { expectedGroupVersions := sets.NewString() for group, versions := range configapi.KubeAPIGroupsToAllowedVersions { for _, version := range versions { - expectedGroupVersions.Insert(unversioned.GroupVersion{Group: group, Version: version}.String()) + expectedGroupVersions.Insert(schema.GroupVersion{Group: group, Version: version}.String()) } } for group, versions := range configapi.OriginAPIGroupsToAllowedVersions { for _, version := range versions { - expectedGroupVersions.Insert(unversioned.GroupVersion{Group: group, Version: version}.String()) + expectedGroupVersions.Insert(schema.GroupVersion{Group: group, Version: version}.String()) } } diff --git a/test/integration/dns_test.go b/test/integration/dns_test.go index 89680fc89ffa..787784d3394c 100644 --- a/test/integration/dns_test.go +++ b/test/integration/dns_test.go @@ -9,9 +9,10 @@ import ( "time" cmdutil "github.com/openshift/origin/pkg/cmd/util" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + waitutil "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - waitutil "k8s.io/kubernetes/pkg/util/wait" "github.com/miekg/dns" testutil "github.com/openshift/origin/test/util" @@ -80,7 +81,7 @@ func TestDNS(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - kubernetesService, err := client.Core().Services(kapi.NamespaceDefault).Get("kubernetes") + kubernetesService, err := client.Core().Services(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -96,8 +97,8 @@ func TestDNS(t *testing.T) { } for { - if _, err := client.Core().Services(kapi.NamespaceDefault).Create(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + if _, err := client.Core().Services(metav1.NamespaceDefault).Create(&kapi.Service{ + ObjectMeta: metav1.ObjectMeta{ Name: "headless", }, Spec: kapi.ServiceSpec{ @@ -112,8 +113,8 @@ func TestDNS(t *testing.T) { } t.Fatalf("unexpected error: %v", err) } - if _, err := client.Core().Endpoints(kapi.NamespaceDefault).Create(&kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + if _, err := client.Core().Endpoints(metav1.NamespaceDefault).Create(&kapi.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ Name: "headless", }, Subsets: []kapi.EndpointSubset{{ @@ -130,8 +131,8 @@ func TestDNS(t *testing.T) { headlessIP := net.ParseIP("172.0.0.1") headlessIPHash := getHash(headlessIP.String()) - if _, err := client.Core().Services(kapi.NamespaceDefault).Create(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + if _, err := client.Core().Services(metav1.NamespaceDefault).Create(&kapi.Service{ + ObjectMeta: metav1.ObjectMeta{ Name: "headless2", }, Spec: kapi.ServiceSpec{ @@ -141,8 +142,8 @@ func TestDNS(t *testing.T) { }); err != nil { t.Fatalf("unexpected error: %v", err) } - if _, err := client.Core().Endpoints(kapi.NamespaceDefault).Create(&kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + if _, err := client.Core().Endpoints(metav1.NamespaceDefault).Create(&kapi.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ Name: "headless2", }, Subsets: []kapi.EndpointSubset{{ diff --git a/test/integration/dockerregistry_pullthrough_test.go b/test/integration/dockerregistry_pullthrough_test.go index d436328b156f..690015aa9532 100644 --- a/test/integration/dockerregistry_pullthrough_test.go +++ b/test/integration/dockerregistry_pullthrough_test.go @@ -15,8 +15,8 @@ import ( "github.com/docker/distribution/digest" "github.com/docker/distribution/manifest/schema1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "github.com/openshift/origin/pkg/cmd/dockerregistry" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -217,7 +217,7 @@ func TestPullThroughInsecure(t *testing.T) { srvurl, _ := url.Parse(server.URL) stream := imageapi.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: testutil.Namespace(), Name: "myimagestream", Annotations: map[string]string{ @@ -247,7 +247,7 @@ func TestPullThroughInsecure(t *testing.T) { t.Fatalf("imported unexpected number of images (%d != 1)", len(isi.Status.Images)) } for i, image := range isi.Status.Images { - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Fatalf("unexpected status %d: %#v", i, image.Status) } @@ -261,7 +261,7 @@ func TestPullThroughInsecure(t *testing.T) { } } - istream, err := adminClient.ImageStreams(stream.Namespace).Get(stream.Name) + istream, err := adminClient.ImageStreams(stream.Namespace).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -298,7 +298,7 @@ func TestPullThroughInsecure(t *testing.T) { } } - istream, err = adminClient.ImageStreams(stream.Namespace).Get(stream.Name) + istream, err = adminClient.ImageStreams(stream.Namespace).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -316,7 +316,7 @@ func TestPullThroughInsecure(t *testing.T) { } } - istream, err = adminClient.ImageStreams(stream.Namespace).Get(stream.Name) + istream, err = adminClient.ImageStreams(stream.Namespace).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatal(err) } diff --git a/test/integration/etcd_storage_path_test.go b/test/integration/etcd_storage_path_test.go index d88f0bb331b0..a26ca2e81cff 100644 --- a/test/integration/etcd_storage_path_test.go +++ b/test/integration/etcd_storage_path_test.go @@ -10,15 +10,16 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/sets" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/util/flowcontrol" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/diff" - "k8s.io/kubernetes/pkg/util/flowcontrol" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/api/latest" osclientcmd "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -33,11 +34,11 @@ import ( ) // Etcd data for all persisted objects. -var etcdStorageData = map[unversioned.GroupVersionResource]struct { - stub string // Valid JSON stub to use during create - prerequisites []prerequisite // Optional, ordered list of JSON objects to create before stub - expectedEtcdPath string // Expected location of object in etcd, do not use any variables, constants, etc to derive this value - always supply the full raw string - expectedGVK *unversioned.GroupVersionKind // The GVK that we expect this object to be stored as - leave this nil to use the default +var etcdStorageData = map[schema.GroupVersionResource]struct { + stub string // Valid JSON stub to use during create + prerequisites []prerequisite // Optional, ordered list of JSON objects to create before stub + expectedEtcdPath string // Expected location of object in etcd, do not use any variables, constants, etc to derive this value - always supply the full raw string + expectedGVK *schema.GroupVersionKind // The GVK that we expect this object to be stored as - leave this nil to use the default }{ // github.com/openshift/origin/pkg/authorization/api/v1 gvr("", "v1", "clusterpolicybindings"): { // no stub because cannot create one of these but it always exists @@ -772,13 +773,13 @@ func TestEtcdStoragePath(t *testing.T) { t.Fatalf("error creating client: %#v", err) } - if _, err := kubeClient.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: testNamespace}}); err != nil { + if _, err := kubeClient.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: testNamespace}}); err != nil { t.Fatalf("error creating test namespace: %#v", err) } kindSeen := sets.NewString() - etcdSeen := map[unversioned.GroupVersionResource]empty{} - ephemeralSeen := map[unversioned.GroupVersionResource]empty{} + etcdSeen := map[schema.GroupVersionResource]empty{} + ephemeralSeen := map[schema.GroupVersionResource]empty{} for gvk, apiType := range kapi.Scheme.AllKnownTypes() { // we do not care about internal objects or lists // TODO make sure this is always true @@ -908,8 +909,8 @@ type metaObject struct { } `json:"metadata,omitempty" protobuf:"bytes,3,opt,name=metadata"` } -func (obj *metaObject) getGVK() unversioned.GroupVersionKind { - return unversioned.FromAPIVersionAndKind(obj.APIVersion, obj.Kind) +func (obj *metaObject) getGVK() schema.GroupVersionKind { + return schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind) } func (obj *metaObject) isEmpty() bool { @@ -917,7 +918,7 @@ func (obj *metaObject) isEmpty() bool { } type prerequisite struct { - gvrData unversioned.GroupVersionResource + gvrData schema.GroupVersionResource stub string } @@ -928,16 +929,16 @@ type cleanupData struct { mapping *meta.RESTMapping } -func gvr(g, v, r string) unversioned.GroupVersionResource { - return unversioned.GroupVersionResource{Group: g, Version: v, Resource: r} +func gvr(g, v, r string) schema.GroupVersionResource { + return schema.GroupVersionResource{Group: g, Version: v, Resource: r} } -func gvkP(g, v, k string) *unversioned.GroupVersionKind { - return &unversioned.GroupVersionKind{Group: g, Version: v, Kind: k} +func gvkP(g, v, k string) *schema.GroupVersionKind { + return &schema.GroupVersionKind{Group: g, Version: v, Kind: k} } -func createEphemeralWhiteList(gvrs ...unversioned.GroupVersionResource) map[unversioned.GroupVersionResource]empty { - ephemeral := map[unversioned.GroupVersionResource]empty{} +func createEphemeralWhiteList(gvrs ...schema.GroupVersionResource) map[schema.GroupVersionResource]empty { + ephemeral := map[schema.GroupVersionResource]empty{} for _, gvResource := range gvrs { if _, ok := ephemeral[gvResource]; ok { panic("invalid ephemeral whitelist contains duplicate keys") @@ -960,7 +961,7 @@ func keyStringer(i interface{}) string { switch key := i.(type) { case string: return base + key - case unversioned.GroupVersionResource: + case schema.GroupVersionResource: return base + key.String() default: panic("unexpected type") @@ -973,7 +974,7 @@ type allClient struct { backoff restclient.BackoffManager } -func (c *allClient) verb(verb string, gvk unversioned.GroupVersionKind) (*restclient.Request, error) { +func (c *allClient) verb(verb string, gvk schema.GroupVersionKind) (*restclient.Request, error) { apiPath := "/apis" switch { case latest.OriginLegacyKind(gvk): @@ -1098,7 +1099,7 @@ func createSerializers(config restclient.ContentConfig) (*restclient.Serializers info = mediaTypes[0] } - internalGV := unversioned.GroupVersions{ + internalGV := schema.GroupVersions{ { Group: config.GroupVersion.Group, Version: runtime.APIVersionInternal, diff --git a/test/integration/extension_apiserver_test.go b/test/integration/extension_apiserver_test.go index 8c181d3c0d5b..e6d9b61b1c6d 100644 --- a/test/integration/extension_apiserver_test.go +++ b/test/integration/extension_apiserver_test.go @@ -4,9 +4,10 @@ import ( "testing" "time" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - utilwait "k8s.io/kubernetes/pkg/util/wait" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" @@ -27,7 +28,7 @@ func TestExtensionAPIServerConfigMap(t *testing.T) { var configmap *kapi.ConfigMap err = utilwait.PollImmediate(50*time.Millisecond, 10*time.Second, func() (bool, error) { - configmap, err = clusterAdminKubeClient.Core().ConfigMaps(kapi.NamespaceSystem).Get("extension-apiserver-authentication") + configmap, err = clusterAdminKubeClient.Core().ConfigMaps(metav1.NamespaceSystem).Get("extension-apiserver-authentication", metav1.GetOptions{}) if err == nil { return true, nil } diff --git a/test/integration/extensions_api_deletion_test.go b/test/integration/extensions_api_deletion_test.go index f1fd41c5b9ab..bf823c5b7f8d 100644 --- a/test/integration/extensions_api_deletion_test.go +++ b/test/integration/extensions_api_deletion_test.go @@ -7,12 +7,13 @@ import ( testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" expapi "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/util/wait" ) func TestExtensionsAPIDeletion(t *testing.T) { @@ -55,11 +56,19 @@ func TestExtensionsAPIDeletion(t *testing.T) { // create the extensions resources as the project admin percent := int32(10) hpa := autoscaling.HorizontalPodAutoscaler{ - ObjectMeta: kapi.ObjectMeta{Name: "test-hpa"}, + ObjectMeta: metav1.ObjectMeta{Name: "test-hpa"}, Spec: autoscaling.HorizontalPodAutoscalerSpec{ - ScaleTargetRef: autoscaling.CrossVersionObjectReference{Kind: "DeploymentConfig", Name: "frontend", APIVersion: "v1"}, - MaxReplicas: 10, - TargetCPUUtilizationPercentage: &percent, + ScaleTargetRef: autoscaling.CrossVersionObjectReference{Kind: "DeploymentConfig", Name: "frontend", APIVersion: "v1"}, + MaxReplicas: 10, + Metrics: []autoscaling.MetricSpec{ + { + Type: autoscaling.ResourceMetricSourceType, + Resource: &autoscaling.ResourceMetricSource{ + Name: kapi.ResourceCPU, + TargetAverageUtilization: &percent, + }, + }, + }, }, } if _, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).Create(&hpa); err != nil { @@ -67,10 +76,10 @@ func TestExtensionsAPIDeletion(t *testing.T) { } job := batch.Job{ - ObjectMeta: kapi.ObjectMeta{Name: "test-job"}, + ObjectMeta: metav1.ObjectMeta{Name: "test-job"}, Spec: batch.JobSpec{ Template: kapi.PodTemplateSpec{ - ObjectMeta: kapi.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, Spec: kapi.PodSpec{ Containers: []kapi.Container{{Name: "baz", Image: "run"}}, RestartPolicy: kapi.RestartPolicyOnFailure, @@ -86,7 +95,7 @@ func TestExtensionsAPIDeletion(t *testing.T) { t.Fatalf("unexpected error deleting the project: %v", err) } err = wait.PollImmediate(1*time.Second, 30*time.Second, func() (bool, error) { - _, err := clusterAdminKubeClient.Core().Namespaces().Get(projName) + _, err := clusterAdminKubeClient.Core().Namespaces().Get(projName, metav1.GetOptions{}) if errors.IsNotFound(err) { return true, nil } @@ -96,12 +105,12 @@ func TestExtensionsAPIDeletion(t *testing.T) { t.Fatalf("unexpected error while waiting for project to delete: %v", err) } - if _, err := clusterAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).Get(hpa.Name); err == nil { + if _, err := clusterAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).Get(hpa.Name, metav1.GetOptions{}); err == nil { t.Fatalf("HPA object was still present after project was deleted!") } else if !errors.IsNotFound(err) { t.Fatalf("Error trying to get deleted HPA object (not a not-found error): %v", err) } - if _, err := clusterAdminKubeClient.Batch().Jobs(projName).Get(job.Name); err == nil { + if _, err := clusterAdminKubeClient.Batch().Jobs(projName).Get(job.Name, metav1.GetOptions{}); err == nil { t.Fatalf("Job object was still present after project was deleted!") } else if !errors.IsNotFound(err) { t.Fatalf("Error trying to get deleted Job object (not a not-found error): %v", err) diff --git a/test/integration/extensions_api_disabled_test.go b/test/integration/extensions_api_disabled_test.go index 2c10dda29c8a..d94e5df00d2f 100644 --- a/test/integration/extensions_api_disabled_test.go +++ b/test/integration/extensions_api_disabled_test.go @@ -3,14 +3,12 @@ package integration import ( "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - kapiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" expapi "k8s.io/kubernetes/pkg/apis/extensions" - extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - kclientset15 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" @@ -54,24 +52,23 @@ func TestExtensionsAPIDisabledAutoscaleBatchEnabled(t *testing.T) { if _, err := testserver.CreateNewProject(clusterAdminClient, *clusterAdminClientConfig, projName, "admin"); err != nil { t.Fatalf("unexpected error creating the project: %v", err) } - projectAdminClient, projectAdminKubeClient, projectAdminKubeConfig, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") + projectAdminClient, projectAdminKubeClient, _, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") if err != nil { t.Fatalf("unexpected error getting project admin client: %v", err) } - projectAdminKubeClient15 := kclientset15.NewForConfigOrDie(projectAdminKubeConfig) if err := testutil.WaitForPolicyUpdate(projectAdminClient, projName, "get", expapi.Resource("horizontalpodautoscalers"), true); err != nil { t.Fatalf("unexpected error waiting for policy update: %v", err) } validHPA := &autoscaling.HorizontalPodAutoscaler{ - ObjectMeta: kapi.ObjectMeta{Name: "myjob"}, + ObjectMeta: metav1.ObjectMeta{Name: "myjob"}, Spec: autoscaling.HorizontalPodAutoscalerSpec{ ScaleTargetRef: autoscaling.CrossVersionObjectReference{Name: "foo", Kind: "ReplicationController"}, MaxReplicas: 1, }, } validJob := &batch.Job{ - ObjectMeta: kapi.ObjectMeta{Name: "myjob"}, + ObjectMeta: metav1.ObjectMeta{Name: "myjob"}, Spec: batch.JobSpec{ Template: kapi.PodTemplateSpec{ Spec: kapi.PodSpec{ @@ -89,27 +86,21 @@ func TestExtensionsAPIDisabledAutoscaleBatchEnabled(t *testing.T) { } // make sure extensions API objects cannot be listed or created - if _, err := legacyAutoscalers.List(kapi.ListOptions{}); !errors.IsNotFound(err) { + if _, err := legacyAutoscalers.List(metav1.ListOptions{}); !errors.IsNotFound(err) { t.Fatalf("expected NotFound error listing HPA, got %v", err) } if _, err := legacyAutoscalers.Create(validHPA); !errors.IsNotFound(err) { t.Fatalf("expected NotFound error creating HPA, got %v", err) } - if _, err := projectAdminKubeClient15.Extensions().Jobs(projName).List(kapiv1.ListOptions{}); !errors.IsNotFound(err) { - t.Fatalf("expected NotFound error listing jobs, got %v", err) - } - if _, err := projectAdminKubeClient15.Extensions().Jobs(projName).Create(&extensions_v1beta1.Job{}); !errors.IsNotFound(err) { - t.Fatalf("expected NotFound error creating job, got %v", err) - } // make sure autoscaling and batch API objects can be listed and created - if _, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).List(kapi.ListOptions{}); err != nil { + if _, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %#v", err) } if _, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).Create(validHPA); err != nil { t.Fatalf("unexpected error: %#v", err) } - if _, err := projectAdminKubeClient.Batch().Jobs(projName).List(kapi.ListOptions{}); err != nil { + if _, err := projectAdminKubeClient.Batch().Jobs(projName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %#v", err) } if _, err := projectAdminKubeClient.Batch().Jobs(projName).Create(validJob); err != nil { @@ -134,12 +125,12 @@ func TestExtensionsAPIDisabledAutoscaleBatchEnabled(t *testing.T) { } // make sure the created objects got cleaned up by namespace deletion - if hpas, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).List(kapi.ListOptions{}); err != nil { + if hpas, err := projectAdminKubeClient.Autoscaling().HorizontalPodAutoscalers(projName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %#v", err) } else if len(hpas.Items) > 0 { t.Fatalf("expected 0 HPA objects, got %#v", hpas.Items) } - if jobs, err := projectAdminKubeClient.Batch().Jobs(projName).List(kapi.ListOptions{}); err != nil { + if jobs, err := projectAdminKubeClient.Batch().Jobs(projName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %#v", err) } else if len(jobs.Items) > 0 { t.Fatalf("expected 0 Job objects, got %#v", jobs.Items) @@ -183,11 +174,10 @@ func TestExtensionsAPIDisabled(t *testing.T) { if _, err := testserver.CreateNewProject(clusterAdminClient, *clusterAdminClientConfig, projName, "admin"); err != nil { t.Fatalf("unexpected error creating the project: %v", err) } - projectAdminClient, projectAdminKubeClient, projectAdminKubeConfig, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") + projectAdminClient, projectAdminKubeClient, _, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") if err != nil { t.Fatalf("unexpected error getting project admin client: %v", err) } - projectAdminKubeClient15 := kclientset15.NewForConfigOrDie(projectAdminKubeConfig) if err := testutil.WaitForPolicyUpdate(projectAdminClient, projName, "get", expapi.Resource("horizontalpodautoscalers"), true); err != nil { t.Fatalf("unexpected error waiting for policy update: %v", err) } @@ -199,18 +189,12 @@ func TestExtensionsAPIDisabled(t *testing.T) { } // make sure extensions API objects cannot be listed or created - if _, err := legacyAutoscalers.List(kapi.ListOptions{}); !errors.IsNotFound(err) { + if _, err := legacyAutoscalers.List(metav1.ListOptions{}); !errors.IsNotFound(err) { t.Fatalf("expected NotFound error listing HPA, got %v", err) } if _, err := legacyAutoscalers.Create(&autoscaling.HorizontalPodAutoscaler{}); !errors.IsNotFound(err) { t.Fatalf("expected NotFound error creating HPA, got %v", err) } - if _, err := projectAdminKubeClient15.Extensions().Jobs(projName).List(kapiv1.ListOptions{}); !errors.IsNotFound(err) { - t.Fatalf("expected NotFound error listing jobs, got %v", err) - } - if _, err := projectAdminKubeClient15.Extensions().Jobs(projName).Create(&extensions_v1beta1.Job{}); !errors.IsNotFound(err) { - t.Fatalf("expected NotFound error creating job, got %v", err) - } // Delete the containing project if err := testutil.DeleteAndWaitForNamespaceTermination(clusterAdminKubeClient, projName); err != nil { diff --git a/test/integration/front_proxy_test.go b/test/integration/front_proxy_test.go index bd50c7f7f9d5..c4ec465b91b8 100644 --- a/test/integration/front_proxy_test.go +++ b/test/integration/front_proxy_test.go @@ -13,9 +13,10 @@ import ( "sync" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apiserver/pkg/authentication/user" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/util/sets" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/cmd/server/admin" @@ -89,7 +90,7 @@ func TestFrontProxy(t *testing.T) { defer proxyServer.Close() t.Logf("front proxy server is on %v\n", proxyServer.URL) - w, err := clusterAdminClient.Projects().Watch(kapi.ListOptions{}) + w, err := clusterAdminClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatal(err) } @@ -98,7 +99,7 @@ func TestFrontProxy(t *testing.T) { listProjectsRoleName := "list-projects-role" if _, err := clusterAdminClient.ClusterRoles().Create( &authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{Name: listProjectsRoleName}, + ObjectMeta: metav1.ObjectMeta{Name: listProjectsRoleName}, Rules: []authorizationapi.PolicyRule{ authorizationapi.NewRule("list").Groups(projectapi.LegacyGroupName).Resources("projects").RuleOrDie(), }, @@ -117,7 +118,7 @@ func TestFrontProxy(t *testing.T) { // make it so that the user can list projects without any groups if _, err := clusterAdminClient.ClusterRoleBindings().Create( &authorizationapi.ClusterRoleBinding{ - ObjectMeta: kapi.ObjectMeta{Name: username + "-clusterrolebinding"}, + ObjectMeta: metav1.ObjectMeta{Name: username + "-clusterrolebinding"}, Subjects: []kapi.ObjectReference{ {Kind: authorizationapi.UserKind, Name: username}, }, diff --git a/test/integration/groups_test.go b/test/integration/groups_test.go index 47874ed81833..93a0796b6034 100644 --- a/test/integration/groups_test.go +++ b/test/integration/groups_test.go @@ -5,8 +5,9 @@ import ( "reflect" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" authorizationapi "github.com/openshift/origin/pkg/authorization/api" groupscmd "github.com/openshift/origin/pkg/cmd/admin/groups" @@ -40,7 +41,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { } // make sure we don't get back system groups - firstValerie, err := clusterAdminClient.Users().Get("valerie") + firstValerie, err := clusterAdminClient.Users().Get("valerie", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -50,7 +51,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { // make sure that user/~ returns groups for unbacked users expectedClusterAdminGroups := []string{"system:cluster-admins"} - clusterAdminUser, err := clusterAdminClient.Users().Get("~") + clusterAdminUser, err := clusterAdminClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -66,7 +67,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { } // make sure that user/~ doesn't get back system groups when it merges - secondValerie, err := valerieOpenshiftClient.Users().Get("~") + secondValerie, err := valerieOpenshiftClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -74,7 +75,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { t.Errorf("expected %v, got %v", secondValerie.Groups, valerieGroups) } - _, err = valerieOpenshiftClient.Projects().Get("empty") + _, err = valerieOpenshiftClient.Projects().Get("empty", metav1.GetOptions{}) if err == nil { t.Fatalf("expected error") } @@ -99,7 +100,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { } // make sure that user groups are respected for policy - _, err = valerieOpenshiftClient.Projects().Get("empty") + _, err = valerieOpenshiftClient.Projects().Get("empty", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -136,7 +137,7 @@ func TestBasicGroupManipulation(t *testing.T) { t.Errorf("unexpected error: %v", err) } - _, err = valerieOpenshiftClient.Projects().Get("empty") + _, err = valerieOpenshiftClient.Projects().Get("empty", metav1.GetOptions{}) if err == nil { t.Fatalf("expected error") } @@ -161,7 +162,7 @@ func TestBasicGroupManipulation(t *testing.T) { } // make sure that user groups are respected for policy - _, err = valerieOpenshiftClient.Projects().Get("empty") + _, err = valerieOpenshiftClient.Projects().Get("empty", metav1.GetOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -171,7 +172,7 @@ func TestBasicGroupManipulation(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - _, err = victorOpenshiftClient.Projects().Get("empty") + _, err = victorOpenshiftClient.Projects().Get("empty", metav1.GetOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -201,7 +202,7 @@ func TestGroupCommands(t *testing.T) { if err := newGroup.AddGroup(); err != nil { t.Fatalf("unexpected error: %v", err) } - group1, err := clusterAdminClient.Groups().Get("group1") + group1, err := clusterAdminClient.Groups().Get("group1", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -217,7 +218,7 @@ func TestGroupCommands(t *testing.T) { if err := modifyUsers.AddUsers(); err != nil { t.Fatalf("unexpected error: %v", err) } - group1, err = clusterAdminClient.Groups().Get("group1") + group1, err = clusterAdminClient.Groups().Get("group1", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -228,7 +229,7 @@ func TestGroupCommands(t *testing.T) { if err := modifyUsers.RemoveUsers(); err != nil { t.Fatalf("unexpected error: %v", err) } - group1, err = clusterAdminClient.Groups().Get("group1") + group1, err = clusterAdminClient.Groups().Get("group1", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/imagechange_buildtrigger_test.go b/test/integration/imagechange_buildtrigger_test.go index 6a5f7f66edfe..309cc1dd4788 100644 --- a/test/integration/imagechange_buildtrigger_test.go +++ b/test/integration/imagechange_buildtrigger_test.go @@ -9,8 +9,9 @@ import ( imageapi "github.com/openshift/origin/pkg/image/api" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watchapi "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - watchapi "k8s.io/kubernetes/pkg/watch" "testing" ) @@ -156,7 +157,7 @@ func customStrategy(kind, name string) buildapi.BuildStrategy { func imageChangeBuildConfig(name string, strategy buildapi.BuildStrategy) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: testutil.Namespace(), Labels: map[string]string{"testlabel": "testvalue"}, @@ -196,7 +197,7 @@ func imageChangeBuildConfigWithConfigChange(name string, strategy buildapi.Build func mockImageStream2(tag string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "test-image-trigger-repo"}, + ObjectMeta: metav1.ObjectMeta{Name: "test-image-trigger-repo"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "registry:8080/openshift/test-image-trigger", @@ -215,10 +216,10 @@ func mockImageStream2(tag string) *imageapi.ImageStream { func mockImageStreamMapping(stream, image, tag, reference string) *imageapi.ImageStreamMapping { // create a mapping to an image that doesn't exist return &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: stream}, + ObjectMeta: metav1.ObjectMeta{Name: stream}, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: image, }, DockerImageReference: reference, @@ -257,13 +258,13 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i t.Fatalf("Couldn't create BuildConfig: %v", err) } - buildWatch, err := projectAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{ResourceVersion: created.ResourceVersion}) + buildWatch, err := projectAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{ResourceVersion: created.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } defer buildWatch.Stop() - buildConfigWatch, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Watch(kapi.ListOptions{ResourceVersion: created.ResourceVersion}) + buildConfigWatch, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Watch(metav1.ListOptions{ResourceVersion: created.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to BuildConfigs %v", err) } @@ -290,20 +291,20 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i switch { case strategy.SourceStrategy != nil: if strategy.SourceStrategy.From.Name != "registry:8080/openshift/test-image-trigger:"+tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %s\n", "registry:8080/openshift/test-image-trigger:"+tag, strategy.SourceStrategy.From.Name, i, bc.Spec.Triggers[0].ImageChange) } case strategy.DockerStrategy != nil: if strategy.DockerStrategy.From.Name != "registry:8080/openshift/test-image-trigger:"+tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %s\n", "registry:8080/openshift/test-image-trigger:"+tag, strategy.DockerStrategy.From.Name, i, bc.Spec.Triggers[0].ImageChange) } case strategy.CustomStrategy != nil: if strategy.CustomStrategy.From.Name != "registry:8080/openshift/test-image-trigger:"+tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %s\n", "registry:8080/openshift/test-image-trigger:"+tag, strategy.CustomStrategy.From.Name, i, bc.Spec.Triggers[0].ImageChange) } } @@ -322,7 +323,7 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i // wait for build config to be updated <-buildConfigWatch.ResultChan() - updatedConfig, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + updatedConfig, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Couldn't get BuildConfig: %v", err) } @@ -333,13 +334,13 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i // trigger a build by posting a new image if err := projectAdminClient.ImageStreamMappings(testutil.Namespace()).Create(&imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: testutil.Namespace(), Name: imageStream.Name, }, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "ref-2-random", }, DockerImageReference: "registry:8080/openshift/test-image-trigger:ref-2-random", @@ -364,20 +365,20 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i switch { case strategy.SourceStrategy != nil: if strategy.SourceStrategy.From.Name != "registry:8080/openshift/test-image-trigger:ref-2-random" { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\trigger is %s\n", "registry:8080/openshift/test-image-trigger:ref-2-random", strategy.SourceStrategy.From.Name, i, bc.Spec.Triggers[3].ImageChange) } case strategy.DockerStrategy != nil: if strategy.DockerStrategy.From.Name != "registry:8080/openshift/test-image-trigger:ref-2-random" { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\trigger is %s\n", "registry:8080/openshift/test-image-trigger:ref-2-random", strategy.DockerStrategy.From.Name, i, bc.Spec.Triggers[3].ImageChange) } case strategy.CustomStrategy != nil: if strategy.CustomStrategy.From.Name != "registry:8080/openshift/test-image-trigger:ref-2-random" { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\trigger is %s\n", "registry:8080/openshift/test-image-trigger:ref-2-random", strategy.CustomStrategy.From.Name, i, bc.Spec.Triggers[3].ImageChange) } } @@ -403,7 +404,7 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i } <-buildConfigWatch.ResultChan() - updatedConfig, err = projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + updatedConfig, err = projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Couldn't get BuildConfig: %v", err) } @@ -416,7 +417,7 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) { defer testutil.DumpEtcdOnFailure(t) mockImageStream := func(name, tag string) *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "registry:5000/openshift/" + name, Tags: map[string]imageapi.TagReference{ @@ -433,10 +434,10 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) { } mockStreamMapping := func(name, tag string) *imageapi.ImageStreamMapping { return &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Tag: tag, Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: "registry:5000/openshift/" + name + ":" + tag, @@ -502,13 +503,13 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) { if err != nil { t.Fatalf("Couldn't create BuildConfig: %v", err) } - buildWatch, err := projectAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{ResourceVersion: created.ResourceVersion}) + buildWatch, err := projectAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{ResourceVersion: created.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to Builds %v", err) } defer buildWatch.Stop() - buildConfigWatch, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Watch(kapi.ListOptions{ResourceVersion: created.ResourceVersion}) + buildConfigWatch, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Watch(metav1.ListOptions{ResourceVersion: created.ResourceVersion}) if err != nil { t.Fatalf("Couldn't subscribe to BuildConfigs %v", err) } @@ -546,20 +547,20 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) { switch { case strategy.SourceStrategy != nil: if strategy.SourceStrategy.From.Name != "registry:5000/openshift/"+tc.name+":"+tc.tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %#v", "registry:5000/openshift/"+tc.name+":"+tc.tag, strategy.SourceStrategy.From.Name, i, bc.Spec.Triggers[tc.triggerIndex].ImageChange) } case strategy.DockerStrategy != nil: if strategy.DockerStrategy.From.Name != "registry:8080/openshift/"+tc.name+":"+tc.tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %#v", "registry:5000/openshift/"+tc.name+":"+tag, strategy.DockerStrategy.From.Name, i, bc.Spec.Triggers[tc.triggerIndex].ImageChange) } case strategy.CustomStrategy != nil: if strategy.CustomStrategy.From.Name != "registry:8080/openshift/"+tc.name+":"+tag { - i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name) - bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + i, _ := projectAdminClient.ImageStreams(testutil.Namespace()).Get(imageStream.Name, metav1.GetOptions{}) + bc, _ := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) t.Fatalf("Expected build with base image %s, got %s\n, imagerepo is %v\ntrigger is %#v", "registry:5000/openshift/"+tc.name+":"+tag, strategy.CustomStrategy.From.Name, i, bc.Spec.Triggers[tc.triggerIndex].ImageChange) } @@ -576,7 +577,7 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) { // wait for build config to be updated <-buildConfigWatch.ResultChan() - updatedConfig, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name) + updatedConfig, err := projectAdminClient.BuildConfigs(testutil.Namespace()).Get(config.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Couldn't get BuildConfig: %v", err) } diff --git a/test/integration/imageimporter_test.go b/test/integration/imageimporter_test.go index e913cc4e7c6f..95b72d6ea899 100644 --- a/test/integration/imageimporter_test.go +++ b/test/integration/imageimporter_test.go @@ -14,12 +14,12 @@ import ( "github.com/docker/distribution/registry/api/errcode" gocontext "golang.org/x/net/context" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/client/restclient" - kerrors "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/dockerregistry" @@ -50,7 +50,7 @@ func TestImageStreamImport(t *testing.T) { // can't give invalid image specs, should be invalid isi, err := c.ImageStreams(testutil.Namespace()).Import(&api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "doesnotexist", }, Spec: api.ImageStreamImportSpec{ @@ -64,13 +64,13 @@ func TestImageStreamImport(t *testing.T) { t.Fatalf("unexpected responses: %#v %#v %#v", err, isi, isi.Status.Import) } // does not create stream - if _, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist"); err == nil || !errors.IsNotFound(err) { + if _, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist", metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) { t.Fatal(err) } // import without committing isi, err = c.ImageStreams(testutil.Namespace()).Import(&api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "doesnotexist", }, Spec: api.ImageStreamImportSpec{ @@ -83,13 +83,13 @@ func TestImageStreamImport(t *testing.T) { t.Fatalf("unexpected responses: %v %#v %#v", err, isi, isi.Status.Import) } // does not create stream - if _, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist"); err == nil || !errors.IsNotFound(err) { + if _, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist", metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) { t.Fatal(err) } // import with commit isi, err = c.ImageStreams(testutil.Namespace()).Import(&api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "doesnotexist", }, Spec: api.ImageStreamImportSpec{ @@ -126,7 +126,7 @@ func TestImageStreamImport(t *testing.T) { } // stream should not have changed - stream2, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist") + stream2, err := c.ImageStreams(testutil.Namespace()).Get("doesnotexist", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -196,7 +196,7 @@ func testImageStreamImport(t *testing.T, c *client.Client, imageSize int64, imag } for i, image := range isi.Status.Images { - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Errorf("unexpected status %d: %#v", i, image.Status) } @@ -305,7 +305,7 @@ func testImageStreamImportWithPath(t *testing.T, reponame string) { } testImageStreamImport(t, c, imageSize, &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Spec: api.ImageStreamImportSpec{ @@ -325,7 +325,7 @@ func testImageStreamImportWithPath(t *testing.T, reponame string) { } testImageStreamImport(t, c, imageSize, &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test1", }, Spec: api.ImageStreamImportSpec{ @@ -399,7 +399,7 @@ func TestImageStreamImportAuthenticated(t *testing.T) { specFn := func(insecure bool, host1, host2 string) *api.ImageStreamImport { return &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: api.ImageStreamImportSpec{ Import: true, Images: []api.ImageImportSpec{ @@ -433,7 +433,7 @@ func TestImageStreamImportAuthenticated(t *testing.T) { t.Fatalf("unexpected responses: %#v", isi) } for i, image := range isi.Status.Images { - if image.Status.Status != unversioned.StatusFailure || image.Status.Reason != unversioned.StatusReasonUnauthorized { + if image.Status.Status != metav1.StatusFailure || image.Status.Reason != metav1.StatusReasonUnauthorized { t.Fatalf("import of image %d did not report unauthorized: %#v", i, image.Status) } } @@ -446,7 +446,7 @@ func TestImageStreamImportAuthenticated(t *testing.T) { // add secrets for subsequent checks _, err = kc.Core().Secrets(testutil.Namespace()).Create(&kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{Name: fmt.Sprintf("secret-%d", i+1)}, + ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("secret-%d", i+1)}, Type: kapi.SecretTypeDockerConfigJson, Data: map[string][]byte{ kapi.DockerConfigJsonKey: []byte(`{"auths":{"` + host + `/test/image/":{"auth":"` + base64.StdEncoding.EncodeToString([]byte("user:password")) + `"}}}`), @@ -466,11 +466,11 @@ func TestImageStreamImportAuthenticated(t *testing.T) { for i, image := range isi.Status.Images { switch i { case 1, 2: - if image.Status.Status != unversioned.StatusFailure || image.Status.Reason != unversioned.StatusReasonUnauthorized { + if image.Status.Status != metav1.StatusFailure || image.Status.Reason != metav1.StatusReasonUnauthorized { t.Fatalf("import of image %d did not report unauthorized: %#v", i, image.Status) } default: - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Fatalf("import of image %d did not succeed: %#v", i, image.Status) } } @@ -483,7 +483,7 @@ func TestImageStreamImportAuthenticated(t *testing.T) { t.Fatalf("unexpected image output: %#v", isi.Status.Images[0].Image) } - is, err := c.ImageStreams(testutil.Namespace()).Get("test") + is, err := c.ImageStreams(testutil.Namespace()).Get("test", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -552,7 +552,7 @@ func TestImageStreamImportTagsFromRepository(t *testing.T) { } importSpec := &api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: api.ImageStreamImportSpec{ Import: true, Repository: &api.RepositoryImportSpec{ @@ -580,7 +580,7 @@ func TestImageStreamImportTagsFromRepository(t *testing.T) { for i, image := range isi.Status.Repository.Images { switch i { case 1: - if image.Status.Status != unversioned.StatusSuccess { + if image.Status.Status != metav1.StatusSuccess { t.Errorf("import of image %d did not succeed: %#v", i, image.Status) } if image.Tag != "v1" { @@ -596,7 +596,7 @@ func TestImageStreamImportTagsFromRepository(t *testing.T) { t.Errorf("expected etcd digest as a name of the image (%s != %s)", image.Image.Name, etcdDigest) } default: - if image.Status.Status != unversioned.StatusFailure || image.Status.Reason != unversioned.StatusReasonInternalError { + if image.Status.Status != metav1.StatusFailure || image.Status.Reason != metav1.StatusReasonInternalError { t.Fatalf("import of image %d did not report internal server error: %#v", i, image.Status) } expectedTags := []string{"latest", "", "v2"}[i] @@ -606,7 +606,7 @@ func TestImageStreamImportTagsFromRepository(t *testing.T) { } } - is, err := c.ImageStreams(testutil.Namespace()).Get("test") + is, err := c.ImageStreams(testutil.Namespace()).Get("test", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -679,7 +679,7 @@ func TestImageStreamImportScheduled(t *testing.T) { // import with commit isi, err := c.ImageStreams(testutil.Namespace()).Import(&api.ImageStreamImport{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "test", }, Spec: api.ImageStreamImportSpec{ @@ -717,7 +717,7 @@ func TestImageStreamImportScheduled(t *testing.T) { <-written is := isi.Status.Import - w, err := c.ImageStreams(is.Namespace).Watch(kapi.ListOptions{ResourceVersion: is.ResourceVersion}) + w, err := c.ImageStreams(is.Namespace).Watch(metav1.ListOptions{ResourceVersion: is.ResourceVersion}) if err != nil { t.Fatal(err) } @@ -829,7 +829,7 @@ func TestImageStreamImportDockerHub(t *testing.T) { errs := []error{} for i, d := range imports.Status.Images { fromName := imports.Spec.Images[i].From.Name - if d.Status.Status != unversioned.StatusSuccess && fromName != "mysql/doesnotexistinanyform" { + if d.Status.Status != metav1.StatusSuccess && fromName != "mysql/doesnotexistinanyform" { errs = append(errs, fmt.Errorf("failed to import an image %s: %v", fromName, d.Status.Message)) } } @@ -839,7 +839,7 @@ func TestImageStreamImportDockerHub(t *testing.T) { t.Fatal(err) } - if imports.Status.Repository.Status.Status != unversioned.StatusSuccess || len(imports.Status.Repository.Images) != 3 || len(imports.Status.Repository.AdditionalTags) < 1 { + if imports.Status.Repository.Status.Status != metav1.StatusSuccess || len(imports.Status.Repository.Images) != 3 || len(imports.Status.Repository.AdditionalTags) < 1 { t.Errorf("unexpected repository: %#v", imports.Status.Repository) } if len(imports.Status.Images) != 4 { @@ -858,7 +858,7 @@ func TestImageStreamImportDockerHub(t *testing.T) { t.Errorf("unexpected object: %#v", d.Image) } d = imports.Status.Images[3] - if d.Image != nil || d.Status.Status != unversioned.StatusFailure || d.Status.Reason != "Unauthorized" { + if d.Image != nil || d.Status.Status != metav1.StatusFailure || d.Status.Reason != "Unauthorized" { t.Errorf("unexpected object: %#v", d) } } @@ -885,7 +885,7 @@ func TestImageStreamImportQuayIO(t *testing.T) { errs := []error{} for i, d := range imports.Status.Images { fromName := imports.Spec.Images[i].From.Name - if d.Status.Status != unversioned.StatusSuccess { + if d.Status.Status != metav1.StatusSuccess { if d.Status.Reason == "NotV2Registry" { t.Skipf("the server did not report as a v2 registry: %#v", d.Status) } @@ -942,7 +942,7 @@ func TestImageStreamImportRedHatRegistry(t *testing.T) { t.Fatalf("unexpected response: %#v", imports.Status.Images) } d := imports.Status.Images[0] - if d.Image == nil || d.Status.Status == unversioned.StatusFailure { + if d.Image == nil || d.Status.Status == metav1.StatusFailure { t.Errorf("unexpected object: %#v", d.Status) } @@ -965,7 +965,7 @@ func TestImageStreamImportRedHatRegistry(t *testing.T) { errs := []error{} for i, d := range imports.Status.Images { fromName := imports.Spec.Images[i].From.Name - if d.Status.Status != unversioned.StatusSuccess { + if d.Status.Status != metav1.StatusSuccess { errs = append(errs, fmt.Errorf("failed to import an image %s: %v", fromName, d.Status.Message)) } } diff --git a/test/integration/imagesigning_test.go b/test/integration/imagesigning_test.go index e4903c5abd03..0c34879a43e5 100644 --- a/test/integration/imagesigning_test.go +++ b/test/integration/imagesigning_test.go @@ -5,9 +5,10 @@ import ( "reflect" "testing" + kerrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - kerrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/diff" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/admin/policy" @@ -53,7 +54,7 @@ func TestImageAddSignature(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - image, err = adminClient.Images().Get(image.Name) + image, err = adminClient.Images().Get(image.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -114,7 +115,7 @@ func TestImageRemoveSignature(t *testing.T) { t.Fatalf("creating signature %d: unexpected error: %v", i, err) } signature := imageapi.ImageSignature{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Type: "unknown", @@ -126,7 +127,7 @@ func TestImageRemoveSignature(t *testing.T) { } } - image, err := userClient.Images().Get(image.Name) + image, err := userClient.Images().Get(image.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -167,7 +168,7 @@ func TestImageRemoveSignature(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if image, err = userClient.Images().Get(image.Name); err != nil { + if image, err = userClient.Images().Get(image.Name, metav1.GetOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } else if len(image.Signatures) != 2 { t.Fatalf("expected 2 signatures, not %d", len(image.Signatures)) @@ -185,7 +186,7 @@ func TestImageRemoveSignature(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if image, err = userClient.Images().Get(image.Name); err != nil { + if image, err = userClient.Images().Get(image.Name, metav1.GetOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } else if len(image.Signatures) != 0 { t.Fatalf("expected 2 signatures, not %d", len(image.Signatures)) diff --git a/test/integration/imagestream_admission_test.go b/test/integration/imagestream_admission_test.go index fb08111e5896..a54ec2d5c22f 100644 --- a/test/integration/imagestream_admission_test.go +++ b/test/integration/imagestream_admission_test.go @@ -6,13 +6,14 @@ import ( "testing" "time" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/resource" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" imagetest "github.com/openshift/origin/pkg/image/admission/testutil" @@ -39,7 +40,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { for i, name := range []string{imagetest.BaseImageWith1LayerDigest, imagetest.BaseImageWith2LayersDigest, imagetest.MiscImageDigest} { imageReference := fmt.Sprintf("openshift/test@%s", name) image := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: imageReference, @@ -47,7 +48,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { tag := fmt.Sprintf("tag%d", i+1) err := client.ImageStreamMappings(testutil.Namespace()).Create(&imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "src", }, Tag: tag, @@ -64,7 +65,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Logf("trying to create ImageStreamTag referencing isimage exceeding quota %v", limit) ist := &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag1", }, Tag: &imageapi.TagReference{ @@ -87,7 +88,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Logf("trying to create ImageStreamTag referencing isimage below quota %v", limit) ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag1", }, Tag: &imageapi.TagReference{ @@ -112,7 +113,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Logf("trying to create ImageStreamTag exceeding quota %v", limit) ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag2", }, Tag: &imageapi.TagReference{ @@ -133,7 +134,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Log("trying to create ImageStreamTag referencing isimage already referenced") ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag1again", }, Tag: &imageapi.TagReference{ @@ -151,7 +152,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Log("trying to create ImageStreamTag in a new image stream") ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "new:misc", }, Tag: &imageapi.TagReference{ @@ -171,7 +172,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Logf("trying to create ImageStreamTag referencing istag below quota %v", limit) ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag2", }, Tag: &imageapi.TagReference{ @@ -196,7 +197,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Logf("trying to create ImageStreamTag referencing istag exceeding quota %v", limit) ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag3", }, Tag: &imageapi.TagReference{ @@ -217,7 +218,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { t.Log("trying to create ImageStreamTag referencing istag already referenced") ist = &imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "dest:tag2again", }, Tag: &imageapi.TagReference{ @@ -241,7 +242,7 @@ func TestImageStreamAdmitSpecUpdate(t *testing.T) { for i, name := range []string{imagetest.BaseImageWith1LayerDigest, imagetest.BaseImageWith2LayersDigest} { imageReference := fmt.Sprintf("openshift/test@%s", name) image := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: imageReference, @@ -249,7 +250,7 @@ func TestImageStreamAdmitSpecUpdate(t *testing.T) { tag := fmt.Sprintf("tag%d", i+1) err := client.ImageStreamMappings(testutil.Namespace()).Create(&imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "src", }, Tag: tag, @@ -306,7 +307,7 @@ func TestImageStreamAdmitSpecUpdate(t *testing.T) { } t.Logf("adding new tag to image stream spec exceeding limit %v", limit) - is, err := client.ImageStreams(testutil.Namespace()).Get("is") + is, err := client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -331,7 +332,7 @@ func TestImageStreamAdmitSpecUpdate(t *testing.T) { } t.Logf("re-tagging the image under different tag") - is, err = client.ImageStreams(testutil.Namespace()).Get("is") + is, err = client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -356,7 +357,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { for _, name := range []string{imagetest.BaseImageWith1LayerDigest, imagetest.BaseImageWith2LayersDigest} { imageReference := fmt.Sprintf("openshift/test@%s", name) image := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, DockerImageReference: imageReference, @@ -383,7 +384,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { } t.Logf("adding new tag to image stream status exceeding limit %v", limit) - is, err := client.ImageStreams(testutil.Namespace()).Get("is") + is, err := client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -409,7 +410,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { limit = bumpLimit(t, lrClient, limitRangeName, imageapi.ResourceImageStreamImages, "1") t.Logf("adding new tag to image stream status below limit %v", limit) - is, err = client.ImageStreams(testutil.Namespace()).Get("is") + is, err = client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -427,7 +428,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { } t.Logf("adding new tag to image stream status exceeding limit %v", limit) - is, err = client.ImageStreams(testutil.Namespace()).Get("is") + is, err = client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -451,7 +452,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { } t.Logf("re-tagging the image under different tag") - is, err = client.ImageStreams(testutil.Namespace()).Get("is") + is, err = client.ImageStreams(testutil.Namespace()).Get("is", metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -469,7 +470,7 @@ func TestImageStreamAdmitStatusUpdate(t *testing.T) { } } -func setupImageStreamAdmissionTest(t *testing.T) (*kclientset.Clientset, *client.Client) { +func setupImageStreamAdmissionTest(t *testing.T) (kclientset.Interface, *client.Client) { testutil.RequireEtcd(t) _, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() @@ -521,7 +522,7 @@ func errForbiddenWithRetry(err error) bool { // a first usage refresh func createResourceQuota(t *testing.T, rqClient kcoreclient.ResourceQuotaInterface, quotaName string, hard kapi.ResourceList) *kapi.ResourceQuota { rq := &kapi.ResourceQuota{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: quotaName, }, Spec: kapi.ResourceQuotaSpec{ @@ -544,7 +545,7 @@ func createResourceQuota(t *testing.T, rqClient kcoreclient.ResourceQuotaInterfa // bumpQuota modifies hard spec of quota object with the given value. It returns modified hard spec. func bumpQuota(t *testing.T, rqs kcoreclient.ResourceQuotaInterface, quotaName string, resourceName kapi.ResourceName, value int64) kapi.ResourceList { t.Logf("bump the quota %s to %s=%d", quotaName, resourceName, value) - rq, err := rqs.Get(quotaName) + rq, err := rqs.Get(quotaName, metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -568,7 +569,7 @@ func bumpQuota(t *testing.T, rqs kcoreclient.ResourceQuotaInterface, quotaName s // object will be created in current namespace. func createLimitRangeOfType(t *testing.T, lrClient kcoreclient.LimitRangeInterface, limitRangeName string, limitType kapi.LimitType, maxLimits kapi.ResourceList) *kapi.LimitRange { lr := &kapi.LimitRange{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: limitRangeName, }, Spec: kapi.LimitRangeSpec{ @@ -591,7 +592,7 @@ func createLimitRangeOfType(t *testing.T, lrClient kcoreclient.LimitRangeInterfa func bumpLimit(t *testing.T, lrClient kcoreclient.LimitRangeInterface, limitRangeName string, resourceName kapi.ResourceName, limit string) kapi.ResourceList { t.Logf("bump a limit on resource %q to %s", resourceName, limit) - lr, err := lrClient.Get(limitRangeName) + lr, err := lrClient.Get(limitRangeName, metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -629,7 +630,7 @@ func newImageStreamWithSpecTags(name string, tags map[string]kapi.ObjectReferenc specTags[tag] = imageapi.TagReference{Name: tag, From: &ref} } return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + ObjectMeta: metav1.ObjectMeta{Name: name}, Spec: imageapi.ImageStreamSpec{Tags: specTags}, } diff --git a/test/integration/imagestream_test.go b/test/integration/imagestream_test.go index 09df263cf4bb..59c140e99601 100644 --- a/test/integration/imagestream_test.go +++ b/test/integration/imagestream_test.go @@ -6,9 +6,10 @@ import ( "reflect" "testing" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/diff" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/util/diff" deployapi "github.com/openshift/origin/pkg/deploy/api" stratsupport "github.com/openshift/origin/pkg/deploy/strategy/support" @@ -35,7 +36,7 @@ func TestImageStreamList(t *testing.T) { t.Errorf("unexpected error: %v", err) } - builds, err := clusterAdminClient.ImageStreams(testutil.Namespace()).List(kapi.ListOptions{}) + builds, err := clusterAdminClient.ImageStreams(testutil.Namespace()).List(metav1.ListOptions{}) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -45,7 +46,7 @@ func TestImageStreamList(t *testing.T) { } func mockImageStream() *imageapi.ImageStream { - return &imageapi.ImageStream{ObjectMeta: kapi.ObjectMeta{Name: "test"}} + return &imageapi.ImageStream{ObjectMeta: metav1.ObjectMeta{Name: "test"}} } func TestImageStreamCreate(t *testing.T) { @@ -79,7 +80,7 @@ func TestImageStreamCreate(t *testing.T) { t.Errorf("Unexpected empty image Name %v", expected) } - actual, err := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name) + actual, err := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -87,7 +88,7 @@ func TestImageStreamCreate(t *testing.T) { t.Errorf("unexpected object: %s", diff.ObjectDiff(expected, actual)) } - streams, err := clusterAdminClient.ImageStreams(testutil.Namespace()).List(kapi.ListOptions{}) + streams, err := clusterAdminClient.ImageStreams(testutil.Namespace()).List(metav1.ListOptions{}) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -125,10 +126,10 @@ func TestImageStreamMappingCreate(t *testing.T) { // create a mapping to an image that doesn't exist mapping := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: stream.Name}, + ObjectMeta: metav1.ObjectMeta{Name: stream.Name}, Tag: "newer", Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "image1", }, DockerImageReference: "some/other/name", @@ -145,7 +146,7 @@ func TestImageStreamMappingCreate(t *testing.T) { // create an image directly image := &imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{Name: "image2"}, + ObjectMeta: metav1.ObjectMeta{Name: "image2"}, DockerImageMetadata: imageapi.DockerImage{ Config: &imageapi.DockerConfig{ Env: []string{"A=B"}, @@ -166,7 +167,7 @@ func TestImageStreamMappingCreate(t *testing.T) { // verify that image stream mappings cannot mutate / overwrite the image (images are immutable) mapping = &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: stream.Name}, + ObjectMeta: metav1.ObjectMeta{Name: stream.Name}, Tag: "newest", Image: *image, } @@ -174,7 +175,7 @@ func TestImageStreamMappingCreate(t *testing.T) { if err := clusterAdminClient.ImageStreamMappings(testutil.Namespace()).Create(mapping); err != nil { t.Fatalf("unexpected error: %v", err) } - image, err = clusterAdminClient.Images().Get(image.Name) + image, err = clusterAdminClient.Images().Get(image.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -183,7 +184,7 @@ func TestImageStreamMappingCreate(t *testing.T) { } // ensure the correct tags are set - updated, err := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name) + updated, err := clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -210,7 +211,7 @@ func TestImageStreamMappingCreate(t *testing.T) { // verify that image stream mappings can use the same image for different tags image.ResourceVersion = "" mapping = &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: stream.Name}, + ObjectMeta: metav1.ObjectMeta{Name: stream.Name}, Tag: "anothertag", Image: *image, } @@ -218,7 +219,7 @@ func TestImageStreamMappingCreate(t *testing.T) { t.Fatalf("unexpected error: %v", err) } // ensure the correct tags are set - updated, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name) + updated, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -255,7 +256,7 @@ func TestImageStreamMappingCreate(t *testing.T) { // try an update with an incorrect resource version if _, err := clusterAdminClient.ImageStreamTags(testutil.Namespace()).Update(&imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: stream.Namespace, Name: stream.Name + ":brandnew", ResourceVersion: fromTag.ResourceVersion + "0"}, + ObjectMeta: metav1.ObjectMeta{Namespace: stream.Namespace, Name: stream.Name + ":brandnew", ResourceVersion: fromTag.ResourceVersion + "0"}, Tag: &imageapi.TagReference{ From: &kapi.ObjectReference{ Kind: "ImageStreamTag", @@ -268,7 +269,7 @@ func TestImageStreamMappingCreate(t *testing.T) { // update and create a new tag fromTag, err = clusterAdminClient.ImageStreamTags(testutil.Namespace()).Update(&imageapi.ImageStreamTag{ - ObjectMeta: kapi.ObjectMeta{Namespace: stream.Namespace, Name: stream.Name + ":brandnew", ResourceVersion: fromTag.ResourceVersion}, + ObjectMeta: metav1.ObjectMeta{Namespace: stream.Namespace, Name: stream.Name + ":brandnew", ResourceVersion: fromTag.ResourceVersion}, Tag: &imageapi.TagReference{ From: &kapi.ObjectReference{ Kind: "ImageStreamTag", @@ -322,7 +323,7 @@ func TestImageStreamWithoutDockerImageConfig(t *testing.T) { } image := imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: imagetest.BaseImageWith1LayerDigest, }, DockerImageMetadata: imageapi.DockerImage{ @@ -337,7 +338,7 @@ func TestImageStreamWithoutDockerImageConfig(t *testing.T) { // create a mapping to an image that doesn't exist mapping := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: stream.Name, }, Tag: "newer", @@ -347,7 +348,7 @@ func TestImageStreamWithoutDockerImageConfig(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - img, err := clusterAdminClient.Images().Get(image.Name) + img, err := clusterAdminClient.Images().Get(image.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -410,7 +411,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { } // can tag to a stream that exists - exec := stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset, os.Stdout, kapi.Codecs.UniversalDecoder()) + exec := stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset.Core(), os.Stdout, kapi.Codecs.UniversalDecoder()) err = exec.Execute( &deployapi.LifecycleHook{ TagImages: []deployapi.TagImageHook{ @@ -421,7 +422,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { }, }, &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, Spec: kapi.ReplicationControllerSpec{ Template: &kapi.PodTemplateSpec{ Spec: kapi.PodSpec{ @@ -440,7 +441,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { if err != nil { t.Fatal(err) } - if stream, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name); err != nil { + if stream, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get(stream.Name, metav1.GetOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } if tag, ok := stream.Spec.Tags["test"]; !ok || tag.From == nil || tag.From.Name != "someimage:other" { @@ -448,7 +449,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { } // can execute a second time the same tag and it should work - exec = stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset, os.Stdout, kapi.Codecs.UniversalDecoder()) + exec = stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset.Core(), os.Stdout, kapi.Codecs.UniversalDecoder()) err = exec.Execute( &deployapi.LifecycleHook{ TagImages: []deployapi.TagImageHook{ @@ -459,7 +460,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { }, }, &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, Spec: kapi.ReplicationControllerSpec{ Template: &kapi.PodTemplateSpec{ Spec: kapi.PodSpec{ @@ -480,7 +481,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { } // can lifecycle tag a new image stream - exec = stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset, os.Stdout, kapi.Codecs.UniversalDecoder()) + exec = stratsupport.NewHookExecutor(nil, clusterAdminClient, clusterAdminKubeClientset.Core(), os.Stdout, kapi.Codecs.UniversalDecoder()) err = exec.Execute( &deployapi.LifecycleHook{ TagImages: []deployapi.TagImageHook{ @@ -491,7 +492,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { }, }, &kapi.ReplicationController{ - ObjectMeta: kapi.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: "rc-1", Namespace: testutil.Namespace()}, Spec: kapi.ReplicationControllerSpec{ Template: &kapi.PodTemplateSpec{ Spec: kapi.PodSpec{ @@ -510,7 +511,7 @@ func TestImageStreamTagLifecycleHook(t *testing.T) { if err != nil { t.Fatal(err) } - if stream, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get("test2"); err != nil { + if stream, err = clusterAdminClient.ImageStreams(testutil.Namespace()).Get("test2", metav1.GetOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } if tag, ok := stream.Spec.Tags["test"]; !ok || tag.From == nil || tag.From.Name != "someimage:other" { diff --git a/test/integration/ingressip_test.go b/test/integration/ingressip_test.go index cfe4ed81b5df..14a6cdd6fda0 100644 --- a/test/integration/ingressip_test.go +++ b/test/integration/ingressip_test.go @@ -6,12 +6,13 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/cache" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/watch" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/service/controller/ingressip" @@ -53,11 +54,11 @@ func TestIngressIPAllocation(t *testing.T) { t.Log("start informer to watch for sentinel") _, informerController := cache.NewInformer( &cache.ListWatch{ - ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { - return kc.Core().Services(kapi.NamespaceAll).List(options) + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return kc.Core().Services(metav1.NamespaceAll).List(options) }, - WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { - return kc.Core().Services(kapi.NamespaceAll).Watch(options) + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return kc.Core().Services(metav1.NamespaceAll).Watch(options) }, }, &kapi.Service{}, @@ -90,7 +91,7 @@ func TestIngressIPAllocation(t *testing.T) { // Validate that all services of type load balancer have a unique // ingress ip and corresponding external ip. - services, err := kc.Core().Services(kapi.NamespaceDefault).List(kapi.ListOptions{}) + services, err := kc.Core().Services(metav1.NamespaceDefault).List(metav1.ListOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -153,7 +154,7 @@ func generateServiceEvents(t *testing.T, kc kclientset.Interface) { case updateOp: targetIndex := rand.Intn(len(services)) name := services[targetIndex].Name - s, err := kc.Core().Services(kapi.NamespaceDefault).Get(name) + s, err := kc.Core().Services(metav1.NamespaceDefault).Get(name, metav1.GetOptions{}) if err != nil { continue } @@ -164,7 +165,7 @@ func generateServiceEvents(t *testing.T, kc kclientset.Interface) { } else { s.Spec.Type = kapi.ServiceTypeLoadBalancer } - s, err = kc.Core().Services(kapi.NamespaceDefault).Update(s) + s, err = kc.Core().Services(metav1.NamespaceDefault).Update(s) if err != nil { continue } @@ -172,7 +173,7 @@ func generateServiceEvents(t *testing.T, kc kclientset.Interface) { case deleteOp: targetIndex := rand.Intn(len(services)) name := services[targetIndex].Name - err := kc.Core().Services(kapi.NamespaceDefault).Delete(name, nil) + err := kc.Core().Services(metav1.NamespaceDefault).Delete(name, nil) if err != nil { continue } @@ -200,7 +201,7 @@ func createService(kc kclientset.Interface, name string, typeLoadBalancer bool) serviceType = kapi.ServiceTypeLoadBalancer } service := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "service-", Name: name, }, @@ -212,5 +213,5 @@ func createService(kc kclientset.Interface, name string, typeLoadBalancer bool) }}, }, } - return kc.Core().Services(kapi.NamespaceDefault).Create(service) + return kc.Core().Services(metav1.NamespaceDefault).Create(service) } diff --git a/test/integration/login_test.go b/test/integration/login_test.go index 104139f84323..e2416c652b48 100644 --- a/test/integration/login_test.go +++ b/test/integration/login_test.go @@ -6,8 +6,9 @@ import ( "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "github.com/openshift/origin/pkg/client" newproject "github.com/openshift/origin/pkg/cmd/admin/project" @@ -66,7 +67,7 @@ func TestLogin(t *testing.T) { } oClient, _ := client.New(loginOptions.Config) - p, err := oClient.Projects().Get(project) + p, err := oClient.Projects().Get(project, metav1.GetOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -144,7 +145,7 @@ func whoami(clientCfg *restclient.Config) (*api.User, error) { return nil, err } - me, err := oClient.Users().Get("~") + me, err := oClient.Users().Get("~", metav1.GetOptions{}) if err != nil { return nil, err } diff --git a/test/integration/master_routes_test.go b/test/integration/master_routes_test.go index d2c7f60fe9a3..beb5469a8e2a 100644 --- a/test/integration/master_routes_test.go +++ b/test/integration/master_routes_test.go @@ -13,8 +13,9 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + knet "k8s.io/apimachinery/pkg/util/net" kapi "k8s.io/kubernetes/pkg/api" - knet "k8s.io/kubernetes/pkg/util/net" build "github.com/openshift/origin/pkg/build/api" buildv1 "github.com/openshift/origin/pkg/build/api/v1" @@ -272,7 +273,7 @@ func TestApiGroups(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - defer kclientset.Namespaces().Delete(ns, &kapi.DeleteOptions{}) + defer kclientset.Core().Namespaces().Delete(ns, &metav1.DeleteOptions{}) t.Logf("GETting builds") req, err := http.NewRequest("GET", masterConfig.AssetConfig.MasterPublicURL+fmt.Sprintf("/apis/%s/%s", buildv1.GroupName, buildv1.SchemeGroupVersion.Version), nil) @@ -341,7 +342,7 @@ func anonymousHttpTransport(clusterAdminKubeConfig string) (*http.Transport, err func testBuild() *build.Build { return &build.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Spec: build.BuildSpec{ diff --git a/test/integration/namespace_lifecycle_admission_test.go b/test/integration/namespace_lifecycle_admission_test.go index 5760d4df1799..e04d1caf6b6b 100644 --- a/test/integration/namespace_lifecycle_admission_test.go +++ b/test/integration/namespace_lifecycle_admission_test.go @@ -4,6 +4,7 @@ import ( "strings" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" "github.com/openshift/origin/pkg/project/api" @@ -35,7 +36,7 @@ func TestNamespaceLifecycleAdmission(t *testing.T) { } // Create a namespace directly (not via a project) - ns := &kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: "test"}} + ns := &kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test"}} ns, err = clusterAdminKubeClientset.Core().Namespaces().Create(ns) if err != nil { t.Fatal(err) @@ -56,7 +57,7 @@ func TestNamespaceLifecycleAdmission(t *testing.T) { // Create an origin object route := &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route"}, + ObjectMeta: metav1.ObjectMeta{Name: "route"}, Spec: routeapi.RouteSpec{To: routeapi.RouteTargetReference{Kind: "Service", Name: "test"}}, } route, err = clusterAdminClient.Routes(ns.Name).Create(route) @@ -65,7 +66,7 @@ func TestNamespaceLifecycleAdmission(t *testing.T) { } // Ensure the origin finalizer is added - ns, err = clusterAdminKubeClientset.Core().Namespaces().Get(ns.Name) + ns, err = clusterAdminKubeClientset.Core().Namespaces().Get(ns.Name, metav1.GetOptions{}) if err != nil { t.Fatal(err) } @@ -89,7 +90,7 @@ func TestNamespaceLifecycleAdmission(t *testing.T) { // Try to create an origin object in a terminating namespace and ensure it is forbidden route = &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{Name: "route2"}, + ObjectMeta: metav1.ObjectMeta{Name: "route2"}, Spec: routeapi.RouteSpec{To: routeapi.RouteTargetReference{Kind: "Service", Name: "test"}}, } _, err = clusterAdminClient.Routes(ns.Name).Create(route) diff --git a/test/integration/newapp_test.go b/test/integration/newapp_test.go index 6ab82eeaa43f..71cfc4b24a22 100644 --- a/test/integration/newapp_test.go +++ b/test/integration/newapp_test.go @@ -22,12 +22,13 @@ import ( "github.com/elazarl/goproxy" docker "github.com/fsouza/go-dockerclient" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + utilerrs "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + clientgotesting "k8s.io/client-go/testing" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/testing/core" - "k8s.io/kubernetes/pkg/runtime" - utilerrs "k8s.io/kubernetes/pkg/util/errors" - "k8s.io/kubernetes/pkg/util/sets" buildapi "github.com/openshift/origin/pkg/build/api" client "github.com/openshift/origin/pkg/client/testclient" @@ -309,7 +310,7 @@ func TestNewAppRunAll(t *testing.T) { Client: dockerregistry.NewClient(10*time.Second, true), } failClient := &client.Fake{} - failClient.AddReactor("get", "images", func(action core.Action) (handled bool, ret runtime.Object, err error) { + failClient.AddReactor("get", "images", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, nil, errors.NewInternalError(fmt.Errorf("")) }) tests := []struct { @@ -2030,7 +2031,7 @@ insteadOf = %s func builderImageStream() *imageapi.ImageStream { return &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "ruby", Namespace: "default", ResourceVersion: "1", @@ -2107,13 +2108,13 @@ func dockerBuilderImage() *docker.Image { func fakeImageStreamSearcher() app.Searcher { client := &client.Fake{} - client.AddReactor("get", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("get", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, builderImageStream(), nil }) - client.AddReactor("list", "imagestreams", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("list", "imagestreams", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, builderImageStreams(), nil }) - client.AddReactor("get", "imagestreamimages", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("get", "imagestreamimages", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, builderImage(), nil }) @@ -2126,7 +2127,7 @@ func fakeImageStreamSearcher() app.Searcher { func fakeTemplateSearcher() app.Searcher { client := &client.Fake{} - client.AddReactor("list", "templates", func(action core.Action) (handled bool, ret runtime.Object, err error) { + client.AddReactor("list", "templates", func(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) { return true, templateList(), nil }) @@ -2141,7 +2142,7 @@ func templateList() *templateapi.TemplateList { Items: []templateapi.Template{ { Objects: []runtime.Object{}, - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "first-stored-template", Namespace: "default", }, diff --git a/test/integration/node_auth_test.go b/test/integration/node_auth_test.go index c25d980e02c8..404ddf038a5c 100644 --- a/test/integration/node_auth_test.go +++ b/test/integration/node_auth_test.go @@ -6,8 +6,9 @@ import ( "strconv" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -74,12 +75,12 @@ func TestNodeAuth(t *testing.T) { } // create a scoped token for bob that is only good for getting user info - bobUser, err := bobClient.Users().Get("~") + bobUser, err := bobClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } whoamiOnlyBobToken := &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "whoami-token-plus-some-padding-here-to-make-the-limit"}, + ObjectMeta: metav1.ObjectMeta{Name: "whoami-token-plus-some-padding-here-to-make-the-limit"}, ClientName: origin.OpenShiftCLIClientID, ExpiresIn: 200, Scopes: []string{scope.UserInfo}, diff --git a/test/integration/oauth_basicauth_test.go b/test/integration/oauth_basicauth_test.go index c1c7588c4836..1a89a9007912 100644 --- a/test/integration/oauth_basicauth_test.go +++ b/test/integration/oauth_basicauth_test.go @@ -10,8 +10,9 @@ import ( "testing" "time" - apierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -382,7 +383,7 @@ func TestOAuthBasicAuthPassword(t *testing.T) { t.Fatalf("%s: Unexpected error: %v", k, err) } - user, err := userClient.Users().Get("~") + user, err := userClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("%s: Unexpected error: %v", k, err) } diff --git a/test/integration/oauth_cert_fallback_test.go b/test/integration/oauth_cert_fallback_test.go index 1f6268af4be0..ce41124d1def 100644 --- a/test/integration/oauth_cert_fallback_test.go +++ b/test/integration/oauth_cert_fallback_test.go @@ -7,8 +7,9 @@ import ( "testing" oclient "github.com/openshift/origin/pkg/client" - "k8s.io/kubernetes/pkg/auth/user" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/cmd/server/admin" "github.com/openshift/origin/pkg/cmd/util" @@ -167,7 +168,7 @@ func TestOAuthCertFallback(t *testing.T) { client := oclient.NewOrDie(&config) - user, err := client.Users().Get("~") + user, err := client.Users().Get("~", metav1.GetOptions{}) if user.Name != test.expectedUser { t.Errorf("%s: unexpected user %q", k, user.Name) diff --git a/test/integration/oauth_disabled_test.go b/test/integration/oauth_disabled_test.go index 7e616f4389da..39b215fefa22 100644 --- a/test/integration/oauth_disabled_test.go +++ b/test/integration/oauth_disabled_test.go @@ -3,8 +3,8 @@ package integration import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/cmd/util/tokencmd" testutil "github.com/openshift/origin/test/util" @@ -40,7 +40,7 @@ func TestOAuthDisabled(t *testing.T) { } // Make sure cert auth still works - namespaces, err := client.Core().Namespaces().List(kapi.ListOptions{}) + namespaces, err := client.Core().Namespaces().List(metav1.ListOptions{}) if err != nil { t.Fatalf("Unexpected error %v", err) } diff --git a/test/integration/oauth_htpasswd_test.go b/test/integration/oauth_htpasswd_test.go index 5253e3c2ceb3..75f6710c9b4b 100644 --- a/test/integration/oauth_htpasswd_test.go +++ b/test/integration/oauth_htpasswd_test.go @@ -5,7 +5,8 @@ import ( "os" "testing" - "k8s.io/kubernetes/pkg/client/restclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -80,7 +81,7 @@ func TestOAuthHTPasswd(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - user, err := userClient.Users().Get("~") + user, err := userClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/test/integration/oauth_ldap_test.go b/test/integration/oauth_ldap_test.go index 6c604abde518..61261c024e1a 100644 --- a/test/integration/oauth_ldap_test.go +++ b/test/integration/oauth_ldap_test.go @@ -8,9 +8,10 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/uuid" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/uuid" + restclient "k8s.io/client-go/rest" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/client" @@ -245,7 +246,7 @@ func TestOAuthLDAP(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - user, err := userClient.Users().Get("~") + user, err := userClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -254,7 +255,7 @@ func TestOAuthLDAP(t *testing.T) { } // Make sure the identity got created and contained the mapped attributes - identity, err := clusterAdminClient.Identities().Get(fmt.Sprintf("%s:%s", providerName, myUserDN)) + identity, err := clusterAdminClient.Identities().Get(fmt.Sprintf("%s:%s", providerName, myUserDN), metav1.GetOptions{}) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/test/integration/oauth_oidc_test.go b/test/integration/oauth_oidc_test.go index 38a0d743c075..72d3b2c6307e 100644 --- a/test/integration/oauth_oidc_test.go +++ b/test/integration/oauth_oidc_test.go @@ -11,8 +11,8 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/client/restclient" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + restclient "k8s.io/client-go/rest" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/cmd" diff --git a/test/integration/oauth_request_header_test.go b/test/integration/oauth_request_header_test.go index 112db948bfee..dc59c1fcb39f 100644 --- a/test/integration/oauth_request_header_test.go +++ b/test/integration/oauth_request_header_test.go @@ -11,8 +11,9 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/client/restclient" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/cli/cmd/login" @@ -280,7 +281,7 @@ func TestOAuthRequestHeader(t *testing.T) { t.Errorf("%s: Unexpected error: %v", k, err) continue } - user, err := userClient.Users().Get("~") + user, err := userClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Errorf("%s: Unexpected error: %v", k, err) continue diff --git a/test/integration/oauth_serviceaccount_client_test.go b/test/integration/oauth_serviceaccount_client_test.go index fafdf4bcb9b7..d7871f780b6f 100644 --- a/test/integration/oauth_serviceaccount_client_test.go +++ b/test/integration/oauth_serviceaccount_client_test.go @@ -16,12 +16,14 @@ import ( "github.com/RangelReale/osincli" "github.com/golang/glog" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/retry" "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" "github.com/openshift/origin/pkg/cmd/util/clientcmd" @@ -78,7 +80,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { } promptingClient, err := clusterAdminClient.OAuthClients().Create(&oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "prompting-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "prompting-client"}, Secret: "prompting-client-secret", RedirectURIs: []string{redirectURL}, GrantMethod: oauthapi.GrantHandlerPrompt, @@ -93,7 +95,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { // retry this a couple times. We seem to be flaking on update conflicts and missing secrets all together err = retry.RetryOnConflict(retry.DefaultRetry, func() error { - defaultSA, err = clusterAdminKubeClientset.Core().ServiceAccounts(projectName).Get("default") + defaultSA, err = clusterAdminKubeClientset.Core().ServiceAccounts(projectName).Get("default", metav1.GetOptions{}) if err != nil { return err } @@ -112,7 +114,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { var oauthSecret *kapi.Secret // retry this a couple times. We seem to be flaking on update conflicts and missing secrets all together err = wait.PollImmediate(30*time.Millisecond, 10*time.Second, func() (done bool, err error) { - allSecrets, err := clusterAdminKubeClientset.Core().Secrets(projectName).List(kapi.ListOptions{}) + allSecrets, err := clusterAdminKubeClientset.Core().Secrets(projectName).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -156,7 +158,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { "scope:user:full", }) // verify the persisted client authorization looks like we expect - if clientAuth, err := clusterAdminClient.OAuthClientAuthorizations().Get("harold:" + oauthClientConfig.ClientId); err != nil { + if clientAuth, err := clusterAdminClient.OAuthClientAuthorizations().Get("harold:"+oauthClientConfig.ClientId, metav1.GetOptions{}); err != nil { t.Fatalf("Unexpected error: %v", err) } else if !reflect.DeepEqual(clientAuth.Scopes, []string{"user:full"}) { t.Fatalf("Unexpected scopes: %v", clientAuth.Scopes) @@ -258,7 +260,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { { oauthClientConfig := &osincli.ClientConfig{ - ClientId: serviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), + ClientId: apiserverserviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), ClientSecret: string(oauthSecret.Data[kapi.ServiceAccountTokenKey]), AuthorizeUrl: clusterAdminClientConfig.Host + "/oauth/authorize", TokenUrl: clusterAdminClientConfig.Host + "/oauth/token", @@ -294,7 +296,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { { oauthClientConfig := &osincli.ClientConfig{ - ClientId: serviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), + ClientId: apiserverserviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), ClientSecret: string(oauthSecret.Data[kapi.ServiceAccountTokenKey]), AuthorizeUrl: clusterAdminClientConfig.Host + "/oauth/authorize", TokenUrl: clusterAdminClientConfig.Host + "/oauth/token", @@ -316,7 +318,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { { t.Log("Testing invalid scopes") oauthClientConfig := &osincli.ClientConfig{ - ClientId: serviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), + ClientId: apiserverserviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), ClientSecret: string(oauthSecret.Data[kapi.ServiceAccountTokenKey]), AuthorizeUrl: clusterAdminClientConfig.Host + "/oauth/authorize", TokenUrl: clusterAdminClientConfig.Host + "/oauth/token", @@ -337,7 +339,7 @@ func TestOAuthServiceAccountClient(t *testing.T) { { t.Log("Testing allowed scopes with failed API call") oauthClientConfig := &osincli.ClientConfig{ - ClientId: serviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), + ClientId: apiserverserviceaccount.MakeUsername(defaultSA.Namespace, defaultSA.Name), ClientSecret: string(oauthSecret.Data[kapi.ServiceAccountTokenKey]), AuthorizeUrl: clusterAdminClientConfig.Host + "/oauth/authorize", TokenUrl: clusterAdminClientConfig.Host + "/oauth/token", @@ -517,7 +519,7 @@ func runOAuthFlow( return } - _, err = whoamiClient.Builds(projectName).List(kapi.ListOptions{}) + _, err = whoamiClient.Builds(projectName).List(metav1.ListOptions{}) if expectBuildSuccess && err != nil { t.Errorf("unexpected error: %v", err) return @@ -527,7 +529,7 @@ func runOAuthFlow( return } - user, err := whoamiClient.Users().Get("~") + user, err := whoamiClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Errorf("unexpected error: %v", err) return diff --git a/test/integration/oauthstorage_test.go b/test/integration/oauthstorage_test.go index e5d0f8d28b72..eb66eba01729 100644 --- a/test/integration/oauthstorage_test.go +++ b/test/integration/oauthstorage_test.go @@ -9,7 +9,8 @@ import ( "github.com/RangelReale/osincli" "golang.org/x/oauth2" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apirequest "k8s.io/apiserver/pkg/endpoints/request" originrest "github.com/openshift/origin/pkg/cmd/server/origin/rest" "github.com/openshift/origin/pkg/oauth/api" @@ -120,8 +121,8 @@ func TestOAuthStorage(t *testing.T) { ch <- token })) - clientRegistry.CreateClient(kapi.NewContext(), &api.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "test"}, + clientRegistry.CreateClient(apirequest.NewContext(), &api.OAuthClient{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, Secret: "secret", AdditionalSecrets: []string{"secret1"}, RedirectURIs: []string{assertServer.URL + "/assert"}, @@ -183,7 +184,7 @@ func TestOAuthStorage(t *testing.T) { t.Errorf("unexpected access token: %#v", token) } - actualToken, err := accessTokenRegistry.GetAccessToken(kapi.NewContext(), token.AccessToken) + actualToken, err := accessTokenRegistry.GetAccessToken(apirequest.NewContext(), token.AccessToken, &metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/ownerrefs_test.go b/test/integration/ownerrefs_test.go index 475a75d33bc8..397aeffd3494 100644 --- a/test/integration/ownerrefs_test.go +++ b/test/integration/ownerrefs_test.go @@ -4,8 +4,9 @@ import ( "strings" "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" authorizationapi "github.com/openshift/origin/pkg/authorization/api" testutil "github.com/openshift/origin/test/util" @@ -31,7 +32,7 @@ func TestOwnerRefRestriction(t *testing.T) { } _, err = originClient.ClusterRoles().Create(&authorizationapi.ClusterRole{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "create-svc", }, Rules: []authorizationapi.PolicyRule{ @@ -51,7 +52,7 @@ func TestOwnerRefRestriction(t *testing.T) { } _, err = originClient.RoleBindings("foo").Create(&authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "create-svc", }, RoleRef: kapi.ObjectReference{Name: "create-svc"}, @@ -65,9 +66,9 @@ func TestOwnerRefRestriction(t *testing.T) { } _, err = creatorClient.Core().Services("foo").Create(&kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "my-service", - OwnerReferences: []kapi.OwnerReference{{}}, + OwnerReferences: []metav1.OwnerReference{{}}, }, }) if err == nil { diff --git a/test/integration/patch_test.go b/test/integration/patch_test.go index 2e5628a988cd..b9436c8726fa 100644 --- a/test/integration/patch_test.go +++ b/test/integration/patch_test.go @@ -8,11 +8,13 @@ import ( "github.com/pborman/uuid" + kapierrs "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + apiendpointhandlers "k8s.io/apiserver/pkg/endpoints/handlers" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kapierrs "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/meta" - "k8s.io/kubernetes/pkg/apiserver" - "k8s.io/kubernetes/pkg/client/restclient" templatesapi "github.com/openshift/origin/pkg/template/api" testutil "github.com/openshift/origin/test/util" @@ -43,13 +45,13 @@ func TestPatchConflicts(t *testing.T) { objName := "myobj" ns := "patch-namespace" - if _, err := clusterAdminKubeClientset.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: ns}}); err != nil { + if _, err := clusterAdminKubeClientset.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}); err != nil { t.Fatalf("Error creating namespace:%v", err) } - if _, err := clusterAdminKubeClientset.Core().Secrets(ns).Create(&kapi.Secret{ObjectMeta: kapi.ObjectMeta{Name: objName}}); err != nil { + if _, err := clusterAdminKubeClientset.Core().Secrets(ns).Create(&kapi.Secret{ObjectMeta: metav1.ObjectMeta{Name: objName}}); err != nil { t.Fatalf("Error creating k8s resource:%v", err) } - if _, err := clusterAdminClient.Templates(ns).Create(&templatesapi.Template{ObjectMeta: kapi.ObjectMeta{Name: objName}}); err != nil { + if _, err := clusterAdminClient.Templates(ns).Create(&templatesapi.Template{ObjectMeta: metav1.ObjectMeta{Name: objName}}); err != nil { t.Fatalf("Error creating origin resource:%v", err) } @@ -73,13 +75,13 @@ func TestPatchConflicts(t *testing.T) { // Force patch to deal with resourceVersion conflicts applying non-conflicting patches // ensure it handles reapplies without internal errors wg := sync.WaitGroup{} - for i := 0; i < (2 * apiserver.MaxPatchConflicts); i++ { + for i := 0; i < (2 * apiendpointhandlers.MaxRetryWhenPatchConflicts); i++ { wg.Add(1) go func(labelName string) { defer wg.Done() labelValue := uuid.NewRandom().String() - obj, err := tc.client.Patch(kapi.StrategicMergePatchType). + obj, err := tc.client.Patch(types.StrategicMergePatchType). Namespace(ns). Resource(tc.resource). Name(objName). @@ -111,8 +113,8 @@ func TestPatchConflicts(t *testing.T) { } wg.Wait() - if successes < apiserver.MaxPatchConflicts { - t.Errorf("Expected at least %d successful patches for %s, got %d", apiserver.MaxPatchConflicts, tc.resource, successes) + if successes < apiendpointhandlers.MaxRetryWhenPatchConflicts { + t.Errorf("Expected at least %d successful patches for %s, got %d", apiendpointhandlers.MaxRetryWhenPatchConflicts, tc.resource, successes) } else { t.Logf("Got %d successful patches for %s", successes, tc.resource) } diff --git a/test/integration/pod_node_constraints_test.go b/test/integration/pod_node_constraints_test.go index a3c8ade822af..0ba47bf40aa2 100644 --- a/test/integration/pod_node_constraints_test.go +++ b/test/integration/pod_node_constraints_test.go @@ -3,9 +3,9 @@ package integration import ( "testing" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -51,7 +51,7 @@ func TestPodNodeConstraintsAdmissionPluginSetNodeSelectorNonAdmin(t *testing.T) testPodNodeConstraintsObjectCreationWithPodTemplate(t, "set node selector, regular user", kclientset, oclient, "", map[string]string{"hostname": "foo"}, true) } -func setupClusterAdminPodNodeConstraintsTest(t *testing.T, pluginConfig *pluginapi.PodNodeConstraintsConfig) (*client.Client, *kclientset.Clientset) { +func setupClusterAdminPodNodeConstraintsTest(t *testing.T, pluginConfig *pluginapi.PodNodeConstraintsConfig) (*client.Client, kclientset.Interface) { testutil.RequireEtcd(t) masterConfig, err := testserver.DefaultMasterOptions() if err != nil { @@ -181,7 +181,7 @@ func testPodNodeConstraintsDeployment(nodeName string, nodeSelector map[string]s d.Spec.Replicas = 1 d.Spec.Template.Labels = map[string]string{"foo": "bar"} d.Spec.Template.Spec = testPodNodeConstraintsPodSpec(nodeName, nodeSelector) - d.Spec.Selector = &unversioned.LabelSelector{ + d.Spec.Selector = &metav1.LabelSelector{ MatchLabels: map[string]string{"foo": "bar"}, } return d @@ -194,7 +194,7 @@ func testPodNodeConstraintsReplicaSet(nodeName string, nodeSelector map[string]s rs.Spec.Template = kapi.PodTemplateSpec{} rs.Spec.Template.Labels = map[string]string{"foo": "bar"} rs.Spec.Template.Spec = testPodNodeConstraintsPodSpec(nodeName, nodeSelector) - rs.Spec.Selector = &unversioned.LabelSelector{ + rs.Spec.Selector = &metav1.LabelSelector{ MatchLabels: map[string]string{"foo": "bar"}, } return rs diff --git a/test/integration/policy_commands_test.go b/test/integration/policy_commands_test.go index 94fa1a3c6976..9a69a8465850 100644 --- a/test/integration/policy_commands_test.go +++ b/test/integration/policy_commands_test.go @@ -4,11 +4,12 @@ import ( "io/ioutil" "testing" - testutil "github.com/openshift/origin/test/util" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" authorizationinterfaces "github.com/openshift/origin/pkg/authorization/interfaces" policy "github.com/openshift/origin/pkg/cmd/admin/policy" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" + testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" ) @@ -48,7 +49,7 @@ func TestPolicyCommands(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - viewers, err := haroldClient.RoleBindings(projectName).Get("view") + viewers, err := haroldClient.RoleBindings(projectName).Get("view", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -70,7 +71,7 @@ func TestPolicyCommands(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - viewers, err = haroldClient.RoleBindings(projectName).Get("view") + viewers, err = haroldClient.RoleBindings(projectName).Get("view", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -92,7 +93,7 @@ func TestPolicyCommands(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - viewers, err = haroldClient.RoleBindings(projectName).Get("view") + viewers, err = haroldClient.RoleBindings(projectName).Get("view", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/project_reqlimit_test.go b/test/integration/project_reqlimit_test.go index 8ffddb23c43d..ca839447086a 100644 --- a/test/integration/project_reqlimit_test.go +++ b/test/integration/project_reqlimit_test.go @@ -3,11 +3,13 @@ package integration import ( "testing" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apiserver/pkg/storage/names" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - apierrors "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/labels" "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -177,12 +179,12 @@ func TestProjectRequestLimitAsSystemAdmin(t *testing.T) { _, oclient, _ := setupProjectRequestLimitTest(t, projectRequestLimitSingleDefaultConfig()) if _, err := oclient.ProjectRequests().Create(&projectapi.ProjectRequest{ - ObjectMeta: kapi.ObjectMeta{Name: "foo"}, + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }); err != nil { t.Errorf("uenxpected error: %v", err) } if _, err := oclient.ProjectRequests().Create(&projectapi.ProjectRequest{ - ObjectMeta: kapi.ObjectMeta{Name: "bar"}, + ObjectMeta: metav1.ObjectMeta{Name: "bar"}, }); !apierrors.IsForbidden(err) { t.Errorf("missing error: %v", err) } @@ -195,7 +197,7 @@ func testProjectRequestLimitAdmission(t *testing.T, errorPrefix string, clientCo t.Fatalf("Error getting client for user %s: %v", user, err) } projectRequest := &projectapi.ProjectRequest{} - projectRequest.Name = kapi.SimpleNameGenerator.GenerateName("test-projectreq") + projectRequest.Name = names.SimpleNameGenerator.GenerateName("test-projectreq") _, err = oclient.ProjectRequests().Create(projectRequest) if err != nil && expectSuccess { t.Errorf("%s: unexpected error for user %s: %v", errorPrefix, user, err) diff --git a/test/integration/project_request_test.go b/test/integration/project_request_test.go index bfc12518050a..859d686fa79a 100644 --- a/test/integration/project_request_test.go +++ b/test/integration/project_request_test.go @@ -4,12 +4,13 @@ import ( "testing" "time" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" kapiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/watch" projectapi "github.com/openshift/origin/pkg/project/api" "github.com/openshift/origin/pkg/project/registry/projectrequest/delegated" @@ -53,11 +54,11 @@ func TestProjectRequestError(t *testing.T) { additionalObjects := []runtime.Object{ // Append an object that will succeed - &kapi.ConfigMap{ObjectMeta: kapi.ObjectMeta{Name: "configmapname"}}, + &kapi.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: "configmapname"}}, // Append a custom object that will fail validation &kapi.ConfigMap{}, // Append another object that should never be created, since we short circuit - &kapi.ConfigMap{ObjectMeta: kapi.ObjectMeta{Name: "configmapname2"}}, + &kapi.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: "configmapname2"}}, } if err := templateapi.AddObjectsToTemplate(template, additionalObjects, kapiv1.SchemeGroupVersion); err != nil { t.Fatal(err) @@ -67,21 +68,21 @@ func TestProjectRequestError(t *testing.T) { } // Watch the project, rolebindings, and configmaps - nswatch, err := kubeClientset.Core().Namespaces().Watch(kapi.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", ns)}) + nswatch, err := kubeClientset.Core().Namespaces().Watch(metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector("metadata.name", ns).String()}) if err != nil { t.Fatal(err) } - policywatch, err := openshiftClient.PolicyBindings(ns).Watch(kapi.ListOptions{}) + policywatch, err := openshiftClient.PolicyBindings(ns).Watch(metav1.ListOptions{}) if err != nil { t.Fatal(err) } - cmwatch, err := kubeClientset.Core().ConfigMaps(ns).Watch(kapi.ListOptions{}) + cmwatch, err := kubeClientset.Core().ConfigMaps(ns).Watch(metav1.ListOptions{}) if err != nil { t.Fatal(err) } // Create project request - _, err = openshiftClient.ProjectRequests().Create(&projectapi.ProjectRequest{ObjectMeta: kapi.ObjectMeta{Name: ns}}) + _, err = openshiftClient.ProjectRequests().Create(&projectapi.ProjectRequest{ObjectMeta: metav1.ObjectMeta{Name: ns}}) if err == nil || err.Error() != `Internal error occurred: ConfigMap "" is invalid: metadata.name: Required value: name or generateName is required` { t.Fatalf("Expected internal error creating project, got %v", err) } @@ -130,7 +131,7 @@ func TestProjectRequestError(t *testing.T) { } // Verify project is deleted - if nsObj, err := kubeClientset.Core().Namespaces().Get(ns); !kapierrors.IsNotFound(err) { + if nsObj, err := kubeClientset.Core().Namespaces().Get(ns, metav1.GetOptions{}); !kapierrors.IsNotFound(err) { t.Errorf("Expected namespace to be gone, got %#v, %#v", nsObj, err) } } diff --git a/test/integration/project_test.go b/test/integration/project_test.go index 1993a041fe4d..08ff67408a89 100644 --- a/test/integration/project_test.go +++ b/test/integration/project_test.go @@ -5,10 +5,11 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" @@ -41,7 +42,7 @@ func TestProjectIsNamespace(t *testing.T) { // create a namespace namespace := &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: "integration-test"}, + ObjectMeta: metav1.ObjectMeta{Name: "integration-test"}, } namespaceResult, err := kubeClientset.Core().Namespaces().Create(namespace) if err != nil { @@ -49,7 +50,7 @@ func TestProjectIsNamespace(t *testing.T) { } // now try to get the project with the same name and ensure it is our namespace - project, err := originClient.Projects().Get(namespaceResult.Name) + project, err := originClient.Projects().Get(namespaceResult.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -59,7 +60,7 @@ func TestProjectIsNamespace(t *testing.T) { // now create a project project = &projectapi.Project{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "new-project", Annotations: map[string]string{ oapi.OpenShiftDisplayName: "Hello World", @@ -73,7 +74,7 @@ func TestProjectIsNamespace(t *testing.T) { } // now get the namespace for that project - namespace, err = kubeClientset.Core().Namespaces().Get(projectResult.Name) + namespace, err = kubeClientset.Core().Namespaces().Get(projectResult.Name, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -108,7 +109,7 @@ func TestProjectMustExist(t *testing.T) { } pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: "pod"}, + ObjectMeta: metav1.ObjectMeta{Name: "pod"}, Spec: kapi.PodSpec{ Containers: []kapi.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: kapi.RestartPolicyAlways, @@ -122,7 +123,7 @@ func TestProjectMustExist(t *testing.T) { } build := &buildapi.Build{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "buildid", Namespace: "default", Labels: map[string]string{ @@ -180,7 +181,7 @@ func TestProjectWatch(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - w, err := bobClient.Projects().Watch(kapi.ListOptions{}) + w, err := bobClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -224,13 +225,13 @@ func TestProjectWatch(t *testing.T) { waitForDelete("ns-03", w, t) // test the "start from beginning watch" - beginningWatch, err := bobClient.Projects().Watch(kapi.ListOptions{ResourceVersion: "0"}) + beginningWatch, err := bobClient.Projects().Watch(metav1.ListOptions{ResourceVersion: "0"}) if err != nil { t.Fatalf("unexpected error: %v", err) } waitForAdd("ns-01", beginningWatch, t) - fromNowWatch, err := bobClient.Projects().Watch(kapi.ListOptions{}) + fromNowWatch, err := bobClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -346,15 +347,15 @@ func TestScopedProjectAccess(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - oneTwoWatch, err := oneTwoBobClient.Projects().Watch(kapi.ListOptions{}) + oneTwoWatch, err := oneTwoBobClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } - twoThreeWatch, err := twoThreeBobClient.Projects().Watch(kapi.ListOptions{}) + twoThreeWatch, err := twoThreeBobClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } - allWatch, err := allBobClient.Projects().Watch(kapi.ListOptions{}) + allWatch, err := allBobClient.Projects().Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -383,21 +384,21 @@ func TestScopedProjectAccess(t *testing.T) { } waitForOnlyAdd("four", allWatch, t) - oneTwoProjects, err := oneTwoBobClient.Projects().List(kapi.ListOptions{}) + oneTwoProjects, err := oneTwoBobClient.Projects().List(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } if err := hasExactlyTheseProjects(oneTwoProjects, sets.NewString("one", "two")); err != nil { t.Error(err) } - twoThreeProjects, err := twoThreeBobClient.Projects().List(kapi.ListOptions{}) + twoThreeProjects, err := twoThreeBobClient.Projects().List(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } if err := hasExactlyTheseProjects(twoThreeProjects, sets.NewString("two", "three")); err != nil { t.Error(err) } - allProjects, err := allBobClient.Projects().List(kapi.ListOptions{}) + allProjects, err := allBobClient.Projects().List(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -464,7 +465,7 @@ func TestInvalidRoleRefs(t *testing.T) { } roleName := "missing-role" - if _, err := clusterAdminClient.ClusterRoles().Create(&authorizationapi.ClusterRole{ObjectMeta: kapi.ObjectMeta{Name: roleName}}); err != nil { + if _, err := clusterAdminClient.ClusterRoles().Create(&authorizationapi.ClusterRole{ObjectMeta: metav1.ObjectMeta{Name: roleName}}); err != nil { t.Fatalf("unexpected error: %v", err) } modifyRole := &policy.RoleModificationOptions{RoleName: roleName, Users: []string{"someuser"}} @@ -509,19 +510,19 @@ func TestInvalidRoleRefs(t *testing.T) { } // Make sure bob still sees his project (and only his project) - if projects, err := bobClient.Projects().List(kapi.ListOptions{}); err != nil { + if projects, err := bobClient.Projects().List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } else if hasErr := hasExactlyTheseProjects(projects, sets.NewString("foo")); hasErr != nil { t.Error(hasErr) } // Make sure alice still sees her project (and only her project) - if projects, err := aliceClient.Projects().List(kapi.ListOptions{}); err != nil { + if projects, err := aliceClient.Projects().List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } else if hasErr := hasExactlyTheseProjects(projects, sets.NewString("bar")); hasErr != nil { t.Error(hasErr) } // Make sure cluster admin still sees all projects - if projects, err := clusterAdminClient.Projects().List(kapi.ListOptions{}); err != nil { + if projects, err := clusterAdminClient.Projects().List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } else { projectNames := sets.NewString() diff --git a/test/integration/restrictusers_test.go b/test/integration/restrictusers_test.go index 1f769faec43d..e7b9fd86c5f2 100644 --- a/test/integration/restrictusers_test.go +++ b/test/integration/restrictusers_test.go @@ -4,10 +4,11 @@ import ( "testing" //"time" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" //"k8s.io/kubernetes/pkg/api/unversioned" - //utilwait "k8s.io/kubernetes/pkg/util/wait" + //utilwait "k8s.io/apimachinery/pkg/util/wait" authorizationapi "github.com/openshift/origin/pkg/authorization/api" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -50,7 +51,7 @@ func TestRestrictUsers(t *testing.T) { } role := &authorizationapi.Role{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "role", }, @@ -60,7 +61,7 @@ func TestRestrictUsers(t *testing.T) { } policyBinding := &authorizationapi.PolicyBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "policybinding", }, @@ -74,7 +75,7 @@ func TestRestrictUsers(t *testing.T) { } rolebindingAlice := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding1", }, @@ -94,7 +95,7 @@ func TestRestrictUsers(t *testing.T) { } allowAlice := &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-alice", Namespace: "namespace", }, @@ -110,7 +111,7 @@ func TestRestrictUsers(t *testing.T) { } rolebindingAliceDup := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding2", }, @@ -130,7 +131,7 @@ func TestRestrictUsers(t *testing.T) { } rolebindingBob := &authorizationapi.RoleBinding{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: "namespace", Name: "rolebinding3", }, @@ -151,7 +152,7 @@ func TestRestrictUsers(t *testing.T) { } allowBob := &authorizationapi.RoleBindingRestriction{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "match-users-bob", Namespace: "namespace", }, diff --git a/test/integration/router_test.go b/test/integration/router_test.go index b521cd55da64..3d3de15ae444 100644 --- a/test/integration/router_test.go +++ b/test/integration/router_test.go @@ -18,16 +18,16 @@ import ( dockerClient "github.com/fsouza/go-dockerclient" "golang.org/x/net/websocket" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" + knet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" kv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - "k8s.io/kubernetes/pkg/runtime" - "k8s.io/kubernetes/pkg/util/intstr" - knet "k8s.io/kubernetes/pkg/util/net" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" watchjson "k8s.io/kubernetes/pkg/watch/json" routeapi "github.com/openshift/origin/pkg/route/api" @@ -319,7 +319,7 @@ func TestRouter(t *testing.T) { Type: tc.endpointEventType, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: tc.serviceName, Namespace: ns, }, @@ -330,7 +330,7 @@ func TestRouter(t *testing.T) { routeEvent := &watch.Event{ Type: tc.routeEventType, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: tc.serviceName, Namespace: ns, }, @@ -427,7 +427,7 @@ func TestRouterPathSpecificity(t *testing.T) { waitForRouterToBecomeAvailable("127.0.0.1", statsPort) - now := unversioned.Now() + now := metav1.Now() protocols := []struct { name string @@ -455,7 +455,7 @@ func TestRouterPathSpecificity(t *testing.T) { endpointEvent := &watch.Event{ Type: watch.Added, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: now, Name: "myService", Namespace: "default", @@ -466,7 +466,7 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent := &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "path", Namespace: "default", }, @@ -511,7 +511,7 @@ func TestRouterPathSpecificity(t *testing.T) { endpointEvent = &watch.Event{ Type: watch.Added, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "altService", Namespace: "alt", }, @@ -521,8 +521,8 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: now.Add(time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: now.Add(time.Hour)}, Name: "path", Namespace: "alt", }, @@ -559,7 +559,7 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: now, Name: "host", Namespace: "default", @@ -598,7 +598,7 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Deleted, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "path", Namespace: "default", }, @@ -642,8 +642,8 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: now.Add(time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: now.Add(time.Hour)}, Name: "host", Namespace: "alt", }, @@ -680,8 +680,8 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ - CreationTimestamp: unversioned.Time{Time: now.Add(-time.Hour)}, + ObjectMeta: metav1.ObjectMeta{ + CreationTimestamp: metav1.Time{Time: now.Add(-time.Hour)}, Name: "host", Namespace: "alt", }, @@ -718,7 +718,7 @@ func TestRouterPathSpecificity(t *testing.T) { routeEvent = &watch.Event{ Type: watch.Deleted, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "host", Namespace: "default", }, @@ -741,7 +741,7 @@ func TestRouterPathSpecificity(t *testing.T) { endpointEvent = &watch.Event{ Type: watch.Modified, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myService", Namespace: "default", }, @@ -785,7 +785,7 @@ func TestRouterDuplications(t *testing.T) { endpointEvent := &watch.Event{ Type: watch.Added, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myService", Namespace: "default", }, @@ -795,7 +795,7 @@ func TestRouterDuplications(t *testing.T) { exampleRouteEvent := &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "default", }, @@ -810,7 +810,7 @@ func TestRouterDuplications(t *testing.T) { example2RouteEvent := &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "example2", Namespace: "default", }, @@ -841,7 +841,7 @@ func TestRouterDuplications(t *testing.T) { example2RouteCleanupEvent := &watch.Event{ Type: watch.Deleted, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "example2", Namespace: "default", }, @@ -857,7 +857,7 @@ func TestRouterDuplications(t *testing.T) { exampleRouteCleanupEvent := &watch.Event{ Type: watch.Deleted, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "default", }, @@ -873,7 +873,7 @@ func TestRouterDuplications(t *testing.T) { endpointCleanupEvent := &watch.Event{ Type: watch.Modified, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myService", Namespace: "default", }, @@ -1470,7 +1470,7 @@ func generateEndpointEvent(t *testing.T, fakeMasterAndPod *tr.TestHttpService, f Type: watch.Added, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, Namespace: "event-brite", }, @@ -1492,7 +1492,7 @@ func generateTestEvents(t *testing.T, fakeMasterAndPod *tr.TestHttpService, flag routeEvent := &watch.Event{ Type: watch.Added, Object: &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: routeName, Namespace: "event-brite", }, @@ -1755,14 +1755,14 @@ func getNamespaceConfig(t *testing.T, namespaceNames *[]string) (namespaceLabels namespaceLabels = fmt.Sprintf("%s=%s", key, value) namespaceList := &kapi.NamespaceList{ - ListMeta: unversioned.ListMeta{ + ListMeta: metav1.ListMeta{ ResourceVersion: fmt.Sprintf("%d", len(*namespaceNames)), }, Items: []kapi.Namespace{}, } for _, name := range *namespaceNames { namespaceList.Items = append(namespaceList.Items, kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: map[string]string{key: value}, }, @@ -1802,7 +1802,7 @@ func ingressConfiguredRouter(t *testing.T, fakeMasterAndPod *tr.TestHttpService) endpointEvent := &watch.Event{ Type: watch.Added, Object: &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, Namespace: defaultNamespace, }, @@ -1820,7 +1820,7 @@ func ingressConfiguredRouter(t *testing.T, fakeMasterAndPod *tr.TestHttpService) secretEvent := &watch.Event{ Type: watch.Added, Object: &kapi.Secret{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: secretName, Namespace: defaultNamespace, }, @@ -1835,7 +1835,7 @@ func ingressConfiguredRouter(t *testing.T, fakeMasterAndPod *tr.TestHttpService) ingressEvent := &watch.Event{ Type: watch.Added, Object: &extensions.Ingress{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: defaultNamespace, }, diff --git a/test/integration/router_without_haproxy_test.go b/test/integration/router_without_haproxy_test.go index 31dddd7bb839..4805efe4614c 100644 --- a/test/integration/router_without_haproxy_test.go +++ b/test/integration/router_without_haproxy_test.go @@ -6,13 +6,14 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/labels" - "k8s.io/kubernetes/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/wait" - "k8s.io/kubernetes/pkg/watch" osclient "github.com/openshift/origin/pkg/client" infrarouter "github.com/openshift/origin/pkg/cmd/infra/router" @@ -234,7 +235,7 @@ func initializeNewRoute(t *testing.T, oc osclient.Interface, kc kclientset.Inter func createNamespaceProperties() *kapi.Namespace { return &kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "namespace-", }, Status: kapi.NamespaceStatus{}, @@ -243,7 +244,7 @@ func createNamespaceProperties() *kapi.Namespace { func createServiceProperties() *kapi.Service { return &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "service-", }, Spec: kapi.ServiceSpec{ @@ -257,7 +258,7 @@ func createServiceProperties() *kapi.Service { func createEndpointsProperties(serviceName string) *kapi.Endpoints { return &kapi.Endpoints{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: serviceName, }, Subsets: []kapi.EndpointSubset{{ @@ -273,7 +274,7 @@ func createEndpointsProperties(serviceName string) *kapi.Endpoints { func createRouteProperties(serviceName, host string) *routeapi.Route { return &routeapi.Route{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ GenerateName: "route-", }, Spec: routeapi.RouteSpec{ @@ -416,7 +417,7 @@ func updateNamespaceLabels(t *testing.T, kc kclientset.Interface, namespace *kap if errors.IsConflict(err) { // The resource was updated by kube machinery. // Get the latest version and retry. - namespace, err = kc.Core().Namespaces().Get(namespace.Name) + namespace, err = kc.Core().Namespaces().Get(namespace.Name, metav1.GetOptions{}) return false, err } return (err == nil), err diff --git a/test/integration/scc_test.go b/test/integration/scc_test.go index 6af45f92f023..feb4a241684b 100644 --- a/test/integration/scc_test.go +++ b/test/integration/scc_test.go @@ -3,8 +3,9 @@ package integration import ( "testing" + kapierror "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kapi "k8s.io/kubernetes/pkg/api" - kapierror "k8s.io/kubernetes/pkg/api/errors" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" @@ -48,7 +49,7 @@ func TestPodUpdateSCCEnforcement(t *testing.T) { // so cluster-admin can create privileged pods, but harold cannot. This means that harold should not be able // to update the privileged pods either, even if he lies about its privileged nature privilegedPod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{Name: "unsafe"}, + ObjectMeta: metav1.ObjectMeta{Name: "unsafe"}, Spec: kapi.PodSpec{ Containers: []kapi.Container{ {Name: "first", Image: "something-innocuous"}, diff --git a/test/integration/scopes_test.go b/test/integration/scopes_test.go index a13b09cf8ec5..9947fd0857cf 100644 --- a/test/integration/scopes_test.go +++ b/test/integration/scopes_test.go @@ -3,10 +3,11 @@ package integration import ( "testing" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/client-go/rest" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/serviceaccount" authenticationapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/authorization/authorizer/scope" @@ -45,17 +46,17 @@ func TestScopedTokens(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := haroldClient.Builds(projectName).List(kapi.ListOptions{}); err != nil { + if _, err := haroldClient.Builds(projectName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } - haroldUser, err := haroldClient.Users().Get("~") + haroldUser, err := haroldClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } whoamiOnlyToken := &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "whoami-token-plus-some-padding-here-to-make-the-limit"}, + ObjectMeta: metav1.ObjectMeta{Name: "whoami-token-plus-some-padding-here-to-make-the-limit"}, ClientName: origin.OpenShiftCLIClientID, ExpiresIn: 200, Scopes: []string{scope.UserInfo}, @@ -73,11 +74,11 @@ func TestScopedTokens(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := whoamiClient.Builds(projectName).List(kapi.ListOptions{}); !kapierrors.IsForbidden(err) { + if _, err := whoamiClient.Builds(projectName).List(metav1.ListOptions{}); !kapierrors.IsForbidden(err) { t.Fatalf("unexpected error: %v", err) } - user, err := whoamiClient.Users().Get("~") + user, err := whoamiClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -86,12 +87,12 @@ func TestScopedTokens(t *testing.T) { } // try to impersonate a service account using this token - whoamiConfig.Impersonate = serviceaccount.MakeUsername(projectName, "default") + whoamiConfig.Impersonate = rest.ImpersonationConfig{UserName: apiserverserviceaccount.MakeUsername(projectName, "default")} impersonatingClient, err := client.New(&whoamiConfig) if err != nil { t.Fatalf("unexpected error: %v", err) } - impersonatedUser, err := impersonatingClient.Users().Get("~") + impersonatedUser, err := impersonatingClient.Users().Get("~", metav1.GetOptions{}) if !kapierrors.IsForbidden(err) { t.Fatalf("missing error: %v got user %#v", err, impersonatedUser) } @@ -167,17 +168,17 @@ func TestScopeEscalations(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := haroldClient.Builds(projectName).List(kapi.ListOptions{}); err != nil { + if _, err := haroldClient.Builds(projectName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } - haroldUser, err := haroldClient.Users().Get("~") + haroldUser, err := haroldClient.Users().Get("~", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } nonEscalatingEditToken := &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "non-escalating-edit-plus-some-padding-here-to-make-the-limit"}, + ObjectMeta: metav1.ObjectMeta{Name: "non-escalating-edit-plus-some-padding-here-to-make-the-limit"}, ClientName: origin.OpenShiftCLIClientID, ExpiresIn: 200, Scopes: []string{scope.ClusterRoleIndicator + "edit:*"}, @@ -195,12 +196,12 @@ func TestScopeEscalations(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := nonEscalatingEditClient.Secrets(projectName).List(kapi.ListOptions{}); !kapierrors.IsForbidden(err) { + if _, err := nonEscalatingEditClient.Secrets(projectName).List(metav1.ListOptions{}); !kapierrors.IsForbidden(err) { t.Fatalf("unexpected error: %v", err) } escalatingEditToken := &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "escalating-edit-plus-some-padding-here-to-make-the-limit"}, + ObjectMeta: metav1.ObjectMeta{Name: "escalating-edit-plus-some-padding-here-to-make-the-limit"}, ClientName: origin.OpenShiftCLIClientID, ExpiresIn: 200, Scopes: []string{scope.ClusterRoleIndicator + "edit:*:!"}, @@ -218,7 +219,7 @@ func TestScopeEscalations(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := escalatingEditClient.Secrets(projectName).List(kapi.ListOptions{}); err != nil { + if _, err := escalatingEditClient.Secrets(projectName).List(metav1.ListOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } } @@ -237,7 +238,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { } client := &oauthapi.OAuthClient{ - ObjectMeta: kapi.ObjectMeta{Name: "testing-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "testing-client"}, ScopeRestrictions: []oauthapi.ScopeRestriction{ {ExactValues: []string{"user:info"}}, { @@ -262,7 +263,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "no scopes", fail: true, obj: &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "testing-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "testing-client"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -272,7 +273,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied literal", fail: true, obj: &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "testing-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "testing-client"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -283,7 +284,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied role", fail: true, obj: &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "testing-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "testing-client"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -293,7 +294,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { { name: "ok role", obj: &oauthapi.OAuthClientAuthorization{ - ObjectMeta: kapi.ObjectMeta{Name: "testing-client"}, + ObjectMeta: metav1.ObjectMeta{Name: "testing-client"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -321,7 +322,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "no scopes", fail: true, obj: &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -331,7 +332,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied literal", fail: true, obj: &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -342,7 +343,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied role", fail: true, obj: &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -352,7 +353,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { { name: "ok role", obj: &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -380,7 +381,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "no scopes", fail: true, obj: &oauthapi.OAuthAuthorizeToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -390,7 +391,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied literal", fail: true, obj: &oauthapi.OAuthAuthorizeToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -401,7 +402,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { name: "denied role", fail: true, obj: &oauthapi.OAuthAuthorizeToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", @@ -411,7 +412,7 @@ func TestTokensWithIllegalScopes(t *testing.T) { { name: "ok role", obj: &oauthapi.OAuthAuthorizeToken{ - ObjectMeta: kapi.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, + ObjectMeta: metav1.ObjectMeta{Name: "tokenlongenoughtobecreatedwithoutfailing"}, ClientName: client.Name, UserName: "name", UserUID: "uid", diff --git a/test/integration/sdn_test.go b/test/integration/sdn_test.go index 9c491859fe7c..9748663511d0 100644 --- a/test/integration/sdn_test.go +++ b/test/integration/sdn_test.go @@ -5,9 +5,10 @@ import ( "testing" "time" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/client/restclient" - utilwait "k8s.io/kubernetes/pkg/util/wait" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilwait "k8s.io/apimachinery/pkg/util/wait" + restclient "k8s.io/client-go/rest" osclient "github.com/openshift/origin/pkg/client" sdnapi "github.com/openshift/origin/pkg/sdn/api" @@ -28,7 +29,7 @@ func createProject(osClient *osclient.Client, clientConfig *restclient.Config, n } var netns *sdnapi.NetNamespace err = utilwait.ExponentialBackoff(backoff, func() (bool, error) { - netns, err = osClient.NetNamespaces().Get(name) + netns, err = osClient.NetNamespaces().Get(name, metav1.GetOptions{}) if kapierrors.IsNotFound(err) { return false, nil } else if err != nil { @@ -56,7 +57,7 @@ func updateNetNamespace(osClient *osclient.Client, netns *sdnapi.NetNamespace, a } name := netns.Name err = utilwait.ExponentialBackoff(backoff, func() (bool, error) { - netns, err = osClient.NetNamespaces().Get(name) + netns, err = osClient.NetNamespaces().Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -121,7 +122,7 @@ func TestOadmPodNetwork(t *testing.T) { if newNetns2.NetID != origNetns1.NetID { t.Fatalf("expected netns2 (%d) to be joined to netns1 (%d)", newNetns2.NetID, origNetns1.NetID) } - newNetns1, err := osClient.NetNamespaces().Get("one") + newNetns1, err := osClient.NetNamespaces().Get("one", metav1.GetOptions{}) if err != nil { t.Fatalf("error getting refetching NetNamespace: %v", err) } @@ -136,7 +137,7 @@ func TestOadmPodNetwork(t *testing.T) { if newNetns1.NetID != 0 { t.Fatalf("expected netns1 (%d) to be global", newNetns1.NetID) } - newNetns2, err = osClient.NetNamespaces().Get("two") + newNetns2, err = osClient.NetNamespaces().Get("two", metav1.GetOptions{}) if err != nil { t.Fatalf("error getting refetching NetNamespace: %v", err) } diff --git a/test/integration/service_account_test.go b/test/integration/service_account_test.go index 77aba566b34c..6880a0ff2df4 100644 --- a/test/integration/service_account_test.go +++ b/test/integration/service_account_test.go @@ -8,15 +8,16 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/retry" - "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" - clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" - "k8s.io/kubernetes/pkg/serviceaccount" - "k8s.io/kubernetes/pkg/util/wait" serviceaccountadmission "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "github.com/openshift/origin/pkg/cmd/admin/policy" @@ -30,7 +31,7 @@ func TestServiceAccountAuthorization(t *testing.T) { defer testutil.DumpEtcdOnFailure(t) saNamespace := api.NamespaceDefault saName := serviceaccountadmission.DefaultServiceAccountName - saUsername := serviceaccount.MakeUsername(saNamespace, saName) + saUsername := apiserverserviceaccount.MakeUsername(saNamespace, saName) // Start one OpenShift master as "cluster1" to play the external kube server _, cluster1AdminConfigFile, err := testserver.StartTestMaster() @@ -72,7 +73,7 @@ func TestServiceAccountAuthorization(t *testing.T) { } // Make sure the service account doesn't have access - failNS := &api.Namespace{ObjectMeta: api.ObjectMeta{Name: "test-fail"}} + failNS := &api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test-fail"}} if _, err := cluster1SAKubeClient.Namespaces().Create(failNS); !errors.IsForbidden(err) { t.Fatalf("expected forbidden error, got %v", err) } @@ -92,7 +93,7 @@ func TestServiceAccountAuthorization(t *testing.T) { // Make sure the service account now has access // This tests authentication using the etcd-based token getter - passNS := &api.Namespace{ObjectMeta: api.ObjectMeta{Name: "test-pass"}} + passNS := &api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "test-pass"}} if _, err := cluster1SAKubeClient.Namespaces().Create(passNS); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -124,7 +125,7 @@ func writeClientConfigToKubeConfig(config restclient.Config, path string) error return nil } -func waitForServiceAccountToken(client *kclientset.Clientset, ns, name string, attempts int, interval time.Duration) (string, error) { +func waitForServiceAccountToken(client kclientset.Interface, ns, name string, attempts int, interval time.Duration) (string, error) { for i := 0; i <= attempts; i++ { time.Sleep(interval) token, err := getServiceAccountToken(client, ns, name) @@ -138,14 +139,14 @@ func waitForServiceAccountToken(client *kclientset.Clientset, ns, name string, a return "", nil } -func getServiceAccountToken(client *kclientset.Clientset, ns, name string) (string, error) { - secrets, err := client.Core().Secrets(ns).List(api.ListOptions{}) +func getServiceAccountToken(client kclientset.Interface, ns, name string) (string, error) { + secrets, err := client.Core().Secrets(ns).List(metav1.ListOptions{}) if err != nil { return "", err } for _, secret := range secrets.Items { if secret.Type == api.SecretTypeServiceAccountToken && secret.Annotations[api.ServiceAccountNameKey] == name { - sa, err := client.Core().ServiceAccounts(ns).Get(name) + sa, err := client.Core().ServiceAccounts(ns).Get(name, metav1.GetOptions{}) if err != nil { return "", err } @@ -196,7 +197,7 @@ func TestAutomaticCreationOfPullSecrets(t *testing.T) { } } -func waitForServiceAccountPullSecret(client *kclientset.Clientset, ns, name string, attempts int, interval time.Duration) (string, error) { +func waitForServiceAccountPullSecret(client kclientset.Interface, ns, name string, attempts int, interval time.Duration) (string, error) { for i := 0; i <= attempts; i++ { time.Sleep(interval) token, err := getServiceAccountPullSecret(client, ns, name) @@ -210,8 +211,8 @@ func waitForServiceAccountPullSecret(client *kclientset.Clientset, ns, name stri return "", nil } -func getServiceAccountPullSecret(client *kclientset.Clientset, ns, name string) (string, error) { - secrets, err := client.Core().Secrets(ns).List(api.ListOptions{}) +func getServiceAccountPullSecret(client kclientset.Interface, ns, name string) (string, error) { + secrets, err := client.Core().Secrets(ns).List(metav1.ListOptions{}) if err != nil { return "", err } @@ -267,7 +268,7 @@ func TestEnforcingServiceAccount(t *testing.T) { pod.Spec.Volumes = []api.Volume{secretVolume} err = wait.Poll(100*time.Millisecond, 5*time.Second, func() (bool, error) { - if _, err := clusterAdminKubeClient.Pods(api.NamespaceDefault).Create(pod); err != nil { + if _, err := clusterAdminKubeClient.Core().Pods(api.NamespaceDefault).Create(pod); err != nil { // The SA admission controller cache seems to take forever to update. This check comes after the limit check, so until we get it sorted out // check if we're getting this particular error if strings.Contains(err.Error(), "no API token found for service account") { @@ -284,10 +285,10 @@ func TestEnforcingServiceAccount(t *testing.T) { t.Errorf("unexpected error: %v", err) } - clusterAdminKubeClient.Pods(api.NamespaceDefault).Delete(pod.Name, nil) + clusterAdminKubeClient.Core().Pods(api.NamespaceDefault).Delete(pod.Name, nil) err = retry.RetryOnConflict(retry.DefaultBackoff, func() error { - sa, err := clusterAdminKubeClient.ServiceAccounts(api.NamespaceDefault).Get(bootstrappolicy.DeployerServiceAccountName) + sa, err := clusterAdminKubeClient.Core().ServiceAccounts(api.NamespaceDefault).Get(bootstrappolicy.DeployerServiceAccountName, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -295,7 +296,7 @@ func TestEnforcingServiceAccount(t *testing.T) { sa.Annotations = map[string]string{} } sa.Annotations[serviceaccountadmission.EnforceMountableSecretsAnnotation] = "true" - _, err = clusterAdminKubeClient.ServiceAccounts(api.NamespaceDefault).Update(sa) + _, err = clusterAdminKubeClient.Core().ServiceAccounts(api.NamespaceDefault).Update(sa) return err }) if err != nil { @@ -306,8 +307,8 @@ func TestEnforcingServiceAccount(t *testing.T) { pod.Spec.ServiceAccountName = bootstrappolicy.DeployerServiceAccountName err = wait.Poll(100*time.Millisecond, 5*time.Second, func() (bool, error) { - if _, err := clusterAdminKubeClient.Pods(api.NamespaceDefault).Create(pod); err == nil || !strings.Contains(err.Error(), expectedMessage) { - clusterAdminKubeClient.Pods(api.NamespaceDefault).Delete(pod.Name, nil) + if _, err := clusterAdminKubeClient.Core().Pods(api.NamespaceDefault).Create(pod); err == nil || !strings.Contains(err.Error(), expectedMessage) { + clusterAdminKubeClient.Core().Pods(api.NamespaceDefault).Delete(pod.Name, nil) return false, nil } diff --git a/test/integration/service_serving_cert_signer_test.go b/test/integration/service_serving_cert_signer_test.go index a998064378d8..c8d5d1ab9945 100644 --- a/test/integration/service_serving_cert_signer_test.go +++ b/test/integration/service_serving_cert_signer_test.go @@ -5,8 +5,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/watch" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" @@ -41,7 +42,7 @@ func TestServiceServingCertSigner(t *testing.T) { } service := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "my-svc", Annotations: map[string]string{ servingcert.ServingCertSecretAnnotation: "my-secret", @@ -53,13 +54,13 @@ func TestServiceServingCertSigner(t *testing.T) { }, }, } - actualService, err := clusterAdminKubeClientset.Services(ns).Create(service) + actualService, err := clusterAdminKubeClientset.Core().Services(ns).Create(service) if err != nil { t.Fatal(err) } var actualFirstSecret *kapi.Secret - secretWatcher1, err := clusterAdminKubeClientset.Secrets(ns).Watch(kapi.ListOptions{ResourceVersion: actualService.ResourceVersion}) + secretWatcher1, err := clusterAdminKubeClientset.Core().Secrets(ns).Watch(metav1.ListOptions{ResourceVersion: actualService.ResourceVersion}) if err != nil { t.Fatal(err) } @@ -82,13 +83,13 @@ func TestServiceServingCertSigner(t *testing.T) { // now check to make sure that regeneration works. First, remove the annotation entirely, this simulates // the "old data" case where the expiry didn't exist delete(actualFirstSecret.Annotations, servingcert.ServingCertExpiryAnnotation) - actualSecondSecret, err := clusterAdminKubeClientset.Secrets(ns).Update(actualFirstSecret) + actualSecondSecret, err := clusterAdminKubeClientset.Core().Secrets(ns).Update(actualFirstSecret) if err != nil { t.Fatal(err) } var actualThirdSecret *kapi.Secret - secretWatcher2, err := clusterAdminKubeClientset.Secrets(ns).Watch(kapi.ListOptions{ResourceVersion: actualSecondSecret.ResourceVersion}) + secretWatcher2, err := clusterAdminKubeClientset.Core().Secrets(ns).Watch(metav1.ListOptions{ResourceVersion: actualSecondSecret.ResourceVersion}) if err != nil { t.Fatal(err) } @@ -117,13 +118,13 @@ func TestServiceServingCertSigner(t *testing.T) { // now change the annotation to indicate that we're about to expire. The controller should regenerate. actualThirdSecret.Annotations[servingcert.ServingCertExpiryAnnotation] = time.Now().Add(10 * time.Second).Format(time.RFC3339) - actualFourthSecret, err := clusterAdminKubeClientset.Secrets(ns).Update(actualThirdSecret) + actualFourthSecret, err := clusterAdminKubeClientset.Core().Secrets(ns).Update(actualThirdSecret) if err != nil { t.Fatal(err) } var actualFifthSecret *kapi.Secret - secretWatcher3, err := clusterAdminKubeClientset.Secrets(ns).Watch(kapi.ListOptions{ResourceVersion: actualFourthSecret.ResourceVersion}) + secretWatcher3, err := clusterAdminKubeClientset.Core().Secrets(ns).Watch(metav1.ListOptions{ResourceVersion: actualFourthSecret.ResourceVersion}) if err != nil { t.Fatal(err) } diff --git a/test/integration/shortcut_expansion_test.go b/test/integration/shortcut_expansion_test.go index eab855ed65fc..73c7b9246bed 100644 --- a/test/integration/shortcut_expansion_test.go +++ b/test/integration/shortcut_expansion_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/util/sets" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/sets" "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" diff --git a/test/integration/sni_test.go b/test/integration/sni_test.go index 4ab6ffff62f8..779514ea8239 100644 --- a/test/integration/sni_test.go +++ b/test/integration/sni_test.go @@ -9,7 +9,7 @@ import ( "os" "testing" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" configapi "github.com/openshift/origin/pkg/cmd/server/api" "github.com/openshift/origin/pkg/cmd/util" diff --git a/test/integration/storage_versions_test.go b/test/integration/storage_versions_test.go index 99a75bc9e28d..4f8acc7c3dbb 100644 --- a/test/integration/storage_versions_test.go +++ b/test/integration/storage_versions_test.go @@ -7,19 +7,18 @@ import ( etcd "github.com/coreos/etcd/client" "golang.org/x/net/context" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" batch_v1 "k8s.io/kubernetes/pkg/apis/batch/v1" - "k8s.io/kubernetes/pkg/apis/extensions" extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kautoscalingclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion" kbatchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion" - kclientset15 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/runtime" configapi "github.com/openshift/origin/pkg/cmd/server/api" testutil "github.com/openshift/origin/test/util" @@ -33,7 +32,7 @@ type legacyExtensionsAutoscaling struct { } // List takes label and field selectors, and returns the list of horizontalPodAutoscalers that match those selectors. -func (c legacyExtensionsAutoscaling) List(opts kapi.ListOptions) (result *autoscaling.HorizontalPodAutoscalerList, err error) { +func (c legacyExtensionsAutoscaling) List(opts metav1.ListOptions) (result *autoscaling.HorizontalPodAutoscalerList, err error) { result = &autoscaling.HorizontalPodAutoscalerList{} err = c.client.Get().Namespace(c.namespace).Resource("horizontalPodAutoscalers").VersionedParams(&opts, kapi.ParameterCodec).Do().Into(result) return @@ -44,23 +43,23 @@ func (c legacyExtensionsAutoscaling) Create(hpa *autoscaling.HorizontalPodAutosc return &result, c.client.Post().Resource("horizontalpodautoscalers").Namespace(c.namespace).Body(hpa).Do().Into(&result) } -func (c legacyExtensionsAutoscaling) Get(name string) (*autoscaling.HorizontalPodAutoscaler, error) { +func (c legacyExtensionsAutoscaling) Get(name string, options metav1.GetOptions) (*autoscaling.HorizontalPodAutoscaler, error) { var result autoscaling.HorizontalPodAutoscaler return &result, c.client.Get().Resource("horizontalpodautoscalers").Namespace(c.namespace).Name(name).Do().Into(&result) } -func getGVKFromEtcd(etcdClient etcd.Client, masterConfig *configapi.MasterConfig, prefix, ns, name string) (*unversioned.GroupVersionKind, error) { +func getGVKFromEtcd(etcdClient etcd.Client, masterConfig *configapi.MasterConfig, prefix, ns, name string) (*schema.GroupVersionKind, error) { keys := etcd.NewKeysAPI(etcdClient) key := path.Join(masterConfig.EtcdStorageConfig.KubernetesStoragePrefix, prefix, ns, name) resp, err := keys.Get(context.TODO(), key, nil) if err != nil { return nil, err } - _, gvk, err := runtime.UnstructuredJSONScheme.Decode([]byte(resp.Node.Value), nil, nil) + _, gvk, err := unstructured.UnstructuredJSONScheme.Decode([]byte(resp.Node.Value), nil, nil) return gvk, err } -func setupStorageTests(t *testing.T, ns string) (*configapi.MasterConfig, kclientset.Interface, kclientset15.Interface) { +func setupStorageTests(t *testing.T, ns string) (*configapi.MasterConfig, kclientset.Interface) { masterConfig, err := testserver.DefaultMasterOptions() if err != nil { t.Fatalf("unexpected error: %v", err) @@ -83,16 +82,12 @@ func setupStorageTests(t *testing.T, ns string) (*configapi.MasterConfig, kclien if _, err := testserver.CreateNewProject(clusterAdminClient, *clusterAdminClientConfig, ns, "admin"); err != nil { t.Fatalf("unexpected error creating the project: %v", err) } - projectAdminClient, projectAdminKubeClient, projectAdminKubeConfig, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") + _, projectAdminKubeClient, _, err := testutil.GetClientForUser(*clusterAdminClientConfig, "admin") if err != nil { t.Fatalf("unexpected error getting project admin client: %v", err) } - projectAdminKubeClient15 := kclientset15.NewForConfigOrDie(projectAdminKubeConfig) - if err := testutil.WaitForPolicyUpdate(projectAdminClient, ns, "get", extensions.Resource("horizontalpodautoscalers"), true); err != nil { - t.Fatalf("unexpected error waiting for policy update: %v", err) - } - return masterConfig, projectAdminKubeClient, projectAdminKubeClient15 + return masterConfig, projectAdminKubeClient } func TestStorageVersions(t *testing.T) { @@ -102,7 +97,7 @@ func TestStorageVersions(t *testing.T) { defer testutil.DumpEtcdOnFailure(t) etcdServer := testutil.RequireEtcd(t) - masterConfig, kubeClient, kubeClient15 := setupStorageTests(t, ns) + masterConfig, kubeClient := setupStorageTests(t, ns) jobTestcases := map[string]struct { creator kbatchclient.JobInterface @@ -111,7 +106,7 @@ func TestStorageVersions(t *testing.T) { } for name, testcase := range jobTestcases { job := batch.Job{ - ObjectMeta: kapi.ObjectMeta{Name: name + "-job"}, + ObjectMeta: metav1.ObjectMeta{Name: name + "-job"}, Spec: batch.JobSpec{ Template: kapi.PodTemplateSpec{ Spec: kapi.PodSpec{ @@ -135,12 +130,9 @@ func TestStorageVersions(t *testing.T) { } // Ensure it is accessible from both APIs - if _, err := kubeClient.Batch().Jobs(ns).Get(job.Name); err != nil { + if _, err := kubeClient.Batch().Jobs(ns).Get(job.Name, metav1.GetOptions{}); err != nil { t.Errorf("%s: Error reading Job from the batch client: %#v", name, err) } - if _, err := kubeClient15.Extensions().Jobs(ns).Get(job.Name); err != nil { - t.Errorf("%s: Error reading Job from the extensions client: %#v", name, err) - } } legacyClient := legacyExtensionsAutoscaling{ @@ -158,7 +150,7 @@ func TestStorageVersions(t *testing.T) { } for name, testcase := range hpaTestcases { hpa := autoscaling.HorizontalPodAutoscaler{ - ObjectMeta: kapi.ObjectMeta{Name: name + "-hpa"}, + ObjectMeta: metav1.ObjectMeta{Name: name + "-hpa"}, Spec: autoscaling.HorizontalPodAutoscalerSpec{ MaxReplicas: 1, ScaleTargetRef: autoscaling.CrossVersionObjectReference{Kind: "ReplicationController", Name: "myrc"}, @@ -178,10 +170,10 @@ func TestStorageVersions(t *testing.T) { } // Make sure it is available from the api - if _, err := kubeClient.Autoscaling().HorizontalPodAutoscalers(ns).Get(hpa.Name); err != nil { + if _, err := kubeClient.Autoscaling().HorizontalPodAutoscalers(ns).Get(hpa.Name, metav1.GetOptions{}); err != nil { t.Errorf("%s: Error reading HPA.autoscaling from the autoscaling/v1 API: %#v", name, err) } - if _, err := legacyClient.Get(hpa.Name); err != nil { + if _, err := legacyClient.Get(hpa.Name, metav1.GetOptions{}); err != nil { t.Errorf("%s: Error reading HPA.autoscaling from the extensions/v1beta1 API: %#v", name, err) } } @@ -197,7 +189,7 @@ func TestStorageMigration(t *testing.T) { defer testutil.DumpEtcdOnFailure(t) etcdServer := testutil.RequireEtcd(t) - masterConfig, kubeClient, kubeClient15 := setupStorageTests(t, ns) + masterConfig, kubeClient := setupStorageTests(t, ns) // Save an extensions/v1beta1.Job directly in etcd keys := etcd.NewKeysAPI(etcdServer.Client) @@ -207,13 +199,10 @@ func TestStorageMigration(t *testing.T) { } // Ensure it is accessible from both APIs - job, err := kubeClient.Batch().Jobs(ns).Get(jobName) + job, err := kubeClient.Batch().Jobs(ns).Get(jobName, metav1.GetOptions{}) if err != nil { t.Errorf("Error reading Job from the batch client: %#v", err) } - if _, err := kubeClient15.Extensions().Jobs(ns).Get(job.Name); err != nil { - t.Errorf("Error reading Job from the extensions client: %#v", err) - } // Update the job job.Spec.Parallelism = newInt32(2) diff --git a/test/integration/template_test.go b/test/integration/template_test.go index e1132177bf24..11750fe16c5b 100644 --- a/test/integration/template_test.go +++ b/test/integration/template_test.go @@ -6,15 +6,17 @@ import ( "path/filepath" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/runtime" "github.com/openshift/origin/pkg/client" templateapi "github.com/openshift/origin/pkg/template/api" testutil "github.com/openshift/origin/test/util" testserver "github.com/openshift/origin/test/util/server" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" ) func TestTemplate(t *testing.T) { @@ -24,7 +26,7 @@ func TestTemplate(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - for _, version := range []unversioned.GroupVersion{v1.SchemeGroupVersion} { + for _, version := range []schema.GroupVersion{v1.SchemeGroupVersion} { config, err := testutil.GetClusterAdminClientConfig(path) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -46,7 +48,7 @@ func TestTemplate(t *testing.T) { templateObjects := []runtime.Object{ &v1.Service{ - ObjectMeta: v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "${NAME}-tester", Namespace: "somevalue", }, @@ -65,10 +67,10 @@ func TestTemplate(t *testing.T) { if len(obj.Objects) != 1 { t.Fatalf("unexpected object: %#v", obj) } - if err := runtime.DecodeList(obj.Objects, runtime.UnstructuredJSONScheme); err != nil { + if err := runtime.DecodeList(obj.Objects, unstructured.UnstructuredJSONScheme); err != nil { t.Fatalf("unexpected error: %v", err) } - svc := obj.Objects[0].(*runtime.Unstructured).Object + svc := obj.Objects[0].(*unstructured.Unstructured).Object spec := svc["spec"].(map[string]interface{}) meta := svc["metadata"].(map[string]interface{}) // keep existing values diff --git a/test/integration/unprivileged_newproject_test.go b/test/integration/unprivileged_newproject_test.go index a264ea43e6ab..8b214fb0701f 100644 --- a/test/integration/unprivileged_newproject_test.go +++ b/test/integration/unprivileged_newproject_test.go @@ -5,9 +5,8 @@ import ( "testing" "time" - kapi "k8s.io/kubernetes/pkg/api" - kapierrors "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/unversioned" + kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -80,12 +79,12 @@ func TestUnprivilegedNewProject(t *testing.T) { } // confirm that we have access to request the project - allowed, err := valerieOpenshiftClient.ProjectRequests().List(kapi.ListOptions{}) + allowed, err := valerieOpenshiftClient.ProjectRequests().List(metav1.ListOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } - if allowed.Status != unversioned.StatusSuccess { - t.Fatalf("expected %v, got %v", unversioned.StatusSuccess, allowed.Status) + if allowed.Status != metav1.StatusSuccess { + t.Fatalf("expected %v, got %v", metav1.StatusSuccess, allowed.Status) } requestProject := oc.NewProjectOptions{ @@ -103,7 +102,7 @@ func TestUnprivilegedNewProject(t *testing.T) { waitForProject(t, valerieOpenshiftClient, "new-project", 5*time.Second, 10) - actualProject, err := valerieProjectClient.Projects().Get("new-project") + actualProject, err := valerieProjectClient.Projects().Get("new-project", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -162,7 +161,7 @@ func TestUnprivilegedNewProjectFromTemplate(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if _, err := clusterAdminClient.Projects().Create(&projectapi.Project{ObjectMeta: kapi.ObjectMeta{Name: namespace}}); err != nil { + if _, err := clusterAdminClient.Projects().Create(&projectapi.Project{ObjectMeta: metav1.ObjectMeta{Name: namespace}}); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -192,7 +191,7 @@ func TestUnprivilegedNewProjectFromTemplate(t *testing.T) { } waitForProject(t, valerieOpenshiftClient, "new-project", 5*time.Second, 10) - project, err := valerieOpenshiftClient.Projects().Get("new-project") + project, err := valerieOpenshiftClient.Projects().Get("new-project", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -224,7 +223,7 @@ func TestUnprivilegedNewProjectDenied(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - role, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.SelfProvisionerRoleName) + role, err := clusterAdminClient.ClusterRoles().Get(bootstrappolicy.SelfProvisionerRoleName, metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -263,7 +262,7 @@ func TestUnprivilegedNewProjectDenied(t *testing.T) { } // confirm that we have access to request the project - _, err = valerieOpenshiftClient.ProjectRequests().List(kapi.ListOptions{}) + _, err = valerieOpenshiftClient.ProjectRequests().List(metav1.ListOptions{}) if err == nil { t.Fatalf("expected error: %v", err) } diff --git a/test/integration/userclient_test.go b/test/integration/userclient_test.go index 9f948427bf79..4aafa4664b3a 100644 --- a/test/integration/userclient_test.go +++ b/test/integration/userclient_test.go @@ -9,10 +9,11 @@ import ( etcdclient "github.com/coreos/etcd/client" "golang.org/x/net/context" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + etcdutil "k8s.io/apiserver/pkg/storage/etcd/util" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" - etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util" - "k8s.io/kubernetes/pkg/types" authapi "github.com/openshift/origin/pkg/auth/api" "github.com/openshift/origin/pkg/auth/userregistry/identitymapper" @@ -37,7 +38,7 @@ func makeIdentityInfo(providerName, providerUserName string, extra map[string]st func makeUser(name string, identities ...string) *api.User { return &api.User{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, }, Identities: identities, @@ -45,7 +46,7 @@ func makeUser(name string, identities ...string) *api.User { } func makeIdentity(providerName, providerUserName string) *api.Identity { return &api.Identity{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: providerName + ":" + providerUserName, }, ProviderName: providerName, @@ -60,7 +61,7 @@ func makeIdentityWithUserReference(providerName, providerUserName string, userNa } func makeMapping(user, identity string) *api.UserIdentityMapping { return &api.UserIdentityMapping{ - ObjectMeta: kapi.ObjectMeta{Name: identity}, + ObjectMeta: metav1.ObjectMeta{Name: identity}, User: kapi.ObjectReference{Name: user}, Identity: kapi.ObjectReference{Name: identity}, } @@ -438,7 +439,7 @@ func TestUserInitialization(t *testing.T) { } if testcase.UpdateUser != nil { if testcase.UpdateUser.ResourceVersion == "" { - existingUser, err := clusterAdminClient.Users().Get(testcase.UpdateUser.Name) + existingUser, err := clusterAdminClient.Users().Get(testcase.UpdateUser.Name, metav1.GetOptions{}) if err != nil { t.Errorf("%s: Could not get user to update: %v", k, err) continue @@ -478,7 +479,7 @@ func TestUserInitialization(t *testing.T) { return } - user, err := clusterAdminClient.Users().Get(userInfo.GetName()) + user, err := clusterAdminClient.Users().Get(userInfo.GetName(), metav1.GetOptions{}) if err != nil { t.Errorf("%s: Error getting user: %v", k, err) } diff --git a/test/integration/v2_docker_registry_test.go b/test/integration/v2_docker_registry_test.go index 3f195a83a481..fd7ffe5d8592 100644 --- a/test/integration/v2_docker_registry_test.go +++ b/test/integration/v2_docker_registry_test.go @@ -18,7 +18,7 @@ import ( _ "github.com/docker/distribution/registry/storage/driver/inmemory" "github.com/docker/libtrust" - kapi "k8s.io/kubernetes/pkg/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/openshift/origin/pkg/cmd/dockerregistry" cmdutil "github.com/openshift/origin/pkg/cmd/util" @@ -132,7 +132,7 @@ middleware: } stream := imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: testutil.Namespace(), Name: "test", }, @@ -241,7 +241,7 @@ middleware: } // test auto provisioning - otherStream, err := adminClient.ImageStreams(testutil.Namespace()).Get("otherrepo") + otherStream, err := adminClient.ImageStreams(testutil.Namespace()).Get("otherrepo", metav1.GetOptions{}) t.Logf("otherStream=%#v, err=%v", otherStream, err) if err == nil { t.Fatalf("expected error getting otherrepo") @@ -257,7 +257,7 @@ middleware: t.Fatal(err) } - otherStream, err = adminClient.ImageStreams(testutil.Namespace()).Get("otherrepo") + otherStream, err = adminClient.ImageStreams(testutil.Namespace()).Get("otherrepo", metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error getting otherrepo: %s", err) } diff --git a/test/integration/web_console_access_test.go b/test/integration/web_console_access_test.go index 17b62498b9a2..065939c1da25 100644 --- a/test/integration/web_console_access_test.go +++ b/test/integration/web_console_access_test.go @@ -14,7 +14,7 @@ import ( "strings" "testing" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" configapi "github.com/openshift/origin/pkg/cmd/server/api" testutil "github.com/openshift/origin/test/util" diff --git a/test/integration/web_console_extensions_test.go b/test/integration/web_console_extensions_test.go index f0ba0e6eb395..69779d373862 100644 --- a/test/integration/web_console_extensions_test.go +++ b/test/integration/web_console_extensions_test.go @@ -13,7 +13,7 @@ import ( "strings" "testing" - knet "k8s.io/kubernetes/pkg/util/net" + knet "k8s.io/apimachinery/pkg/util/net" configapi "github.com/openshift/origin/pkg/cmd/server/api" testutil "github.com/openshift/origin/test/util" diff --git a/test/integration/webhook_test.go b/test/integration/webhook_test.go index c1bc3962599b..6b92944ab522 100644 --- a/test/integration/webhook_test.go +++ b/test/integration/webhook_test.go @@ -8,8 +8,9 @@ import ( "testing" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/restclient" buildapi "github.com/openshift/origin/pkg/build/api" buildapiv1 "github.com/openshift/origin/pkg/build/api/v1" @@ -37,7 +38,7 @@ func TestWebhook(t *testing.T) { } kubeClient.Core().Namespaces().Create(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: testutil.Namespace()}, }) if err := testserver.WaitForServiceAccounts(kubeClient, testutil.Namespace(), []string{bootstrappolicy.BuilderServiceAccountName, bootstrappolicy.DefaultServiceAccountName}); err != nil { @@ -117,7 +118,7 @@ func TestWebhook(t *testing.T) { t.Fatalf("%s: Unable to unmarshal returned body into a Build object: %v", test.Name, err) } - actual, err := osClient.Builds(testutil.Namespace()).Get(returnedBuild.Name) + actual, err := osClient.Builds(testutil.Namespace()).Get(returnedBuild.Name, metav1.GetOptions{}) if err != nil { t.Errorf("Created build not found in cluster: %v", err) } @@ -164,7 +165,7 @@ func TestWebhookGitHubPushWithImage(t *testing.T) { // create imagerepo imageStream := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "image-stream"}, + ObjectMeta: metav1.ObjectMeta{Name: "image-stream"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "registry:3000/integration/imagestream", Tags: map[string]imageapi.TagReference{ @@ -182,10 +183,10 @@ func TestWebhookGitHubPushWithImage(t *testing.T) { } ism := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: "image-stream"}, + ObjectMeta: metav1.ObjectMeta{Name: "image-stream"}, Tag: "validtag", Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myimage", }, DockerImageReference: "registry:3000/integration/imagestream:success", @@ -222,7 +223,7 @@ func TestWebhookGitHubPushWithImage(t *testing.T) { t.Errorf("Webhook returned incomplete or wrong Build") } - actual, err := clusterAdminClient.Builds(testutil.Namespace()).Get(returnedBuild.Name) + actual, err := clusterAdminClient.Builds(testutil.Namespace()).Get(returnedBuild.Name, metav1.GetOptions{}) if err != nil { t.Errorf("Created build not found in cluster: %v", err) } @@ -278,7 +279,7 @@ func TestWebhookGitHubPushWithImageStream(t *testing.T) { // create imagerepo imageStream := &imageapi.ImageStream{ - ObjectMeta: kapi.ObjectMeta{Name: "image-stream"}, + ObjectMeta: metav1.ObjectMeta{Name: "image-stream"}, Spec: imageapi.ImageStreamSpec{ DockerImageRepository: "registry:3000/integration/imagestream", Tags: map[string]imageapi.TagReference{ @@ -296,10 +297,10 @@ func TestWebhookGitHubPushWithImageStream(t *testing.T) { } ism := &imageapi.ImageStreamMapping{ - ObjectMeta: kapi.ObjectMeta{Name: "image-stream"}, + ObjectMeta: metav1.ObjectMeta{Name: "image-stream"}, Tag: "validtag", Image: imageapi.Image{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "myimage", }, DockerImageReference: "registry:3000/integration/imagestream:success", @@ -316,7 +317,7 @@ func TestWebhookGitHubPushWithImageStream(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + watch, err := clusterAdminClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to builds: %v", err) } @@ -363,7 +364,7 @@ func TestWebhookGitHubPing(t *testing.T) { } kubeClient.Core().Namespaces().Create(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: testutil.Namespace()}, + ObjectMeta: metav1.ObjectMeta{Name: testutil.Namespace()}, }) // create buildconfig @@ -372,7 +373,7 @@ func TestWebhookGitHubPing(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - watch, err := osClient.Builds(testutil.Namespace()).Watch(kapi.ListOptions{}) + watch, err := osClient.Builds(testutil.Namespace()).Watch(metav1.ListOptions{}) if err != nil { t.Fatalf("Couldn't subscribe to builds: %v", err) } @@ -426,7 +427,7 @@ func postFile(client restclient.HTTPClient, headerFunc func(*http.Header), filen func mockBuildConfigImageParms(imageName, imageStream, imageTag string) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pushbuild", }, Spec: buildapi.BuildConfigSpec{ @@ -533,7 +534,7 @@ func mockBuildConfigImageParms(imageName, imageStream, imageTag string) *buildap func mockBuildConfigImageStreamParms(imageName, imageStream, imageTag string) *buildapi.BuildConfig { return &buildapi.BuildConfig{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "pushbuild", }, Spec: buildapi.BuildConfigSpec{ diff --git a/test/util/client.go b/test/util/client.go index 0c33bc33120c..5f386908e17b 100644 --- a/test/util/client.go +++ b/test/util/client.go @@ -8,14 +8,15 @@ import ( "path/filepath" "time" + kerrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/util/wait" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" - kerrs "k8s.io/kubernetes/pkg/api/errors" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kcoreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" configapi "github.com/openshift/origin/pkg/cmd/server/api" @@ -35,7 +36,7 @@ func KubeConfigPath() string { return filepath.Join(GetBaseDir(), "openshift.local.config", "master", "admin.kubeconfig") } -func GetClusterAdminKubeClient(adminKubeConfigFile string) (*kclientset.Clientset, error) { +func GetClusterAdminKubeClient(adminKubeConfigFile string) (kclientset.Interface, error) { c, _, err := configapi.GetKubeClient(adminKubeConfigFile, nil) if err != nil { return nil, err @@ -90,13 +91,13 @@ func GetScopedClientForUser(adminClient *client.Client, clientConfig restclient. if _, _, _, err := GetClientForUser(clientConfig, username); err != nil { return nil, nil, nil, err } - user, err := adminClient.Users().Get(username) + user, err := adminClient.Users().Get(username, metav1.GetOptions{}) if err != nil { return nil, nil, nil, err } token := &oauthapi.OAuthAccessToken{ - ObjectMeta: kapi.ObjectMeta{Name: fmt.Sprintf("%s-token-plus-some-padding-here-to-make-the-limit-%d", username, rand.Int())}, + ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("%s-token-plus-some-padding-here-to-make-the-limit-%d", username, rand.Int())}, ClientName: "openshift-challenging-client", ExpiresIn: 86400, Scopes: scopes, @@ -121,15 +122,15 @@ func GetScopedClientForUser(adminClient *client.Client, clientConfig restclient. return osClient, kubeClient, &scopedConfig, nil } -func GetClientForServiceAccount(adminClient *kclientset.Clientset, clientConfig restclient.Config, namespace, name string) (*client.Client, *kclientset.Clientset, *restclient.Config, error) { - _, err := adminClient.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: namespace}}) +func GetClientForServiceAccount(adminClient kclientset.Interface, clientConfig restclient.Config, namespace, name string) (*client.Client, *kclientset.Clientset, *restclient.Config, error) { + _, err := adminClient.Core().Namespaces().Create(&kapi.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace}}) if err != nil && !kerrs.IsAlreadyExists(err) { return nil, nil, nil, err } - sa, err := adminClient.Core().ServiceAccounts(namespace).Create(&kapi.ServiceAccount{ObjectMeta: kapi.ObjectMeta{Name: name}}) + sa, err := adminClient.Core().ServiceAccounts(namespace).Create(&kapi.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: name}}) if kerrs.IsAlreadyExists(err) { - sa, err = adminClient.Core().ServiceAccounts(namespace).Get(name) + sa, err = adminClient.Core().ServiceAccounts(namespace).Get(name, metav1.GetOptions{}) } if err != nil { return nil, nil, nil, err @@ -138,7 +139,7 @@ func GetClientForServiceAccount(adminClient *kclientset.Clientset, clientConfig token := "" err = wait.Poll(time.Second, 30*time.Second, func() (bool, error) { selector := fields.OneTermEqualSelector(kapi.SecretTypeField, string(kapi.SecretTypeServiceAccountToken)) - secrets, err := adminClient.Core().Secrets(namespace).List(kapi.ListOptions{FieldSelector: selector}) + secrets, err := adminClient.Core().Secrets(namespace).List(metav1.ListOptions{FieldSelector: selector.String()}) if err != nil { return false, err } @@ -184,7 +185,7 @@ func WaitForResourceQuotaLimitSync( expectedResourceNames := quota.ResourceNames(hardLimit) - list, err := client.List(kapi.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector()}) + list, err := client.List(metav1.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector().String()}) if err != nil { return err } @@ -197,7 +198,7 @@ func WaitForResourceQuotaLimitSync( } rv := list.ResourceVersion - w, err := client.Watch(kapi.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector(), ResourceVersion: rv}) + w, err := client.Watch(metav1.ListOptions{FieldSelector: fields.Set{"metadata.name": name}.AsSelector().String(), ResourceVersion: rv}) if err != nil { return err } diff --git a/test/util/etcd.go b/test/util/etcd.go index 19082c50693f..496912506e50 100644 --- a/test/util/etcd.go +++ b/test/util/etcd.go @@ -14,8 +14,8 @@ import ( etcdclient "github.com/coreos/etcd/client" + etcdtest "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/kubernetes/pkg/capabilities" - etcdtest "k8s.io/kubernetes/pkg/storage/etcd/testing" serveretcd "github.com/openshift/origin/pkg/cmd/server/etcd" ) diff --git a/test/util/helpers.go b/test/util/helpers.go index ad123f07c4ae..a4ce2e88c8c6 100644 --- a/test/util/helpers.go +++ b/test/util/helpers.go @@ -3,9 +3,9 @@ package util import ( "io/ioutil" + "k8s.io/apimachinery/pkg/runtime" + kyaml "k8s.io/apimachinery/pkg/util/yaml" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/runtime" - kyaml "k8s.io/kubernetes/pkg/util/yaml" imageapi "github.com/openshift/origin/pkg/image/api" templateapi "github.com/openshift/origin/pkg/template/api" diff --git a/test/util/html/form_test.go b/test/util/html/form_test.go index fc5434676600..624e4c785fc0 100644 --- a/test/util/html/form_test.go +++ b/test/util/html/form_test.go @@ -118,7 +118,7 @@ func TestNewRequestFromForm(t *testing.T) { t.Fatal(err) } forms := GetElementsByTagName(root, "form") - req, err := NewRequestFromForm(forms[0], tc.CurrentURL) + req, err := NewRequestFromForm(forms[0], tc.CurrentURL, nil) if err != nil { t.Errorf("%d: %v", i, err) continue diff --git a/test/util/namespace.go b/test/util/namespace.go index 525229efeb3a..28151eeb670b 100644 --- a/test/util/namespace.go +++ b/test/util/namespace.go @@ -4,9 +4,10 @@ import ( "fmt" "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/watch" "github.com/openshift/origin/pkg/cmd/util" ) @@ -31,14 +32,14 @@ func CreateNamespace(clusterAdminKubeConfig, name string) (err error) { if err != nil { return err } - _, err = clusterAdminKubeClient.Namespaces().Create(&kapi.Namespace{ - ObjectMeta: kapi.ObjectMeta{Name: name}, + _, err = clusterAdminKubeClient.Core().Namespaces().Create(&kapi.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: name}, }) return err } -func DeleteAndWaitForNamespaceTermination(c *kclientset.Clientset, name string) error { - w, err := c.Core().Namespaces().Watch(kapi.ListOptions{}) +func DeleteAndWaitForNamespaceTermination(c kclientset.Interface, name string) error { + w, err := c.Core().Namespaces().Watch(metav1.ListOptions{}) if err != nil { return err } diff --git a/test/util/policy.go b/test/util/policy.go index cb1c7f164bfd..2075f01ceb20 100644 --- a/test/util/policy.go +++ b/test/util/policy.go @@ -3,8 +3,8 @@ package util import ( "time" - "k8s.io/kubernetes/pkg/api/unversioned" - "k8s.io/kubernetes/pkg/util/wait" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" authorizationapi "github.com/openshift/origin/pkg/authorization/api" "github.com/openshift/origin/pkg/client" @@ -17,7 +17,7 @@ const ( // WaitForPolicyUpdate checks if the given client can perform the named verb and action. // If PolicyCachePollTimeout is reached without the expected condition matching, an error is returned -func WaitForPolicyUpdate(c *client.Client, namespace, verb string, resource unversioned.GroupResource, allowed bool) error { +func WaitForPolicyUpdate(c *client.Client, namespace, verb string, resource schema.GroupResource, allowed bool) error { review := &authorizationapi.LocalSubjectAccessReview{Action: authorizationapi.Action{Verb: verb, Group: resource.Group, Resource: resource.Resource}} err := wait.Poll(PolicyCachePollInterval, PolicyCachePollTimeout, func() (bool, error) { response, err := c.LocalSubjectAccessReviews(namespace).Create(review) @@ -31,7 +31,7 @@ func WaitForPolicyUpdate(c *client.Client, namespace, verb string, resource unve // WaitForClusterPolicyUpdate checks if the given client can perform the named verb and action. // If PolicyCachePollTimeout is reached without the expected condition matching, an error is returned -func WaitForClusterPolicyUpdate(c *client.Client, verb string, resource unversioned.GroupResource, allowed bool) error { +func WaitForClusterPolicyUpdate(c *client.Client, verb string, resource schema.GroupResource, allowed bool) error { review := &authorizationapi.SubjectAccessReview{Action: authorizationapi.Action{Verb: verb, Group: resource.Group, Resource: resource.Resource}} err := wait.Poll(PolicyCachePollInterval, PolicyCachePollTimeout, func() (bool, error) { response, err := c.SubjectAccessReviews().Create(review) diff --git a/test/util/server/server.go b/test/util/server/server.go index 20cc161641a1..1ec17b6d4b71 100644 --- a/test/util/server/server.go +++ b/test/util/server/server.go @@ -11,10 +11,11 @@ import ( "github.com/golang/glog" "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/api" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/client/restclient" - "k8s.io/kubernetes/pkg/util/wait" "github.com/openshift/origin/pkg/client" newproject "github.com/openshift/origin/pkg/cmd/admin/project" @@ -358,7 +359,7 @@ func StartConfiguredMasterWithOptions(masterConfig *configapi.MasterConfig, test for { // confirm that we can actually query from the api server if client, err := util.GetClusterAdminClient(adminKubeConfigFile); err == nil { - if _, err := client.ClusterPolicies().List(kapi.ListOptions{}); err == nil { + if _, err := client.ClusterPolicies().List(metav1.ListOptions{}); err == nil { break } } @@ -391,7 +392,7 @@ func StartTestMasterAPI() (*configapi.MasterConfig, string, error) { // serviceAccountSecretsExist checks whether the given service account has at least a token and a dockercfg // secret associated with it. -func serviceAccountSecretsExist(clientset *kclientset.Clientset, namespace string, sa *kapi.ServiceAccount) bool { +func serviceAccountSecretsExist(clientset kclientset.Interface, namespace string, sa *kapi.ServiceAccount) bool { foundTokenSecret := false foundDockercfgSecret := false for _, secret := range sa.Secrets { @@ -399,7 +400,7 @@ func serviceAccountSecretsExist(clientset *kclientset.Clientset, namespace strin if len(secret.Namespace) > 0 { ns = secret.Namespace } - secret, err := clientset.Core().Secrets(ns).Get(secret.Name) + secret, err := clientset.Core().Secrets(ns).Get(secret.Name, metav1.GetOptions{}) if err == nil { switch secret.Type { case kapi.SecretTypeServiceAccountToken: @@ -415,7 +416,7 @@ func serviceAccountSecretsExist(clientset *kclientset.Clientset, namespace strin // WaitForPodCreationServiceAccounts ensures that the service account needed for pod creation exists // and that the cache for the admission control that checks for pod tokens has caught up to allow // pod creation. -func WaitForPodCreationServiceAccounts(clientset *kclientset.Clientset, namespace string) error { +func WaitForPodCreationServiceAccounts(clientset kclientset.Interface, namespace string) error { if err := WaitForServiceAccounts(clientset, namespace, []string{bootstrappolicy.DefaultServiceAccountName}); err != nil { return err } @@ -435,7 +436,7 @@ func WaitForPodCreationServiceAccounts(clientset *kclientset.Clientset, namespac glog.Warningf("Error attempting to create test pod: %v", err) return false, nil } - err = clientset.Core().Pods(namespace).Delete(pod.Name, kapi.NewDeleteOptions(0)) + err = clientset.Core().Pods(namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) if err != nil { return false, err } @@ -445,11 +446,11 @@ func WaitForPodCreationServiceAccounts(clientset *kclientset.Clientset, namespac // WaitForServiceAccounts ensures the service accounts needed by build pods exist in the namespace // The extra controllers tend to starve the service account controller -func WaitForServiceAccounts(clientset *kclientset.Clientset, namespace string, accounts []string) error { +func WaitForServiceAccounts(clientset kclientset.Interface, namespace string, accounts []string) error { serviceAccounts := clientset.Core().ServiceAccounts(namespace) return wait.Poll(time.Second, ServiceAccountWaitTimeout, func() (bool, error) { for _, account := range accounts { - if sa, err := serviceAccounts.Get(account); err != nil { + if sa, err := serviceAccounts.Get(account, metav1.GetOptions{}); err != nil { if !serviceAccountSecretsExist(clientset, namespace, sa) { continue } diff --git a/test/util/verify.go b/test/util/verify.go index 33e6eba89347..01b987abeca3 100644 --- a/test/util/verify.go +++ b/test/util/verify.go @@ -6,8 +6,9 @@ import ( "strconv" imageapi "github.com/openshift/origin/pkg/image/api" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/intstr" ) type ValidateFunc func(string) error @@ -40,7 +41,7 @@ func WaitForAddress(pod *kapi.Pod, service *kapi.Service, ns string) (string, er if err != nil { return "", err } - watcher, err := client.Core().Endpoints(ns).Watch(kapi.ListOptions{}) + watcher, err := client.Core().Endpoints(ns).Watch(metav1.ListOptions{}) if err != nil { return "", fmt.Errorf("Unexpected error: %v", err) } @@ -82,7 +83,7 @@ func CreatePodFromImage(stream *imageapi.ImageStream, tag, ns string) *kapi.Pod imageName += ":" + tag } pod := &kapi.Pod{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ns, Labels: map[string]string{"name": ns}, }, @@ -111,7 +112,7 @@ func CreateServiceForPod(pod *kapi.Pod, ns string) *kapi.Service { return nil } service := &kapi.Service{ - ObjectMeta: kapi.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: ns, }, Spec: kapi.ServiceSpec{ diff --git a/tools/genconversion/conversion.go b/tools/genconversion/conversion.go index f69a283e6fed..a83238c46e17 100644 --- a/tools/genconversion/conversion.go +++ b/tools/genconversion/conversion.go @@ -10,10 +10,10 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/gengo/args" "k8s.io/gengo/generator" "k8s.io/kubernetes/cmd/libs/go2idl/conversion-gen/generators" - "k8s.io/kubernetes/pkg/util/sets" ) func main() { @@ -39,8 +39,10 @@ func main() { supportingPackages := sets.NewString( "k8s.io/kubernetes/pkg/api/v1", "k8s.io/kubernetes/pkg/api", - "k8s.io/kubernetes/pkg/runtime", - "k8s.io/kubernetes/pkg/conversion", + "k8s.io/apimachinery/pkg/apis/meta/v1", + "k8s.io/apimachinery/pkg/apis/meta/internalversion", + "k8s.io/apimachinery/pkg/runtime", + "k8s.io/apimachinery/pkg/conversion", "github.com/openshift/origin/pkg/authorization/api", "github.com/openshift/origin/pkg/build/api", "github.com/openshift/origin/pkg/deploy/api", diff --git a/tools/gendeepcopy/deep_copy.go b/tools/gendeepcopy/deep_copy.go index d97eaf56606b..c36f96d3256b 100644 --- a/tools/gendeepcopy/deep_copy.go +++ b/tools/gendeepcopy/deep_copy.go @@ -21,7 +21,7 @@ func main() { // Override defaults. These are Kubernetes specific input locations. arguments.InputDirs = []string{ "k8s.io/kubernetes/pkg/api", - "k8s.io/kubernetes/pkg/api/unversioned", + "k8s.io/apimachinery/pkg/apis/meta/v1", "k8s.io/kubernetes/pkg/api/v1", "k8s.io/kubernetes/pkg/apis/authorization", "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", @@ -33,9 +33,9 @@ func main() { "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", "k8s.io/kubernetes/pkg/apis/extensions", "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", - "k8s.io/kubernetes/pkg/runtime", - "k8s.io/kubernetes/pkg/util/intstr", - "k8s.io/kubernetes/pkg/util/sets", + "k8s.io/apimachinery/pkg/runtime", + "k8s.io/apimachinery/pkg/util/intstr", + "k8s.io/apimachinery/pkg/util/sets", "github.com/openshift/origin/pkg/authorization/api/v1", "github.com/openshift/origin/pkg/authorization/api", "github.com/openshift/origin/pkg/build/api/v1", diff --git a/tools/genswaggerdoc/gen_swagger_doc.go b/tools/genswaggerdoc/gen_swagger_doc.go index 4917d71b550e..6cf37e02d78b 100644 --- a/tools/genswaggerdoc/gen_swagger_doc.go +++ b/tools/genswaggerdoc/gen_swagger_doc.go @@ -6,7 +6,7 @@ import ( "os" "runtime" - kruntime "k8s.io/kubernetes/pkg/runtime" + kruntime "k8s.io/apimachinery/pkg/runtime" flag "github.com/spf13/pflag" ) diff --git a/tools/rebasehelpers/godepchecker/godepchecker.go b/tools/rebasehelpers/godepchecker/godepchecker.go index e21007dddee6..1a60d365325d 100644 --- a/tools/rebasehelpers/godepchecker/godepchecker.go +++ b/tools/rebasehelpers/godepchecker/godepchecker.go @@ -12,7 +12,7 @@ import ( "sort" "strings" - "k8s.io/kubernetes/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/sets" "github.com/openshift/origin/tools/rebasehelpers/util" )