From 527aac0bb30a0a166572de542c62ff41a87c41cd Mon Sep 17 00:00:00 2001 From: David Eads Date: Fri, 20 Jul 2018 13:14:37 -0400 Subject: [PATCH] start tightening scheme usage in oc --- cmd/oc/oc.go | 25 +- cmd/openshift/openshift.go | 2 +- examples/examples_test.go | 2 +- pkg/api/install/fastpath_conversion.go | 539 ++++++++++++++++ pkg/api/install/install.go | 587 ++---------------- pkg/api/legacy/install.go | 4 +- .../legacygroupification/groupification.go | 3 + pkg/cmd/openshift-apiserver/cmd.go | 2 +- pkg/oc/cli/cli.go | 6 - pkg/oc/cli/debug/debug.go | 6 +- pkg/oc/cli/logs/logs.go | 4 +- pkg/oc/cli/rollout/cancel.go | 9 +- pkg/oc/cli/rollout/retry.go | 6 +- pkg/oc/cli/set/buildhook.go | 6 +- pkg/oc/cli/set/buildsecret.go | 8 +- pkg/oc/cli/set/deploymenthook.go | 6 +- pkg/oc/cli/set/env.go | 8 +- pkg/oc/cli/set/helper.go | 29 - pkg/oc/cli/set/imagelookup.go | 6 +- pkg/oc/cli/set/probe.go | 6 +- pkg/oc/cli/set/routebackends.go | 6 +- pkg/oc/cli/set/triggers.go | 6 +- pkg/oc/cli/set/volume.go | 6 +- pkg/oc/util/ocscheme/groupified.go | 59 -- pkg/oc/util/ocscheme/printing.go | 42 +- pkg/oc/util/ocscheme/read_internal.go | 44 +- test/util/server/server.go | 2 +- tools/etcdhelper/etcdhelper.go | 14 +- 28 files changed, 665 insertions(+), 778 deletions(-) create mode 100644 pkg/api/install/fastpath_conversion.go delete mode 100644 pkg/oc/util/ocscheme/groupified.go diff --git a/cmd/oc/oc.go b/cmd/oc/oc.go index 14d11eb68829..5a7896eb059f 100644 --- a/cmd/oc/oc.go +++ b/cmd/oc/oc.go @@ -10,16 +10,15 @@ import ( "k8s.io/apiserver/pkg/util/logs" "k8s.io/kubernetes/pkg/kubectl/scheme" + "github.com/openshift/api" + "github.com/openshift/api/authorization" + "github.com/openshift/api/quota" "github.com/openshift/library-go/pkg/serviceability" + "github.com/openshift/origin/pkg/api/install" + "github.com/openshift/origin/pkg/api/legacy" "github.com/openshift/origin/pkg/oc/cli" "github.com/openshift/origin/pkg/version" - - // install all APIs - apiinstall "github.com/openshift/origin/pkg/api/install" - _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" - _ "k8s.io/kubernetes/pkg/apis/batch/install" - _ "k8s.io/kubernetes/pkg/apis/core/install" - _ "k8s.io/kubernetes/pkg/apis/extensions/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) func main() { @@ -33,7 +32,17 @@ func main() { runtime.GOMAXPROCS(runtime.NumCPU()) } - apiinstall.InstallAll(scheme.Scheme) + // the kubectl scheme expects to have all the recognizable external types it needs to consume. Install those here. + api.Install(scheme.Scheme) + legacy.InstallExternalLegacyAll(scheme.Scheme) + // TODO fix up the install for the "all types" + authorization.Install(scheme.Scheme) + quota.Install(scheme.Scheme) + + // the legacyscheme is used in kubectl and expects to have the internal types registered. Explicitly wire our types here. + // this does + install.InstallInternalOpenShift(legacyscheme.Scheme) + legacy.InstallInternalLegacyAll(scheme.Scheme) basename := filepath.Base(os.Args[0]) command := cli.CommandFor(basename) diff --git a/cmd/openshift/openshift.go b/cmd/openshift/openshift.go index 41b4c2b71b99..6ccd5d7285f7 100644 --- a/cmd/openshift/openshift.go +++ b/cmd/openshift/openshift.go @@ -29,7 +29,7 @@ func main() { defer serviceability.BehaviorOnPanic(os.Getenv("OPENSHIFT_ON_PANIC"), version.Get())() defer serviceability.Profile(os.Getenv("OPENSHIFT_PROFILE")).Stop() - legacy.InstallLegacyInternalAll(legacyscheme.Scheme) + legacy.InstallInternalLegacyAll(legacyscheme.Scheme) rand.Seed(time.Now().UTC().UnixNano()) if len(os.Getenv("GOMAXPROCS")) == 0 { diff --git a/examples/examples_test.go b/examples/examples_test.go index b064e029333f..fde3c880795a 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -33,7 +33,7 @@ import ( ) func init() { - legacy.InstallLegacyInternalAll(legacyscheme.Scheme) + legacy.InstallInternalLegacyAll(legacyscheme.Scheme) } func walkJSONFiles(inDir string, fn func(name, path string, data []byte)) error { diff --git a/pkg/api/install/fastpath_conversion.go b/pkg/api/install/fastpath_conversion.go new file mode 100644 index 000000000000..832a0a2ecd8d --- /dev/null +++ b/pkg/api/install/fastpath_conversion.go @@ -0,0 +1,539 @@ +package install + +import ( + kv1 "k8s.io/api/core/v1" + + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/kubernetes/pkg/api/legacyscheme" + kapi "k8s.io/kubernetes/pkg/apis/core" + kapiv1 "k8s.io/kubernetes/pkg/apis/core/v1" + + // we have a strong dependency on kube objects for deployments and scale + _ "k8s.io/kubernetes/pkg/apis/apps/install" + _ "k8s.io/kubernetes/pkg/apis/authentication/install" + _ "k8s.io/kubernetes/pkg/apis/authorization/install" + _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" + _ "k8s.io/kubernetes/pkg/apis/batch/install" + _ "k8s.io/kubernetes/pkg/apis/certificates/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" + _ "k8s.io/kubernetes/pkg/apis/extensions/install" + _ "k8s.io/kubernetes/pkg/apis/policy/install" + _ "k8s.io/kubernetes/pkg/apis/rbac/install" + _ "k8s.io/kubernetes/pkg/apis/settings/install" + _ "k8s.io/kubernetes/pkg/apis/storage/install" + + _ "github.com/openshift/origin/pkg/cmd/server/apis/config/install" + + metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watchapi "k8s.io/apimachinery/pkg/watch" + + appsapi "github.com/openshift/origin/pkg/apps/apis/apps" + authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization" + buildapi "github.com/openshift/origin/pkg/build/apis/build" + imageapi "github.com/openshift/origin/pkg/image/apis/image" + oauthapi "github.com/openshift/origin/pkg/oauth/apis/oauth" + projectapi "github.com/openshift/origin/pkg/project/apis/project" + routeapi "github.com/openshift/origin/pkg/route/apis/route" + templateapi "github.com/openshift/origin/pkg/template/apis/template" + userapi "github.com/openshift/origin/pkg/user/apis/user" + + appsv1 "github.com/openshift/api/apps/v1" + authorizationv1 "github.com/openshift/api/authorization/v1" + buildv1 "github.com/openshift/api/build/v1" + imagev1 "github.com/openshift/api/image/v1" + oauthv1 "github.com/openshift/api/oauth/v1" + projectv1 "github.com/openshift/api/project/v1" + routev1 "github.com/openshift/api/route/v1" + templatev1 "github.com/openshift/api/template/v1" + userv1 "github.com/openshift/api/user/v1" + + appsconversionv1 "github.com/openshift/origin/pkg/apps/apis/apps/v1" + authorizationconversionv1 "github.com/openshift/origin/pkg/authorization/apis/authorization/v1" + buildconversionv1 "github.com/openshift/origin/pkg/build/apis/build/v1" + imageconversionv1 "github.com/openshift/origin/pkg/image/apis/image/v1" + oauthconversionv1 "github.com/openshift/origin/pkg/oauth/apis/oauth/v1" + projectconversionv1 "github.com/openshift/origin/pkg/project/apis/project/v1" + routeconversionv1 "github.com/openshift/origin/pkg/route/apis/route/v1" + templateconversionv1 "github.com/openshift/origin/pkg/template/apis/template/v1" + userconversionv1 "github.com/openshift/origin/pkg/user/apis/user/v1" +) + +func init() { + // This is a "fast-path" that avoids reflection for common types. It focuses on the objects that are + // converted the most in the cluster. + // TODO: generate one of these for every external API group - this is to prove the impact + legacyscheme.Scheme.AddGenericConversionFunc(func(objA, objB interface{}, s conversion.Scope) (bool, error) { + switch a := objA.(type) { + case *metav1.WatchEvent: + switch b := objB.(type) { + case *metav1.InternalEvent: + return true, metav1.Convert_versioned_Event_to_versioned_InternalEvent(a, b, s) + case *watchapi.Event: + return true, metav1.Convert_versioned_Event_to_watch_Event(a, b, s) + } + case *metav1.InternalEvent: + switch b := objB.(type) { + case *metav1.WatchEvent: + return true, metav1.Convert_versioned_InternalEvent_to_versioned_Event(a, b, s) + } + case *watchapi.Event: + switch b := objB.(type) { + case *metav1.WatchEvent: + return true, metav1.Convert_watch_Event_to_versioned_Event(a, b, s) + } + + case *metainternal.ListOptions: + switch b := objB.(type) { + case *metav1.ListOptions: + return true, metainternal.Convert_internalversion_ListOptions_To_v1_ListOptions(a, b, s) + } + case *metav1.ListOptions: + switch b := objB.(type) { + case *metainternal.ListOptions: + return true, metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(a, b, s) + } + + case *kv1.ServiceAccount: + switch b := objB.(type) { + case *kapi.ServiceAccount: + return true, kapiv1.Convert_v1_ServiceAccount_To_core_ServiceAccount(a, b, s) + } + case *kapi.ServiceAccount: + switch b := objB.(type) { + case *kv1.ServiceAccount: + return true, kapiv1.Convert_core_ServiceAccount_To_v1_ServiceAccount(a, b, s) + } + + case *kv1.SecretList: + switch b := objB.(type) { + case *kapi.SecretList: + return true, kapiv1.Convert_v1_SecretList_To_core_SecretList(a, b, s) + } + case *kapi.SecretList: + switch b := objB.(type) { + case *kv1.SecretList: + return true, kapiv1.Convert_core_SecretList_To_v1_SecretList(a, b, s) + } + + case *kv1.Secret: + switch b := objB.(type) { + case *kapi.Secret: + return true, kapiv1.Convert_v1_Secret_To_core_Secret(a, b, s) + } + case *kapi.Secret: + switch b := objB.(type) { + case *kv1.Secret: + return true, kapiv1.Convert_core_Secret_To_v1_Secret(a, b, s) + } + + case *routev1.RouteList: + switch b := objB.(type) { + case *routeapi.RouteList: + return true, routeconversionv1.Convert_v1_RouteList_To_route_RouteList(a, b, s) + } + case *routeapi.RouteList: + switch b := objB.(type) { + case *routev1.RouteList: + return true, routeconversionv1.Convert_route_RouteList_To_v1_RouteList(a, b, s) + } + + case *routev1.Route: + switch b := objB.(type) { + case *routeapi.Route: + return true, routeconversionv1.Convert_v1_Route_To_route_Route(a, b, s) + } + case *routeapi.Route: + switch b := objB.(type) { + case *routev1.Route: + return true, routeconversionv1.Convert_route_Route_To_v1_Route(a, b, s) + } + + case *buildv1.BuildList: + switch b := objB.(type) { + case *buildapi.BuildList: + return true, buildconversionv1.Convert_v1_BuildList_To_build_BuildList(a, b, s) + } + case *buildapi.BuildList: + switch b := objB.(type) { + case *buildv1.BuildList: + return true, buildconversionv1.Convert_build_BuildList_To_v1_BuildList(a, b, s) + } + + case *buildv1.BuildConfigList: + switch b := objB.(type) { + case *buildapi.BuildConfigList: + return true, buildconversionv1.Convert_v1_BuildConfigList_To_build_BuildConfigList(a, b, s) + } + case *buildapi.BuildConfigList: + switch b := objB.(type) { + case *buildv1.BuildConfigList: + return true, buildconversionv1.Convert_build_BuildConfigList_To_v1_BuildConfigList(a, b, s) + } + + case *buildv1.BuildConfig: + switch b := objB.(type) { + case *buildapi.BuildConfig: + return true, buildconversionv1.Convert_v1_BuildConfig_To_build_BuildConfig(a, b, s) + } + case *buildapi.BuildConfig: + switch b := objB.(type) { + case *buildv1.BuildConfig: + return true, buildconversionv1.Convert_build_BuildConfig_To_v1_BuildConfig(a, b, s) + } + + case *buildv1.Build: + switch b := objB.(type) { + case *buildapi.Build: + return true, buildconversionv1.Convert_v1_Build_To_build_Build(a, b, s) + } + case *buildapi.Build: + switch b := objB.(type) { + case *buildv1.Build: + return true, buildconversionv1.Convert_build_Build_To_v1_Build(a, b, s) + } + case *oauthv1.OAuthAuthorizeToken: + switch b := objB.(type) { + case *oauthapi.OAuthAuthorizeToken: + return true, oauthconversionv1.Convert_v1_OAuthAuthorizeToken_To_oauth_OAuthAuthorizeToken(a, b, s) + } + case *oauthapi.OAuthAuthorizeToken: + switch b := objB.(type) { + case *oauthv1.OAuthAuthorizeToken: + return true, oauthconversionv1.Convert_oauth_OAuthAuthorizeToken_To_v1_OAuthAuthorizeToken(a, b, s) + } + + case *oauthv1.OAuthAccessToken: + switch b := objB.(type) { + case *oauthapi.OAuthAccessToken: + return true, oauthconversionv1.Convert_v1_OAuthAccessToken_To_oauth_OAuthAccessToken(a, b, s) + } + case *oauthapi.OAuthAccessToken: + switch b := objB.(type) { + case *oauthv1.OAuthAccessToken: + return true, oauthconversionv1.Convert_oauth_OAuthAccessToken_To_v1_OAuthAccessToken(a, b, s) + } + + case *projectv1.Project: + switch b := objB.(type) { + case *projectapi.Project: + return true, projectconversionv1.Convert_v1_Project_To_project_Project(a, b, s) + } + case *projectapi.Project: + switch b := objB.(type) { + case *projectv1.Project: + return true, projectconversionv1.Convert_project_Project_To_v1_Project(a, b, s) + } + + case *projectv1.ProjectList: + switch b := objB.(type) { + case *projectapi.ProjectList: + return true, projectconversionv1.Convert_v1_ProjectList_To_project_ProjectList(a, b, s) + } + case *projectapi.ProjectList: + switch b := objB.(type) { + case *projectv1.ProjectList: + return true, projectconversionv1.Convert_project_ProjectList_To_v1_ProjectList(a, b, s) + } + + case *templatev1.Template: + switch b := objB.(type) { + case *templateapi.Template: + return true, templateconversionv1.Convert_v1_Template_To_template_Template(a, b, s) + } + case *templateapi.Template: + switch b := objB.(type) { + case *templatev1.Template: + return true, templateconversionv1.Convert_template_Template_To_v1_Template(a, b, s) + } + + case *templatev1.TemplateList: + switch b := objB.(type) { + case *templateapi.TemplateList: + return true, templateconversionv1.Convert_v1_TemplateList_To_template_TemplateList(a, b, s) + } + case *templateapi.TemplateList: + switch b := objB.(type) { + case *templatev1.TemplateList: + return true, templateconversionv1.Convert_template_TemplateList_To_v1_TemplateList(a, b, s) + } + + case *templatev1.TemplateInstance: + switch b := objB.(type) { + case *templateapi.TemplateInstance: + return true, templateconversionv1.Convert_v1_TemplateInstance_To_template_TemplateInstance(a, b, s) + } + case *templateapi.TemplateInstance: + switch b := objB.(type) { + case *templatev1.TemplateInstance: + return true, templateconversionv1.Convert_template_TemplateInstance_To_v1_TemplateInstance(a, b, s) + } + + case *templatev1.TemplateInstanceList: + switch b := objB.(type) { + case *templateapi.TemplateInstanceList: + return true, templateconversionv1.Convert_v1_TemplateInstanceList_To_template_TemplateInstanceList(a, b, s) + } + case *templateapi.TemplateInstanceList: + switch b := objB.(type) { + case *templatev1.TemplateInstanceList: + return true, templateconversionv1.Convert_template_TemplateInstanceList_To_v1_TemplateInstanceList(a, b, s) + } + + case *templatev1.BrokerTemplateInstance: + switch b := objB.(type) { + case *templateapi.BrokerTemplateInstance: + return true, templateconversionv1.Convert_v1_BrokerTemplateInstance_To_template_BrokerTemplateInstance(a, b, s) + } + case *templateapi.BrokerTemplateInstance: + switch b := objB.(type) { + case *templatev1.BrokerTemplateInstance: + return true, templateconversionv1.Convert_template_BrokerTemplateInstance_To_v1_BrokerTemplateInstance(a, b, s) + } + + case *templatev1.BrokerTemplateInstanceList: + switch b := objB.(type) { + case *templateapi.BrokerTemplateInstanceList: + return true, templateconversionv1.Convert_v1_BrokerTemplateInstanceList_To_template_BrokerTemplateInstanceList(a, b, s) + } + case *templateapi.BrokerTemplateInstanceList: + switch b := objB.(type) { + case *templatev1.BrokerTemplateInstanceList: + return true, templateconversionv1.Convert_template_BrokerTemplateInstanceList_To_v1_BrokerTemplateInstanceList(a, b, s) + } + + case *appsv1.DeploymentConfig: + switch b := objB.(type) { + case *appsapi.DeploymentConfig: + return true, appsconversionv1.Convert_v1_DeploymentConfig_To_apps_DeploymentConfig(a, b, s) + } + case *appsapi.DeploymentConfig: + switch b := objB.(type) { + case *appsv1.DeploymentConfig: + return true, appsconversionv1.Convert_apps_DeploymentConfig_To_v1_DeploymentConfig(a, b, s) + } + + case *imagev1.ImageStream: + switch b := objB.(type) { + case *imageapi.ImageStream: + return true, imageconversionv1.Convert_v1_ImageStream_To_image_ImageStream(a, b, s) + } + case *imageapi.ImageStream: + switch b := objB.(type) { + case *imagev1.ImageStream: + return true, imageconversionv1.Convert_image_ImageStream_To_v1_ImageStream(a, b, s) + } + + case *imagev1.Image: + switch b := objB.(type) { + case *imageapi.Image: + return true, imageconversionv1.Convert_v1_Image_To_image_Image(a, b, s) + } + case *imageapi.Image: + switch b := objB.(type) { + case *imagev1.Image: + return true, imageconversionv1.Convert_image_Image_To_v1_Image(a, b, s) + } + + case *imagev1.ImageSignature: + switch b := objB.(type) { + case *imageapi.ImageSignature: + return true, imageconversionv1.Convert_v1_ImageSignature_To_image_ImageSignature(a, b, s) + } + case *imageapi.ImageSignature: + switch b := objB.(type) { + case *imagev1.ImageSignature: + return true, imageconversionv1.Convert_image_ImageSignature_To_v1_ImageSignature(a, b, s) + } + + case *imagev1.ImageStreamImport: + switch b := objB.(type) { + case *imageapi.ImageStreamImport: + return true, imageconversionv1.Convert_v1_ImageStreamImport_To_image_ImageStreamImport(a, b, s) + } + case *imageapi.ImageStreamImport: + switch b := objB.(type) { + case *imagev1.ImageStreamImport: + return true, imageconversionv1.Convert_image_ImageStreamImport_To_v1_ImageStreamImport(a, b, s) + } + + case *imagev1.ImageStreamList: + switch b := objB.(type) { + case *imageapi.ImageStreamList: + return true, imageconversionv1.Convert_v1_ImageStreamList_To_image_ImageStreamList(a, b, s) + } + case *imageapi.ImageStreamList: + switch b := objB.(type) { + case *imagev1.ImageStreamList: + return true, imageconversionv1.Convert_image_ImageStreamList_To_v1_ImageStreamList(a, b, s) + } + + case *imagev1.ImageStreamImage: + switch b := objB.(type) { + case *imageapi.ImageStreamImage: + return true, imageconversionv1.Convert_v1_ImageStreamImage_To_image_ImageStreamImage(a, b, s) + } + case *imageapi.ImageStreamImage: + switch b := objB.(type) { + case *imagev1.ImageStreamImage: + return true, imageconversionv1.Convert_image_ImageStreamImage_To_v1_ImageStreamImage(a, b, s) + } + + case *imagev1.ImageStreamTag: + switch b := objB.(type) { + case *imageapi.ImageStreamTag: + return true, imageconversionv1.Convert_v1_ImageStreamTag_To_image_ImageStreamTag(a, b, s) + } + case *imageapi.ImageStreamTag: + switch b := objB.(type) { + case *imagev1.ImageStreamTag: + return true, imageconversionv1.Convert_image_ImageStreamTag_To_v1_ImageStreamTag(a, b, s) + } + + case *imagev1.ImageStreamMapping: + switch b := objB.(type) { + case *imageapi.ImageStreamMapping: + return true, imageconversionv1.Convert_v1_ImageStreamMapping_To_image_ImageStreamMapping(a, b, s) + } + case *imageapi.ImageStreamMapping: + switch b := objB.(type) { + case *imagev1.ImageStreamMapping: + return true, imageconversionv1.Convert_image_ImageStreamMapping_To_v1_ImageStreamMapping(a, b, s) + } + + case *authorizationv1.ClusterRole: + switch b := objB.(type) { + case *authorizationapi.ClusterRole: + return true, authorizationconversionv1.Convert_v1_ClusterRole_To_authorization_ClusterRole(a, b, s) + } + case *authorizationapi.ClusterRole: + switch b := objB.(type) { + case *authorizationv1.ClusterRole: + return true, authorizationconversionv1.Convert_authorization_ClusterRole_To_v1_ClusterRole(a, b, s) + } + + case *authorizationv1.Role: + switch b := objB.(type) { + case *authorizationapi.Role: + return true, authorizationconversionv1.Convert_v1_Role_To_authorization_Role(a, b, s) + } + case *authorizationapi.Role: + switch b := objB.(type) { + case *authorizationv1.Role: + return true, authorizationconversionv1.Convert_authorization_Role_To_v1_Role(a, b, s) + } + + case *authorizationv1.ClusterRoleBinding: + switch b := objB.(type) { + case *authorizationapi.ClusterRoleBinding: + return true, authorizationconversionv1.Convert_v1_ClusterRoleBinding_To_authorization_ClusterRoleBinding(a, b, s) + } + case *authorizationapi.ClusterRoleBinding: + switch b := objB.(type) { + case *authorizationv1.ClusterRoleBinding: + return true, authorizationconversionv1.Convert_authorization_ClusterRoleBinding_To_v1_ClusterRoleBinding(a, b, s) + } + + case *authorizationv1.RoleBinding: + switch b := objB.(type) { + case *authorizationapi.RoleBinding: + return true, authorizationconversionv1.Convert_v1_RoleBinding_To_authorization_RoleBinding(a, b, s) + } + case *authorizationapi.RoleBinding: + switch b := objB.(type) { + case *authorizationv1.RoleBinding: + return true, authorizationconversionv1.Convert_authorization_RoleBinding_To_v1_RoleBinding(a, b, s) + } + + case *authorizationv1.IsPersonalSubjectAccessReview: + switch b := objB.(type) { + case *authorizationapi.IsPersonalSubjectAccessReview: + return true, authorizationconversionv1.Convert_v1_IsPersonalSubjectAccessReview_To_authorization_IsPersonalSubjectAccessReview(a, b, s) + } + case *authorizationapi.IsPersonalSubjectAccessReview: + switch b := objB.(type) { + case *authorizationv1.IsPersonalSubjectAccessReview: + return true, authorizationconversionv1.Convert_authorization_IsPersonalSubjectAccessReview_To_v1_IsPersonalSubjectAccessReview(a, b, s) + } + + case *authorizationv1.RoleBindingRestriction: + switch b := objB.(type) { + case *authorizationapi.RoleBindingRestriction: + return true, authorizationconversionv1.Convert_v1_RoleBindingRestriction_To_authorization_RoleBindingRestriction(a, b, s) + } + case *authorizationapi.RoleBindingRestriction: + switch b := objB.(type) { + case *authorizationv1.RoleBindingRestriction: + return true, authorizationconversionv1.Convert_authorization_RoleBindingRestriction_To_v1_RoleBindingRestriction(a, b, s) + } + + case *userv1.User: + switch b := objB.(type) { + case *userapi.User: + return true, userconversionv1.Convert_v1_User_To_user_User(a, b, s) + } + case *userapi.User: + switch b := objB.(type) { + case *userv1.User: + return true, userconversionv1.Convert_user_User_To_v1_User(a, b, s) + } + + case *userv1.UserList: + switch b := objB.(type) { + case *userapi.UserList: + return true, userconversionv1.Convert_v1_UserList_To_user_UserList(a, b, s) + } + case *userapi.UserList: + switch b := objB.(type) { + case *userv1.UserList: + return true, userconversionv1.Convert_user_UserList_To_v1_UserList(a, b, s) + } + + case *userv1.UserIdentityMapping: + switch b := objB.(type) { + case *userapi.UserIdentityMapping: + return true, userconversionv1.Convert_v1_UserIdentityMapping_To_user_UserIdentityMapping(a, b, s) + } + case *userapi.UserIdentityMapping: + switch b := objB.(type) { + case *userv1.UserIdentityMapping: + return true, userconversionv1.Convert_user_UserIdentityMapping_To_v1_UserIdentityMapping(a, b, s) + } + + case *userv1.Identity: + switch b := objB.(type) { + case *userapi.Identity: + return true, userconversionv1.Convert_v1_Identity_To_user_Identity(a, b, s) + } + case *userapi.Identity: + switch b := objB.(type) { + case *userv1.Identity: + return true, userconversionv1.Convert_user_Identity_To_v1_Identity(a, b, s) + } + + case *userv1.GroupList: + switch b := objB.(type) { + case *userapi.GroupList: + return true, userconversionv1.Convert_v1_GroupList_To_user_GroupList(a, b, s) + } + case *userapi.GroupList: + switch b := objB.(type) { + case *userv1.GroupList: + return true, userconversionv1.Convert_user_GroupList_To_v1_GroupList(a, b, s) + } + + case *userv1.Group: + switch b := objB.(type) { + case *userapi.Group: + return true, userconversionv1.Convert_v1_Group_To_user_Group(a, b, s) + } + case *userapi.Group: + switch b := objB.(type) { + case *userv1.Group: + return true, userconversionv1.Convert_user_Group_To_v1_Group(a, b, s) + } + + } + return false, nil + }) +} diff --git a/pkg/api/install/install.go b/pkg/api/install/install.go index f37c18a26093..a5e844816fde 100644 --- a/pkg/api/install/install.go +++ b/pkg/api/install/install.go @@ -1,31 +1,32 @@ package install import ( - kv1 "k8s.io/api/core/v1" - - "k8s.io/apimachinery/pkg/conversion" + crdinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api/legacyscheme" - kapi "k8s.io/kubernetes/pkg/apis/core" - kapiv1 "k8s.io/kubernetes/pkg/apis/core/v1" - - // we have a strong dependency on kube objects for deployments and scale - _ "k8s.io/kubernetes/pkg/apis/apps/install" - _ "k8s.io/kubernetes/pkg/apis/authentication/install" - _ "k8s.io/kubernetes/pkg/apis/authorization/install" - _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" - _ "k8s.io/kubernetes/pkg/apis/batch/install" - _ "k8s.io/kubernetes/pkg/apis/certificates/install" - _ "k8s.io/kubernetes/pkg/apis/core/install" - _ "k8s.io/kubernetes/pkg/apis/extensions/install" - _ "k8s.io/kubernetes/pkg/apis/policy/install" - _ "k8s.io/kubernetes/pkg/apis/rbac/install" - _ "k8s.io/kubernetes/pkg/apis/settings/install" - _ "k8s.io/kubernetes/pkg/apis/storage/install" + apiregistrationinstall "k8s.io/kube-aggregator/pkg/apis/apiregistration/install" + kadmissioninstall "k8s.io/kubernetes/pkg/apis/admission/install" + kadmissionregistrationinstall "k8s.io/kubernetes/pkg/apis/admissionregistration/install" + kappsinstall "k8s.io/kubernetes/pkg/apis/apps/install" + kauthenticationinstall "k8s.io/kubernetes/pkg/apis/authentication/install" + kauthorizationinstall "k8s.io/kubernetes/pkg/apis/authorization/install" + kautoscalinginstall "k8s.io/kubernetes/pkg/apis/autoscaling/install" + kbatchinstall "k8s.io/kubernetes/pkg/apis/batch/install" + kcertificatesinstall "k8s.io/kubernetes/pkg/apis/certificates/install" + kcomponentconfiginstall "k8s.io/kubernetes/pkg/apis/componentconfig/install" + kcoreinstall "k8s.io/kubernetes/pkg/apis/core/install" + keventsinstall "k8s.io/kubernetes/pkg/apis/events/install" + kextensionsinstall "k8s.io/kubernetes/pkg/apis/extensions/install" + kimagepolicyinstall "k8s.io/kubernetes/pkg/apis/imagepolicy/install" + knetworkinginstall "k8s.io/kubernetes/pkg/apis/networking/install" + kpolicyinstall "k8s.io/kubernetes/pkg/apis/policy/install" + krbacinstall "k8s.io/kubernetes/pkg/apis/rbac/install" + kschedulinginstall "k8s.io/kubernetes/pkg/apis/scheduling/install" + ksettingsinstall "k8s.io/kubernetes/pkg/apis/settings/install" + kstorageinstall "k8s.io/kubernetes/pkg/apis/storage/install" _ "github.com/openshift/origin/pkg/cmd/server/apis/config/install" - apps "github.com/openshift/origin/pkg/apps/apis/apps/install" + oapps "github.com/openshift/origin/pkg/apps/apis/apps/install" authz "github.com/openshift/origin/pkg/authorization/apis/authorization/install" build "github.com/openshift/origin/pkg/build/apis/build/install" image "github.com/openshift/origin/pkg/image/apis/image/install" @@ -37,524 +38,10 @@ import ( security "github.com/openshift/origin/pkg/security/apis/security/install" template "github.com/openshift/origin/pkg/template/apis/template/install" user "github.com/openshift/origin/pkg/user/apis/user/install" - - metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - watchapi "k8s.io/apimachinery/pkg/watch" - - appsapi "github.com/openshift/origin/pkg/apps/apis/apps" - authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization" - buildapi "github.com/openshift/origin/pkg/build/apis/build" - imageapi "github.com/openshift/origin/pkg/image/apis/image" - oauthapi "github.com/openshift/origin/pkg/oauth/apis/oauth" - projectapi "github.com/openshift/origin/pkg/project/apis/project" - routeapi "github.com/openshift/origin/pkg/route/apis/route" - templateapi "github.com/openshift/origin/pkg/template/apis/template" - userapi "github.com/openshift/origin/pkg/user/apis/user" - - appsv1 "github.com/openshift/api/apps/v1" - authorizationv1 "github.com/openshift/api/authorization/v1" - buildv1 "github.com/openshift/api/build/v1" - imagev1 "github.com/openshift/api/image/v1" - oauthv1 "github.com/openshift/api/oauth/v1" - projectv1 "github.com/openshift/api/project/v1" - routev1 "github.com/openshift/api/route/v1" - templatev1 "github.com/openshift/api/template/v1" - userv1 "github.com/openshift/api/user/v1" - - appsconversionv1 "github.com/openshift/origin/pkg/apps/apis/apps/v1" - authorizationconversionv1 "github.com/openshift/origin/pkg/authorization/apis/authorization/v1" - buildconversionv1 "github.com/openshift/origin/pkg/build/apis/build/v1" - imageconversionv1 "github.com/openshift/origin/pkg/image/apis/image/v1" - oauthconversionv1 "github.com/openshift/origin/pkg/oauth/apis/oauth/v1" - projectconversionv1 "github.com/openshift/origin/pkg/project/apis/project/v1" - routeconversionv1 "github.com/openshift/origin/pkg/route/apis/route/v1" - templateconversionv1 "github.com/openshift/origin/pkg/template/apis/template/v1" - userconversionv1 "github.com/openshift/origin/pkg/user/apis/user/v1" ) -func init() { - // This is a "fast-path" that avoids reflection for common types. It focuses on the objects that are - // converted the most in the cluster. - // TODO: generate one of these for every external API group - this is to prove the impact - legacyscheme.Scheme.AddGenericConversionFunc(func(objA, objB interface{}, s conversion.Scope) (bool, error) { - switch a := objA.(type) { - case *metav1.WatchEvent: - switch b := objB.(type) { - case *metav1.InternalEvent: - return true, metav1.Convert_versioned_Event_to_versioned_InternalEvent(a, b, s) - case *watchapi.Event: - return true, metav1.Convert_versioned_Event_to_watch_Event(a, b, s) - } - case *metav1.InternalEvent: - switch b := objB.(type) { - case *metav1.WatchEvent: - return true, metav1.Convert_versioned_InternalEvent_to_versioned_Event(a, b, s) - } - case *watchapi.Event: - switch b := objB.(type) { - case *metav1.WatchEvent: - return true, metav1.Convert_watch_Event_to_versioned_Event(a, b, s) - } - - case *metainternal.ListOptions: - switch b := objB.(type) { - case *metav1.ListOptions: - return true, metainternal.Convert_internalversion_ListOptions_To_v1_ListOptions(a, b, s) - } - case *metav1.ListOptions: - switch b := objB.(type) { - case *metainternal.ListOptions: - return true, metainternal.Convert_v1_ListOptions_To_internalversion_ListOptions(a, b, s) - } - - case *kv1.ServiceAccount: - switch b := objB.(type) { - case *kapi.ServiceAccount: - return true, kapiv1.Convert_v1_ServiceAccount_To_core_ServiceAccount(a, b, s) - } - case *kapi.ServiceAccount: - switch b := objB.(type) { - case *kv1.ServiceAccount: - return true, kapiv1.Convert_core_ServiceAccount_To_v1_ServiceAccount(a, b, s) - } - - case *kv1.SecretList: - switch b := objB.(type) { - case *kapi.SecretList: - return true, kapiv1.Convert_v1_SecretList_To_core_SecretList(a, b, s) - } - case *kapi.SecretList: - switch b := objB.(type) { - case *kv1.SecretList: - return true, kapiv1.Convert_core_SecretList_To_v1_SecretList(a, b, s) - } - - case *kv1.Secret: - switch b := objB.(type) { - case *kapi.Secret: - return true, kapiv1.Convert_v1_Secret_To_core_Secret(a, b, s) - } - case *kapi.Secret: - switch b := objB.(type) { - case *kv1.Secret: - return true, kapiv1.Convert_core_Secret_To_v1_Secret(a, b, s) - } - - case *routev1.RouteList: - switch b := objB.(type) { - case *routeapi.RouteList: - return true, routeconversionv1.Convert_v1_RouteList_To_route_RouteList(a, b, s) - } - case *routeapi.RouteList: - switch b := objB.(type) { - case *routev1.RouteList: - return true, routeconversionv1.Convert_route_RouteList_To_v1_RouteList(a, b, s) - } - - case *routev1.Route: - switch b := objB.(type) { - case *routeapi.Route: - return true, routeconversionv1.Convert_v1_Route_To_route_Route(a, b, s) - } - case *routeapi.Route: - switch b := objB.(type) { - case *routev1.Route: - return true, routeconversionv1.Convert_route_Route_To_v1_Route(a, b, s) - } - - case *buildv1.BuildList: - switch b := objB.(type) { - case *buildapi.BuildList: - return true, buildconversionv1.Convert_v1_BuildList_To_build_BuildList(a, b, s) - } - case *buildapi.BuildList: - switch b := objB.(type) { - case *buildv1.BuildList: - return true, buildconversionv1.Convert_build_BuildList_To_v1_BuildList(a, b, s) - } - - case *buildv1.BuildConfigList: - switch b := objB.(type) { - case *buildapi.BuildConfigList: - return true, buildconversionv1.Convert_v1_BuildConfigList_To_build_BuildConfigList(a, b, s) - } - case *buildapi.BuildConfigList: - switch b := objB.(type) { - case *buildv1.BuildConfigList: - return true, buildconversionv1.Convert_build_BuildConfigList_To_v1_BuildConfigList(a, b, s) - } - - case *buildv1.BuildConfig: - switch b := objB.(type) { - case *buildapi.BuildConfig: - return true, buildconversionv1.Convert_v1_BuildConfig_To_build_BuildConfig(a, b, s) - } - case *buildapi.BuildConfig: - switch b := objB.(type) { - case *buildv1.BuildConfig: - return true, buildconversionv1.Convert_build_BuildConfig_To_v1_BuildConfig(a, b, s) - } - - case *buildv1.Build: - switch b := objB.(type) { - case *buildapi.Build: - return true, buildconversionv1.Convert_v1_Build_To_build_Build(a, b, s) - } - case *buildapi.Build: - switch b := objB.(type) { - case *buildv1.Build: - return true, buildconversionv1.Convert_build_Build_To_v1_Build(a, b, s) - } - case *oauthv1.OAuthAuthorizeToken: - switch b := objB.(type) { - case *oauthapi.OAuthAuthorizeToken: - return true, oauthconversionv1.Convert_v1_OAuthAuthorizeToken_To_oauth_OAuthAuthorizeToken(a, b, s) - } - case *oauthapi.OAuthAuthorizeToken: - switch b := objB.(type) { - case *oauthv1.OAuthAuthorizeToken: - return true, oauthconversionv1.Convert_oauth_OAuthAuthorizeToken_To_v1_OAuthAuthorizeToken(a, b, s) - } - - case *oauthv1.OAuthAccessToken: - switch b := objB.(type) { - case *oauthapi.OAuthAccessToken: - return true, oauthconversionv1.Convert_v1_OAuthAccessToken_To_oauth_OAuthAccessToken(a, b, s) - } - case *oauthapi.OAuthAccessToken: - switch b := objB.(type) { - case *oauthv1.OAuthAccessToken: - return true, oauthconversionv1.Convert_oauth_OAuthAccessToken_To_v1_OAuthAccessToken(a, b, s) - } - - case *projectv1.Project: - switch b := objB.(type) { - case *projectapi.Project: - return true, projectconversionv1.Convert_v1_Project_To_project_Project(a, b, s) - } - case *projectapi.Project: - switch b := objB.(type) { - case *projectv1.Project: - return true, projectconversionv1.Convert_project_Project_To_v1_Project(a, b, s) - } - - case *projectv1.ProjectList: - switch b := objB.(type) { - case *projectapi.ProjectList: - return true, projectconversionv1.Convert_v1_ProjectList_To_project_ProjectList(a, b, s) - } - case *projectapi.ProjectList: - switch b := objB.(type) { - case *projectv1.ProjectList: - return true, projectconversionv1.Convert_project_ProjectList_To_v1_ProjectList(a, b, s) - } - - case *templatev1.Template: - switch b := objB.(type) { - case *templateapi.Template: - return true, templateconversionv1.Convert_v1_Template_To_template_Template(a, b, s) - } - case *templateapi.Template: - switch b := objB.(type) { - case *templatev1.Template: - return true, templateconversionv1.Convert_template_Template_To_v1_Template(a, b, s) - } - - case *templatev1.TemplateList: - switch b := objB.(type) { - case *templateapi.TemplateList: - return true, templateconversionv1.Convert_v1_TemplateList_To_template_TemplateList(a, b, s) - } - case *templateapi.TemplateList: - switch b := objB.(type) { - case *templatev1.TemplateList: - return true, templateconversionv1.Convert_template_TemplateList_To_v1_TemplateList(a, b, s) - } - - case *templatev1.TemplateInstance: - switch b := objB.(type) { - case *templateapi.TemplateInstance: - return true, templateconversionv1.Convert_v1_TemplateInstance_To_template_TemplateInstance(a, b, s) - } - case *templateapi.TemplateInstance: - switch b := objB.(type) { - case *templatev1.TemplateInstance: - return true, templateconversionv1.Convert_template_TemplateInstance_To_v1_TemplateInstance(a, b, s) - } - - case *templatev1.TemplateInstanceList: - switch b := objB.(type) { - case *templateapi.TemplateInstanceList: - return true, templateconversionv1.Convert_v1_TemplateInstanceList_To_template_TemplateInstanceList(a, b, s) - } - case *templateapi.TemplateInstanceList: - switch b := objB.(type) { - case *templatev1.TemplateInstanceList: - return true, templateconversionv1.Convert_template_TemplateInstanceList_To_v1_TemplateInstanceList(a, b, s) - } - - case *templatev1.BrokerTemplateInstance: - switch b := objB.(type) { - case *templateapi.BrokerTemplateInstance: - return true, templateconversionv1.Convert_v1_BrokerTemplateInstance_To_template_BrokerTemplateInstance(a, b, s) - } - case *templateapi.BrokerTemplateInstance: - switch b := objB.(type) { - case *templatev1.BrokerTemplateInstance: - return true, templateconversionv1.Convert_template_BrokerTemplateInstance_To_v1_BrokerTemplateInstance(a, b, s) - } - - case *templatev1.BrokerTemplateInstanceList: - switch b := objB.(type) { - case *templateapi.BrokerTemplateInstanceList: - return true, templateconversionv1.Convert_v1_BrokerTemplateInstanceList_To_template_BrokerTemplateInstanceList(a, b, s) - } - case *templateapi.BrokerTemplateInstanceList: - switch b := objB.(type) { - case *templatev1.BrokerTemplateInstanceList: - return true, templateconversionv1.Convert_template_BrokerTemplateInstanceList_To_v1_BrokerTemplateInstanceList(a, b, s) - } - - case *appsv1.DeploymentConfig: - switch b := objB.(type) { - case *appsapi.DeploymentConfig: - return true, appsconversionv1.Convert_v1_DeploymentConfig_To_apps_DeploymentConfig(a, b, s) - } - case *appsapi.DeploymentConfig: - switch b := objB.(type) { - case *appsv1.DeploymentConfig: - return true, appsconversionv1.Convert_apps_DeploymentConfig_To_v1_DeploymentConfig(a, b, s) - } - - case *imagev1.ImageStream: - switch b := objB.(type) { - case *imageapi.ImageStream: - return true, imageconversionv1.Convert_v1_ImageStream_To_image_ImageStream(a, b, s) - } - case *imageapi.ImageStream: - switch b := objB.(type) { - case *imagev1.ImageStream: - return true, imageconversionv1.Convert_image_ImageStream_To_v1_ImageStream(a, b, s) - } - - case *imagev1.Image: - switch b := objB.(type) { - case *imageapi.Image: - return true, imageconversionv1.Convert_v1_Image_To_image_Image(a, b, s) - } - case *imageapi.Image: - switch b := objB.(type) { - case *imagev1.Image: - return true, imageconversionv1.Convert_image_Image_To_v1_Image(a, b, s) - } - - case *imagev1.ImageSignature: - switch b := objB.(type) { - case *imageapi.ImageSignature: - return true, imageconversionv1.Convert_v1_ImageSignature_To_image_ImageSignature(a, b, s) - } - case *imageapi.ImageSignature: - switch b := objB.(type) { - case *imagev1.ImageSignature: - return true, imageconversionv1.Convert_image_ImageSignature_To_v1_ImageSignature(a, b, s) - } - - case *imagev1.ImageStreamImport: - switch b := objB.(type) { - case *imageapi.ImageStreamImport: - return true, imageconversionv1.Convert_v1_ImageStreamImport_To_image_ImageStreamImport(a, b, s) - } - case *imageapi.ImageStreamImport: - switch b := objB.(type) { - case *imagev1.ImageStreamImport: - return true, imageconversionv1.Convert_image_ImageStreamImport_To_v1_ImageStreamImport(a, b, s) - } - - case *imagev1.ImageStreamList: - switch b := objB.(type) { - case *imageapi.ImageStreamList: - return true, imageconversionv1.Convert_v1_ImageStreamList_To_image_ImageStreamList(a, b, s) - } - case *imageapi.ImageStreamList: - switch b := objB.(type) { - case *imagev1.ImageStreamList: - return true, imageconversionv1.Convert_image_ImageStreamList_To_v1_ImageStreamList(a, b, s) - } - - case *imagev1.ImageStreamImage: - switch b := objB.(type) { - case *imageapi.ImageStreamImage: - return true, imageconversionv1.Convert_v1_ImageStreamImage_To_image_ImageStreamImage(a, b, s) - } - case *imageapi.ImageStreamImage: - switch b := objB.(type) { - case *imagev1.ImageStreamImage: - return true, imageconversionv1.Convert_image_ImageStreamImage_To_v1_ImageStreamImage(a, b, s) - } - - case *imagev1.ImageStreamTag: - switch b := objB.(type) { - case *imageapi.ImageStreamTag: - return true, imageconversionv1.Convert_v1_ImageStreamTag_To_image_ImageStreamTag(a, b, s) - } - case *imageapi.ImageStreamTag: - switch b := objB.(type) { - case *imagev1.ImageStreamTag: - return true, imageconversionv1.Convert_image_ImageStreamTag_To_v1_ImageStreamTag(a, b, s) - } - - case *imagev1.ImageStreamMapping: - switch b := objB.(type) { - case *imageapi.ImageStreamMapping: - return true, imageconversionv1.Convert_v1_ImageStreamMapping_To_image_ImageStreamMapping(a, b, s) - } - case *imageapi.ImageStreamMapping: - switch b := objB.(type) { - case *imagev1.ImageStreamMapping: - return true, imageconversionv1.Convert_image_ImageStreamMapping_To_v1_ImageStreamMapping(a, b, s) - } - - case *authorizationv1.ClusterRole: - switch b := objB.(type) { - case *authorizationapi.ClusterRole: - return true, authorizationconversionv1.Convert_v1_ClusterRole_To_authorization_ClusterRole(a, b, s) - } - case *authorizationapi.ClusterRole: - switch b := objB.(type) { - case *authorizationv1.ClusterRole: - return true, authorizationconversionv1.Convert_authorization_ClusterRole_To_v1_ClusterRole(a, b, s) - } - - case *authorizationv1.Role: - switch b := objB.(type) { - case *authorizationapi.Role: - return true, authorizationconversionv1.Convert_v1_Role_To_authorization_Role(a, b, s) - } - case *authorizationapi.Role: - switch b := objB.(type) { - case *authorizationv1.Role: - return true, authorizationconversionv1.Convert_authorization_Role_To_v1_Role(a, b, s) - } - - case *authorizationv1.ClusterRoleBinding: - switch b := objB.(type) { - case *authorizationapi.ClusterRoleBinding: - return true, authorizationconversionv1.Convert_v1_ClusterRoleBinding_To_authorization_ClusterRoleBinding(a, b, s) - } - case *authorizationapi.ClusterRoleBinding: - switch b := objB.(type) { - case *authorizationv1.ClusterRoleBinding: - return true, authorizationconversionv1.Convert_authorization_ClusterRoleBinding_To_v1_ClusterRoleBinding(a, b, s) - } - - case *authorizationv1.RoleBinding: - switch b := objB.(type) { - case *authorizationapi.RoleBinding: - return true, authorizationconversionv1.Convert_v1_RoleBinding_To_authorization_RoleBinding(a, b, s) - } - case *authorizationapi.RoleBinding: - switch b := objB.(type) { - case *authorizationv1.RoleBinding: - return true, authorizationconversionv1.Convert_authorization_RoleBinding_To_v1_RoleBinding(a, b, s) - } - - case *authorizationv1.IsPersonalSubjectAccessReview: - switch b := objB.(type) { - case *authorizationapi.IsPersonalSubjectAccessReview: - return true, authorizationconversionv1.Convert_v1_IsPersonalSubjectAccessReview_To_authorization_IsPersonalSubjectAccessReview(a, b, s) - } - case *authorizationapi.IsPersonalSubjectAccessReview: - switch b := objB.(type) { - case *authorizationv1.IsPersonalSubjectAccessReview: - return true, authorizationconversionv1.Convert_authorization_IsPersonalSubjectAccessReview_To_v1_IsPersonalSubjectAccessReview(a, b, s) - } - - case *authorizationv1.RoleBindingRestriction: - switch b := objB.(type) { - case *authorizationapi.RoleBindingRestriction: - return true, authorizationconversionv1.Convert_v1_RoleBindingRestriction_To_authorization_RoleBindingRestriction(a, b, s) - } - case *authorizationapi.RoleBindingRestriction: - switch b := objB.(type) { - case *authorizationv1.RoleBindingRestriction: - return true, authorizationconversionv1.Convert_authorization_RoleBindingRestriction_To_v1_RoleBindingRestriction(a, b, s) - } - - case *userv1.User: - switch b := objB.(type) { - case *userapi.User: - return true, userconversionv1.Convert_v1_User_To_user_User(a, b, s) - } - case *userapi.User: - switch b := objB.(type) { - case *userv1.User: - return true, userconversionv1.Convert_user_User_To_v1_User(a, b, s) - } - - case *userv1.UserList: - switch b := objB.(type) { - case *userapi.UserList: - return true, userconversionv1.Convert_v1_UserList_To_user_UserList(a, b, s) - } - case *userapi.UserList: - switch b := objB.(type) { - case *userv1.UserList: - return true, userconversionv1.Convert_user_UserList_To_v1_UserList(a, b, s) - } - - case *userv1.UserIdentityMapping: - switch b := objB.(type) { - case *userapi.UserIdentityMapping: - return true, userconversionv1.Convert_v1_UserIdentityMapping_To_user_UserIdentityMapping(a, b, s) - } - case *userapi.UserIdentityMapping: - switch b := objB.(type) { - case *userv1.UserIdentityMapping: - return true, userconversionv1.Convert_user_UserIdentityMapping_To_v1_UserIdentityMapping(a, b, s) - } - - case *userv1.Identity: - switch b := objB.(type) { - case *userapi.Identity: - return true, userconversionv1.Convert_v1_Identity_To_user_Identity(a, b, s) - } - case *userapi.Identity: - switch b := objB.(type) { - case *userv1.Identity: - return true, userconversionv1.Convert_user_Identity_To_v1_Identity(a, b, s) - } - - case *userv1.GroupList: - switch b := objB.(type) { - case *userapi.GroupList: - return true, userconversionv1.Convert_v1_GroupList_To_user_GroupList(a, b, s) - } - case *userapi.GroupList: - switch b := objB.(type) { - case *userv1.GroupList: - return true, userconversionv1.Convert_user_GroupList_To_v1_GroupList(a, b, s) - } - - case *userv1.Group: - switch b := objB.(type) { - case *userapi.Group: - return true, userconversionv1.Convert_v1_Group_To_user_Group(a, b, s) - } - case *userapi.Group: - switch b := objB.(type) { - case *userv1.Group: - return true, userconversionv1.Convert_user_Group_To_v1_Group(a, b, s) - } - - } - return false, nil - }) -} - -func InstallAll(scheme *runtime.Scheme) { - // add Origin types to the given scheme - apps.Install(scheme) +func InstallInternalOpenShift(scheme *runtime.Scheme) { + oapps.Install(scheme) authz.Install(scheme) build.Install(scheme) image.Install(scheme) @@ -567,3 +54,29 @@ func InstallAll(scheme *runtime.Scheme) { template.Install(scheme) user.Install(scheme) } + +func InstallInternalKube(scheme *runtime.Scheme) { + crdinstall.Install(scheme) + + apiregistrationinstall.Install(scheme) + + kadmissioninstall.Install(scheme) + kadmissionregistrationinstall.Install(scheme) + kappsinstall.Install(scheme) + kauthenticationinstall.Install(scheme) + kauthorizationinstall.Install(scheme) + kautoscalinginstall.Install(scheme) + kbatchinstall.Install(scheme) + kcertificatesinstall.Install(scheme) + kcomponentconfiginstall.Install(scheme) + kcoreinstall.Install(scheme) + keventsinstall.Install(scheme) + kextensionsinstall.Install(scheme) + kimagepolicyinstall.Install(scheme) + knetworkinginstall.Install(scheme) + kpolicyinstall.Install(scheme) + krbacinstall.Install(scheme) + kschedulinginstall.Install(scheme) + ksettingsinstall.Install(scheme) + kstorageinstall.Install(scheme) +} diff --git a/pkg/api/legacy/install.go b/pkg/api/legacy/install.go index 12d0a654408e..fff37fbcdcc4 100644 --- a/pkg/api/legacy/install.go +++ b/pkg/api/legacy/install.go @@ -21,7 +21,7 @@ func Resource(resource string) schema.GroupResource { return schema.GroupResource{Group: GroupName, Resource: resource} } -func InstallLegacyInternalAll(scheme *runtime.Scheme) { +func InstallInternalLegacyAll(scheme *runtime.Scheme) { InstallInternalLegacyApps(scheme) InstallInternalLegacyAuthorization(scheme) InstallInternalLegacyBuild(scheme) @@ -36,7 +36,7 @@ func InstallLegacyInternalAll(scheme *runtime.Scheme) { InstallInternalLegacyUser(scheme) } -func InstallLegacyExternalAll(scheme *runtime.Scheme) { +func InstallExternalLegacyAll(scheme *runtime.Scheme) { InstallExternalLegacyApps(scheme) InstallExternalLegacyAuthorization(scheme) InstallExternalLegacyBuild(scheme) diff --git a/pkg/api/legacygroupification/groupification.go b/pkg/api/legacygroupification/groupification.go index fc7db091ddf5..c9935903a89d 100644 --- a/pkg/api/legacygroupification/groupification.go +++ b/pkg/api/legacygroupification/groupification.go @@ -31,6 +31,7 @@ import ( "github.com/openshift/origin/pkg/user/apis/user" ) +// deprecated func IsOAPI(gvk schema.GroupVersionKind) bool { if len(gvk.Group) > 0 { return false @@ -40,6 +41,7 @@ func IsOAPI(gvk schema.GroupVersionKind) bool { return ok } +// deprecated func OAPIToGroupifiedGVK(gvk *schema.GroupVersionKind) { if len(gvk.Group) > 0 { return @@ -52,6 +54,7 @@ func OAPIToGroupifiedGVK(gvk *schema.GroupVersionKind) { gvk.Group = newGroup } +// deprecated func OAPIToGroupified(uncast runtime.Object, gvk *schema.GroupVersionKind) { if len(gvk.Group) > 0 { return diff --git a/pkg/cmd/openshift-apiserver/cmd.go b/pkg/cmd/openshift-apiserver/cmd.go index 22f6511b4adb..34cebeed9241 100644 --- a/pkg/cmd/openshift-apiserver/cmd.go +++ b/pkg/cmd/openshift-apiserver/cmd.go @@ -38,7 +38,7 @@ func NewOpenShiftAPIServerCommand(name, basename string, out, errout io.Writer) Short: "Launch OpenShift apiserver", Long: longDescription, Run: func(c *cobra.Command, args []string) { - legacy.InstallLegacyInternalAll(legacyscheme.Scheme) + legacy.InstallInternalLegacyAll(legacyscheme.Scheme) kcmdutil.CheckErr(options.Validate()) diff --git a/pkg/oc/cli/cli.go b/pkg/oc/cli/cli.go index 67e85ac77297..5132a5ff2c0f 100644 --- a/pkg/oc/cli/cli.go +++ b/pkg/oc/cli/cli.go @@ -8,10 +8,8 @@ import ( "runtime" "strings" - "github.com/golang/glog" "github.com/openshift/origin/pkg/oc/util/ocscheme" "github.com/spf13/cobra" - "k8s.io/client-go/kubernetes/scheme" kubecmd "k8s.io/kubernetes/pkg/kubectl/cmd" ktemplates "k8s.io/kubernetes/pkg/kubectl/cmd/templates" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -345,10 +343,6 @@ func CommandFor(basename string) *cobra.Command { basename = strings.TrimSuffix(basename, ".exe") } - if err := ocscheme.AddOpenShiftExternalToScheme(scheme.Scheme); err != nil { - glog.Fatal(err) - } - switch basename { case "kubectl": kcmdutil.DefaultPrintingScheme = ocscheme.PrintingInternalScheme diff --git a/pkg/oc/cli/debug/debug.go b/pkg/oc/cli/debug/debug.go index d3f98b60e6bd..31c6d7313e22 100644 --- a/pkg/oc/cli/debug/debug.go +++ b/pkg/oc/cli/debug/debug.go @@ -35,6 +35,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/polymorphichelpers" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/term" "k8s.io/kubernetes/pkg/util/interrupt" @@ -49,7 +50,6 @@ import ( imageclient "github.com/openshift/origin/pkg/image/generated/internalclientset/typed/image/internalversion" generateapp "github.com/openshift/origin/pkg/oc/lib/newapp/app" utilenv "github.com/openshift/origin/pkg/oc/util/env" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) type DebugOptions struct { @@ -141,7 +141,7 @@ var ( func NewDebugOptions(streams genericclioptions.IOStreams) *DebugOptions { return &DebugOptions{ - PrintFlags: genericclioptions.NewPrintFlags("").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("").WithTypeSetter(scheme.Scheme), IOStreams: streams, Timeout: 15 * time.Minute, KeepInitContainers: true, @@ -327,7 +327,7 @@ func (o DebugOptions) Validate() error { // Debug creates and runs a debugging pod. func (o *DebugOptions) RunDebug() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). NamespaceParam(o.Namespace).DefaultNamespace(). SingleResourceType(). ResourceNames("pods", o.Resources...). diff --git a/pkg/oc/cli/logs/logs.go b/pkg/oc/cli/logs/logs.go index 9f5a64e477bb..e8977045aef2 100644 --- a/pkg/oc/cli/logs/logs.go +++ b/pkg/oc/cli/logs/logs.go @@ -13,6 +13,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/cmd/templates" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" + "k8s.io/kubernetes/pkg/kubectl/scheme" "github.com/openshift/api/apps" "github.com/openshift/api/build" @@ -21,7 +22,6 @@ import ( buildclientinternal "github.com/openshift/origin/pkg/build/generated/internalclientset" buildclient "github.com/openshift/origin/pkg/build/generated/internalclientset/typed/build/internalversion" buildutil "github.com/openshift/origin/pkg/build/util" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) // LogsRecommendedCommandName is the recommended command name @@ -143,7 +143,7 @@ func (o *LogsOptions) Complete(f kcmdutil.Factory, cmd *cobra.Command, args []st podLogOptions := o.KubeLogOptions.Options.(*kapi.PodLogOptions) infos, err := f.NewBuilder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). NamespaceParam(o.Namespace).DefaultNamespace(). ResourceNames("pods", args...). SingleResourceType().RequireObject(false). diff --git a/pkg/oc/cli/rollout/cancel.go b/pkg/oc/cli/rollout/cancel.go index ad13fe6b8a4c..f57348f77cbc 100644 --- a/pkg/oc/cli/rollout/cancel.go +++ b/pkg/oc/cli/rollout/cancel.go @@ -6,7 +6,7 @@ import ( "strings" "time" - units "github.com/docker/go-units" + "github.com/docker/go-units" "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/meta" @@ -14,7 +14,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/kubernetes/pkg/api/legacyscheme" kapi "k8s.io/kubernetes/pkg/apis/core" kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" @@ -22,12 +21,12 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" appsv1 "github.com/openshift/api/apps/v1" appsapi "github.com/openshift/origin/pkg/apps/apis/apps" appsinternalutil "github.com/openshift/origin/pkg/apps/controller/util" "github.com/openshift/origin/pkg/oc/cli/set" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) type CancelOptions struct { @@ -37,7 +36,6 @@ type CancelOptions struct { Namespace string NamespaceExplicit bool Mapper meta.RESTMapper - Typer runtime.ObjectTyper Encoder runtime.Encoder Resources []string Clientset kclientset.Interface @@ -98,7 +96,6 @@ func (o *CancelOptions) Complete(f kcmdutil.Factory, cmd *cobra.Command, args [] } var err error - o.Typer = legacyscheme.Scheme o.Mapper, err = f.ToRESTMapper() if err != nil { return err @@ -127,7 +124,7 @@ func (o *CancelOptions) Complete(f kcmdutil.Factory, cmd *cobra.Command, args [] func (o CancelOptions) Run() error { r := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). NamespaceParam(o.Namespace).DefaultNamespace(). FilenameParam(o.NamespaceExplicit, &o.FilenameOptions). ResourceTypeOrNameArgs(true, o.Resources...). diff --git a/pkg/oc/cli/rollout/retry.go b/pkg/oc/cli/rollout/retry.go index bf09a237ef42..5f4e2faf47a4 100644 --- a/pkg/oc/cli/rollout/retry.go +++ b/pkg/oc/cli/rollout/retry.go @@ -20,13 +20,13 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" appsv1 "github.com/openshift/api/apps/v1" appsapi "github.com/openshift/origin/pkg/apps/apis/apps" appsinternalutil "github.com/openshift/origin/pkg/apps/controller/util" appsutil "github.com/openshift/origin/pkg/apps/util" "github.com/openshift/origin/pkg/oc/cli/set" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) type RetryOptions struct { @@ -65,7 +65,7 @@ var ( func NewRolloutRetryOptions(streams genericclioptions.IOStreams) *RetryOptions { return &RetryOptions{ - PrintFlags: genericclioptions.NewPrintFlags("already retried").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("already retried").WithTypeSetter(scheme.Scheme), IOStreams: streams, } } @@ -135,7 +135,7 @@ func (o RetryOptions) Run() error { } r := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). NamespaceParam(o.Namespace).DefaultNamespace(). FilenameParam(o.ExplicitNamespace, &o.FilenameOptions). ResourceTypeOrNameArgs(true, o.Resources...). diff --git a/pkg/oc/cli/set/buildhook.go b/pkg/oc/cli/set/buildhook.go index 6ee20420ec81..a9922c10df0f 100644 --- a/pkg/oc/cli/set/buildhook.go +++ b/pkg/oc/cli/set/buildhook.go @@ -17,7 +17,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" buildv1 "github.com/openshift/api/build/v1" - "github.com/openshift/origin/pkg/oc/util/ocscheme" + "k8s.io/kubernetes/pkg/kubectl/scheme" ) var ( @@ -78,7 +78,7 @@ type BuildHookOptions struct { func NewBuildHookOptions(streams genericclioptions.IOStreams) *BuildHookOptions { return &BuildHookOptions{ - PrintFlags: genericclioptions.NewPrintFlags("hooks updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("hooks updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, } } @@ -184,7 +184,7 @@ func (o *BuildHookOptions) Validate() error { func (o *BuildHookOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/buildsecret.go b/pkg/oc/cli/set/buildsecret.go index 60415101ae93..f74df40423c6 100644 --- a/pkg/oc/cli/set/buildsecret.go +++ b/pkg/oc/cli/set/buildsecret.go @@ -17,9 +17,9 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" buildv1 "github.com/openshift/api/build/v1" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -77,7 +77,7 @@ type BuildSecretOptions struct { func NewBuildSecretOptions(streams genericclioptions.IOStreams) *BuildSecretOptions { return &BuildSecretOptions{ - PrintFlags: genericclioptions.NewPrintFlags("secret updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("secret updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, } } @@ -116,7 +116,7 @@ var supportedBuildTypes = []string{"buildconfigs"} func (o *BuildSecretOptions) secretFromArg(arg string) (string, error) { builder := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). NamespaceParam(o.Namespace).DefaultNamespace(). RequireObject(false). @@ -213,7 +213,7 @@ func (o *BuildSecretOptions) Run() error { } b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/deploymenthook.go b/pkg/oc/cli/set/deploymenthook.go index 5c6b9953b0db..486fe47c67d5 100644 --- a/pkg/oc/cli/set/deploymenthook.go +++ b/pkg/oc/cli/set/deploymenthook.go @@ -17,11 +17,11 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" appsv1 "github.com/openshift/api/apps/v1" cmdutil "github.com/openshift/origin/pkg/cmd/util" utilenv "github.com/openshift/origin/pkg/oc/util/env" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -92,7 +92,7 @@ type DeploymentHookOptions struct { func NewDeploymentHookOptions(streams genericclioptions.IOStreams) *DeploymentHookOptions { return &DeploymentHookOptions{ - PrintFlags: genericclioptions.NewPrintFlags("hooks updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("hooks updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, FailurePolicyStr: "ignore", } @@ -230,7 +230,7 @@ func (o *DeploymentHookOptions) Validate() error { func (o *DeploymentHookOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/env.go b/pkg/oc/cli/set/env.go index 2f6cffc685f7..bf7ed1517e69 100644 --- a/pkg/oc/cli/set/env.go +++ b/pkg/oc/cli/set/env.go @@ -26,12 +26,12 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/polymorphichelpers" + "k8s.io/kubernetes/pkg/kubectl/scheme" buildv1 "github.com/openshift/api/build/v1" cmdutil "github.com/openshift/origin/pkg/cmd/util" "github.com/openshift/origin/pkg/oc/util/clientcmd" utilenv "github.com/openshift/origin/pkg/oc/util/env" - "github.com/openshift/origin/pkg/oc/util/ocscheme" envresolve "github.com/openshift/origin/pkg/pod/envresolve" ) @@ -119,7 +119,7 @@ type EnvOptions struct { func NewEnvOptions(streams genericclioptions.IOStreams) *EnvOptions { return &EnvOptions{ - PrintFlags: genericclioptions.NewPrintFlags("updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, ContainerSelector: "*", @@ -236,7 +236,7 @@ func (o *EnvOptions) RunEnv() error { if len(o.From) != 0 { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). @@ -301,7 +301,7 @@ func (o *EnvOptions) RunEnv() error { } b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/helper.go b/pkg/oc/cli/set/helper.go index 9549a8702e1c..02d9e07297c8 100644 --- a/pkg/oc/cli/set/helper.go +++ b/pkg/oc/cli/set/helper.go @@ -2,16 +2,13 @@ package set import ( "fmt" - "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" "k8s.io/kubernetes/pkg/api/legacyscheme" kapi "k8s.io/kubernetes/pkg/apis/core" - kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/scheme" ) @@ -29,32 +26,6 @@ func selectContainers(containers []kapi.Container, spec string) ([]*kapi.Contain return out, skipped } -func handlePodUpdateError(out io.Writer, err error, resource string) { - if statusError, ok := err.(*errors.StatusError); ok && errors.IsInvalid(err) { - errorDetails := statusError.Status().Details - if errorDetails.Kind == "Pod" { - all, match := true, false - for _, cause := range errorDetails.Causes { - if cause.Field == "spec" && strings.Contains(cause.Message, "may not update fields other than") { - fmt.Fprintf(out, "error: may not update %s in pod %q directly\n", resource, errorDetails.Name) - match = true - } else { - all = false - } - } - if all && match { - return - } - } else { - if ok := kcmdutil.PrintErrorWithCauses(err, out); ok { - return - } - } - } - - fmt.Fprintf(out, "error: %v\n", err) -} - // selectString returns true if the provided string matches spec, where spec is a string with // a non-greedy '*' wildcard operator. // TODO: turn into a regex and handle greedy matches and backtracking. diff --git a/pkg/oc/cli/set/imagelookup.go b/pkg/oc/cli/set/imagelookup.go index 930162510d33..f02449976199 100644 --- a/pkg/oc/cli/set/imagelookup.go +++ b/pkg/oc/cli/set/imagelookup.go @@ -16,10 +16,10 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" imagev1 "github.com/openshift/api/image/v1" ometa "github.com/openshift/origin/pkg/api/meta" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -104,7 +104,7 @@ type ImageLookupOptions struct { func NewImageLookupOptions(streams genericclioptions.IOStreams) *ImageLookupOptions { return &ImageLookupOptions{ - PrintFlags: genericclioptions.NewPrintFlags("image lookup updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("image lookup updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, Enabled: true, } @@ -187,7 +187,7 @@ func (o *ImageLookupOptions) Validate() error { // Run executes the ImageLookupOptions or returns an error. func (o *ImageLookupOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/probe.go b/pkg/oc/cli/set/probe.go index 857552031e7a..044f72b2bf77 100644 --- a/pkg/oc/cli/set/probe.go +++ b/pkg/oc/cli/set/probe.go @@ -23,9 +23,9 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/polymorphichelpers" + "k8s.io/kubernetes/pkg/kubectl/scheme" "github.com/openshift/origin/pkg/oc/util/clientcmd" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -116,7 +116,7 @@ type ProbeOptions struct { func NewProbeOptions(streams genericclioptions.IOStreams) *ProbeOptions { return &ProbeOptions{ - PrintFlags: genericclioptions.NewPrintFlags("probes updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("probes updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, ContainerSelector: "*", @@ -290,7 +290,7 @@ func (o *ProbeOptions) Validate() error { func (o *ProbeOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/routebackends.go b/pkg/oc/cli/set/routebackends.go index 27b000029ac8..257caf94de1c 100644 --- a/pkg/oc/cli/set/routebackends.go +++ b/pkg/oc/cli/set/routebackends.go @@ -20,9 +20,9 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" routev1 "github.com/openshift/api/route/v1" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -94,7 +94,7 @@ type BackendsOptions struct { func NewBackendsOptions(streams genericclioptions.IOStreams) *BackendsOptions { return &BackendsOptions{ - PrintFlags: genericclioptions.NewPrintFlags("backends updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("backends updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, } } @@ -185,7 +185,7 @@ func (o *BackendsOptions) Validate() error { // Run executes the BackendOptions or returns an error. func (o *BackendsOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/triggers.go b/pkg/oc/cli/set/triggers.go index ea5939a28488..4ab001cd37b6 100644 --- a/pkg/oc/cli/set/triggers.go +++ b/pkg/oc/cli/set/triggers.go @@ -28,6 +28,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" appsv1 "github.com/openshift/api/apps/v1" buildv1 "github.com/openshift/api/build/v1" @@ -36,7 +37,6 @@ import ( triggerapi "github.com/openshift/origin/pkg/image/apis/image/v1/trigger" "github.com/openshift/origin/pkg/image/trigger/annotations" "github.com/openshift/origin/pkg/oc/lib/newapp/app" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) var ( @@ -122,7 +122,7 @@ type TriggersOptions struct { func NewTriggersOptions(streams genericclioptions.IOStreams) *TriggersOptions { return &TriggersOptions{ - PrintFlags: genericclioptions.NewPrintFlags("triggers updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("triggers updated").WithTypeSetter(scheme.Scheme), IOStreams: streams, } } @@ -283,7 +283,7 @@ func (o *TriggersOptions) Validate() error { func (o *TriggersOptions) Run() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.Namespace).DefaultNamespace(). diff --git a/pkg/oc/cli/set/volume.go b/pkg/oc/cli/set/volume.go index 694e65cf0dfe..1848c92584ed 100644 --- a/pkg/oc/cli/set/volume.go +++ b/pkg/oc/cli/set/volume.go @@ -29,9 +29,9 @@ import ( "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/polymorphichelpers" + "k8s.io/kubernetes/pkg/kubectl/scheme" "github.com/openshift/origin/pkg/oc/util/clientcmd" - "github.com/openshift/origin/pkg/oc/util/ocscheme" ) const ( @@ -157,7 +157,7 @@ type AddVolumeOptions struct { func NewVolumeOptions(streams genericclioptions.IOStreams) *VolumeOptions { return &VolumeOptions{ - PrintFlags: genericclioptions.NewPrintFlags("volume updated").WithTypeSetter(ocscheme.PrintingInternalScheme), + PrintFlags: genericclioptions.NewPrintFlags("volume updated").WithTypeSetter(scheme.Scheme), Containers: "*", AddOpts: &AddVolumeOptions{ @@ -438,7 +438,7 @@ func (a *AddVolumeOptions) Complete() error { func (o *VolumeOptions) RunVolume() error { b := o.Builder(). - WithScheme(ocscheme.ReadingInternalScheme, ocscheme.ReadingInternalScheme.PrioritizedVersionsAllGroups()...). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). LocalParam(o.Local). ContinueOnError(). NamespaceParam(o.DefaultNamespace).DefaultNamespace(). diff --git a/pkg/oc/util/ocscheme/groupified.go b/pkg/oc/util/ocscheme/groupified.go deleted file mode 100644 index 6d9bb5d2b527..000000000000 --- a/pkg/oc/util/ocscheme/groupified.go +++ /dev/null @@ -1,59 +0,0 @@ -package ocscheme - -import ( - "k8s.io/apimachinery/pkg/runtime" - - appsv1 "github.com/openshift/api/apps/v1" - authorizationv1 "github.com/openshift/api/authorization/v1" - buildv1 "github.com/openshift/api/build/v1" - imagev1 "github.com/openshift/api/image/v1" - networkv1 "github.com/openshift/api/network/v1" - oauthv1 "github.com/openshift/api/oauth/v1" - projectv1 "github.com/openshift/api/project/v1" - quotav1 "github.com/openshift/api/quota/v1" - routev1 "github.com/openshift/api/route/v1" - securityv1 "github.com/openshift/api/security/v1" - templatev1 "github.com/openshift/api/template/v1" - userv1 "github.com/openshift/api/user/v1" -) - -func AddOpenShiftExternalToScheme(scheme *runtime.Scheme) error { - if err := appsv1.AddToScheme(scheme); err != nil { - return err - } - if err := authorizationv1.AddToScheme(scheme); err != nil { - return err - } - if err := buildv1.AddToScheme(scheme); err != nil { - return err - } - if err := imagev1.AddToScheme(scheme); err != nil { - return err - } - if err := networkv1.AddToScheme(scheme); err != nil { - return err - } - if err := oauthv1.AddToScheme(scheme); err != nil { - return err - } - if err := projectv1.AddToScheme(scheme); err != nil { - return err - } - if err := quotav1.AddToScheme(scheme); err != nil { - return err - } - if err := routev1.AddToScheme(scheme); err != nil { - return err - } - if err := securityv1.AddToScheme(scheme); err != nil { - return err - } - if err := templatev1.AddToScheme(scheme); err != nil { - return err - } - if err := userv1.AddToScheme(scheme); err != nil { - return err - } - - return nil -} diff --git a/pkg/oc/util/ocscheme/printing.go b/pkg/oc/util/ocscheme/printing.go index b768808adab6..d13ce1427704 100644 --- a/pkg/oc/util/ocscheme/printing.go +++ b/pkg/oc/util/ocscheme/printing.go @@ -2,25 +2,6 @@ package ocscheme import ( "k8s.io/apimachinery/pkg/runtime" - kadmissioninstall "k8s.io/kubernetes/pkg/apis/admission/install" - kadmissionregistrationinstall "k8s.io/kubernetes/pkg/apis/admissionregistration/install" - kappsinstall "k8s.io/kubernetes/pkg/apis/apps/install" - kauthenticationinstall "k8s.io/kubernetes/pkg/apis/authentication/install" - kauthorizationinstall "k8s.io/kubernetes/pkg/apis/authorization/install" - kautoscalinginstall "k8s.io/kubernetes/pkg/apis/autoscaling/install" - kbatchinstall "k8s.io/kubernetes/pkg/apis/batch/install" - kcertificatesinstall "k8s.io/kubernetes/pkg/apis/certificates/install" - kcomponentconfiginstall "k8s.io/kubernetes/pkg/apis/componentconfig/install" - kcoreinstall "k8s.io/kubernetes/pkg/apis/core/install" - keventsinstall "k8s.io/kubernetes/pkg/apis/events/install" - kextensionsinstall "k8s.io/kubernetes/pkg/apis/extensions/install" - kimagepolicyinstall "k8s.io/kubernetes/pkg/apis/imagepolicy/install" - knetworkinginstall "k8s.io/kubernetes/pkg/apis/networking/install" - kpolicyinstall "k8s.io/kubernetes/pkg/apis/policy/install" - krbacinstall "k8s.io/kubernetes/pkg/apis/rbac/install" - kschedulinginstall "k8s.io/kubernetes/pkg/apis/scheduling/install" - ksettingsinstall "k8s.io/kubernetes/pkg/apis/settings/install" - kstorageinstall "k8s.io/kubernetes/pkg/apis/storage/install" "github.com/openshift/origin/pkg/api/install" ) @@ -31,25 +12,6 @@ import ( var PrintingInternalScheme = runtime.NewScheme() func init() { - install.InstallAll(PrintingInternalScheme) - - kadmissioninstall.Install(PrintingInternalScheme) - kadmissionregistrationinstall.Install(PrintingInternalScheme) - kappsinstall.Install(PrintingInternalScheme) - kauthenticationinstall.Install(PrintingInternalScheme) - kauthorizationinstall.Install(PrintingInternalScheme) - kautoscalinginstall.Install(PrintingInternalScheme) - kbatchinstall.Install(PrintingInternalScheme) - kcertificatesinstall.Install(PrintingInternalScheme) - kcomponentconfiginstall.Install(PrintingInternalScheme) - kcoreinstall.Install(PrintingInternalScheme) - keventsinstall.Install(PrintingInternalScheme) - kextensionsinstall.Install(PrintingInternalScheme) - kimagepolicyinstall.Install(PrintingInternalScheme) - knetworkinginstall.Install(PrintingInternalScheme) - kpolicyinstall.Install(PrintingInternalScheme) - krbacinstall.Install(PrintingInternalScheme) - kschedulinginstall.Install(PrintingInternalScheme) - ksettingsinstall.Install(PrintingInternalScheme) - kstorageinstall.Install(PrintingInternalScheme) + install.InstallInternalOpenShift(PrintingInternalScheme) + install.InstallInternalKube(PrintingInternalScheme) } diff --git a/pkg/oc/util/ocscheme/read_internal.go b/pkg/oc/util/ocscheme/read_internal.go index 953f5e0b25e5..6f1bb01c2635 100644 --- a/pkg/oc/util/ocscheme/read_internal.go +++ b/pkg/oc/util/ocscheme/read_internal.go @@ -2,25 +2,6 @@ package ocscheme import ( "k8s.io/apimachinery/pkg/runtime" - kadmissioninstall "k8s.io/kubernetes/pkg/apis/admission/install" - kadmissionregistrationinstall "k8s.io/kubernetes/pkg/apis/admissionregistration/install" - kappsinstall "k8s.io/kubernetes/pkg/apis/apps/install" - kauthenticationinstall "k8s.io/kubernetes/pkg/apis/authentication/install" - kauthorizationinstall "k8s.io/kubernetes/pkg/apis/authorization/install" - kautoscalinginstall "k8s.io/kubernetes/pkg/apis/autoscaling/install" - kbatchinstall "k8s.io/kubernetes/pkg/apis/batch/install" - kcertificatesinstall "k8s.io/kubernetes/pkg/apis/certificates/install" - kcomponentconfiginstall "k8s.io/kubernetes/pkg/apis/componentconfig/install" - kcoreinstall "k8s.io/kubernetes/pkg/apis/core/install" - keventsinstall "k8s.io/kubernetes/pkg/apis/events/install" - kextensionsinstall "k8s.io/kubernetes/pkg/apis/extensions/install" - kimagepolicyinstall "k8s.io/kubernetes/pkg/apis/imagepolicy/install" - knetworkinginstall "k8s.io/kubernetes/pkg/apis/networking/install" - kpolicyinstall "k8s.io/kubernetes/pkg/apis/policy/install" - krbacinstall "k8s.io/kubernetes/pkg/apis/rbac/install" - kschedulinginstall "k8s.io/kubernetes/pkg/apis/scheduling/install" - ksettingsinstall "k8s.io/kubernetes/pkg/apis/settings/install" - kstorageinstall "k8s.io/kubernetes/pkg/apis/storage/install" "github.com/openshift/origin/pkg/api/install" "github.com/openshift/origin/pkg/api/legacy" @@ -33,26 +14,7 @@ import ( var ReadingInternalScheme = runtime.NewScheme() func init() { - install.InstallAll(ReadingInternalScheme) - legacy.InstallLegacyInternalAll(ReadingInternalScheme) - - kadmissioninstall.Install(ReadingInternalScheme) - kadmissionregistrationinstall.Install(ReadingInternalScheme) - kappsinstall.Install(ReadingInternalScheme) - kauthenticationinstall.Install(ReadingInternalScheme) - kauthorizationinstall.Install(ReadingInternalScheme) - kautoscalinginstall.Install(ReadingInternalScheme) - kbatchinstall.Install(ReadingInternalScheme) - kcertificatesinstall.Install(ReadingInternalScheme) - kcomponentconfiginstall.Install(ReadingInternalScheme) - kcoreinstall.Install(ReadingInternalScheme) - keventsinstall.Install(ReadingInternalScheme) - kextensionsinstall.Install(ReadingInternalScheme) - kimagepolicyinstall.Install(ReadingInternalScheme) - knetworkinginstall.Install(ReadingInternalScheme) - kpolicyinstall.Install(ReadingInternalScheme) - krbacinstall.Install(ReadingInternalScheme) - kschedulinginstall.Install(ReadingInternalScheme) - ksettingsinstall.Install(ReadingInternalScheme) - kstorageinstall.Install(ReadingInternalScheme) + install.InstallInternalOpenShift(ReadingInternalScheme) + install.InstallInternalKube(ReadingInternalScheme) + legacy.InstallInternalLegacyAll(ReadingInternalScheme) } diff --git a/test/util/server/server.go b/test/util/server/server.go index 92d75448c75f..71dde616dad9 100644 --- a/test/util/server/server.go +++ b/test/util/server/server.go @@ -451,7 +451,7 @@ func StartConfiguredMasterWithOptions(masterConfig *configapi.MasterConfig) (str guardMaster() // openshift apiserver needs its own scheme, but this installs it for now. oc needs it off, openshift apiserver needs it on. awesome. - legacy.InstallLegacyInternalAll(legacyscheme.Scheme) + legacy.InstallInternalLegacyAll(legacyscheme.Scheme) if masterConfig.EtcdConfig != nil && len(masterConfig.EtcdConfig.StorageDir) > 0 { os.RemoveAll(masterConfig.EtcdConfig.StorageDir) diff --git a/tools/etcdhelper/etcdhelper.go b/tools/etcdhelper/etcdhelper.go index 0fec22a474cf..40d626f9bf1c 100644 --- a/tools/etcdhelper/etcdhelper.go +++ b/tools/etcdhelper/etcdhelper.go @@ -17,18 +17,14 @@ import ( "github.com/coreos/etcd/pkg/transport" // install all APIs - _ "github.com/openshift/origin/pkg/api/install" - apiinstall "github.com/openshift/origin/pkg/api/install" - apilegacy "github.com/openshift/origin/pkg/api/legacy" - _ "github.com/openshift/origin/pkg/quota/apis/quota/install" - apiregistration "k8s.io/kube-aggregator/pkg/apis/apiregistration/install" - _ "k8s.io/kubernetes/pkg/apis/core/install" + install "github.com/openshift/origin/pkg/api/install" + "github.com/openshift/origin/pkg/api/legacy" ) func init() { - apiregistration.Install(scheme.Scheme) - apiinstall.InstallAll(scheme.Scheme) - apilegacy.InstallLegacyInternalAll(scheme.Scheme) + install.InstallInternalOpenShift(scheme.Scheme) + install.InstallInternalKube(scheme.Scheme) + legacy.InstallInternalLegacyAll(scheme.Scheme) } func main() {