diff --git a/pkg/cmd/cli/cmd/wrappers.go b/pkg/cmd/cli/cmd/wrappers.go index 17bb81db9572..25fb150fd1d2 100644 --- a/pkg/cmd/cli/cmd/wrappers.go +++ b/pkg/cmd/cli/cmd/wrappers.go @@ -306,7 +306,7 @@ const ( runLong = `Create and run a particular image, possibly replicated Creates a deployment config to manage the created container(s). You can choose to run in the -foreground for an interactive container execution. You may pass 'run-controller/v1' to +foreground for an interactive container execution. You may pass 'run/v1' to --generator to create a replication controller instead of a deployment config.` runExample = ` # Starts a single instance of nginx. @@ -337,13 +337,13 @@ foreground for an interactive container execution. You may pass 'run-controller // NewCmdRun is a wrapper for the Kubernetes cli run command func NewCmdRun(fullName string, f *clientcmd.Factory, in io.Reader, out, errout io.Writer) *cobra.Command { - opts := &kcmd.RunOptions{DefaultRestartAlwaysGenerator: kcmdutil.RunV1GeneratorName, DefaultGenerator: kcmdutil.RunPodV1GeneratorName} + opts := &kcmd.RunOptions{DefaultRestartAlwaysGenerator: "deploymentconfig/v1", DefaultGenerator: kcmdutil.RunPodV1GeneratorName} cmd := kcmd.NewCmdRunWithOptions(f.Factory, opts, in, out, errout) cmd.Long = runLong cmd.Example = fmt.Sprintf(runExample, fullName) cmd.SuggestFor = []string{"image"} cmd.Flags().Set("generator", "") - cmd.Flag("generator").Usage = "The name of the API generator to use. Default is 'run/v1' if --restart=Always, otherwise the default is 'run-pod/v1'." + cmd.Flag("generator").Usage = "The name of the API generator to use. Default is 'deploymentconfig/v1' if --restart=Always, otherwise the default is 'run-pod/v1'." cmd.Flag("generator").DefValue = "" cmd.Flag("generator").Changed = false return cmd diff --git a/pkg/cmd/util/clientcmd/factory.go b/pkg/cmd/util/clientcmd/factory.go index 96f8423fb4bb..7cdd981123c8 100644 --- a/pkg/cmd/util/clientcmd/factory.go +++ b/pkg/cmd/util/clientcmd/factory.go @@ -144,8 +144,8 @@ type Factory struct { func DefaultGenerators(cmdName string) map[string]kubectl.Generator { generators := map[string]map[string]kubectl.Generator{} generators["run"] = map[string]kubectl.Generator{ - cmdutil.RunV1GeneratorName: deploygen.BasicDeploymentConfigController{}, - "run-controller/v1": kubectl.BasicReplicationController{}, + "deploymentconfig/v1": deploygen.BasicDeploymentConfigController{}, + "run-controller/v1": kubectl.BasicReplicationController{}, // legacy alias for run/v1 } generators["expose"] = map[string]kubectl.Generator{ "route/v1": routegen.RouteGenerator{}, @@ -290,10 +290,6 @@ func NewFactory(clientConfig kclientcmd.ClientConfig) *Factory { for k, v := range kubeGenerators { ret[k] = v } - // TODO: enable once deployments are supported in origin - if cmdName == "run" { - delete(ret, cmdutil.DeploymentV1Beta1GeneratorName) - } for k, v := range originGenerators { ret[k] = v } diff --git a/pkg/cmd/util/clientcmd/factory_test.go b/pkg/cmd/util/clientcmd/factory_test.go index 3a9f08364e4e..086b40035832 100644 --- a/pkg/cmd/util/clientcmd/factory_test.go +++ b/pkg/cmd/util/clientcmd/factory_test.go @@ -19,10 +19,18 @@ func TestRunGenerators(t *testing.T) { f := NewFactory(nil) // Contains the run generators we expect to see - // If new generators appear from upstream, make sure we support the underlying types - // If we do (like Job, Pod, etc), add them to the expected list here - // If we do not support in oc yet (like upstream Deployments), remove them in our factory's Generators function in factory.go - expectedRunGenerators := sets.NewString("job/v1", "job/v1beta1", "run-controller/v1", "run-pod/v1", "run/v1").List() + expectedRunGenerators := sets.NewString( + // kube generators + "run/v1", + "run-pod/v1", + "deployment/v1beta1", + "job/v1", + "job/v1beta1", + + // origin generators + "run-controller/v1", // legacy alias for run/v1 + "deploymentconfig/v1", + ).List() runGenerators := sets.StringKeySet(f.Generators("run")).List() if !reflect.DeepEqual(expectedRunGenerators, runGenerators) { diff --git a/test/cmd/basicresources.sh b/test/cmd/basicresources.sh index b16c27e5fd5f..c7750f64d62e 100755 --- a/test/cmd/basicresources.sh +++ b/test/cmd/basicresources.sh @@ -237,11 +237,12 @@ os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-templa os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --restart=Never' 'Pod v1' # TODO: version ordering is unstable between Go 1.4 and Go 1.6 because of import order os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --output-version=extensions/v1beta1 --generator=job/v1beta1' 'Job extensions/v1beta1' -os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=job/v1' 'Job batch/v1' -os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run/v1' 'DeploymentConfig v1' -os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run-controller/v1' 'ReplicationController v1' -os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run-pod/v1' 'Pod v1' -os::cmd::expect_failure_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=deployment/v1beta1' 'not found' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=job/v1' 'Job batch/v1' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=deploymentconfig/v1' 'DeploymentConfig v1' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run-controller/v1' 'ReplicationController v1' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run/v1' 'ReplicationController v1' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=run-pod/v1' 'Pod v1' +os::cmd::expect_success_and_text 'oc run --dry-run foo --image=bar -o "go-template={{.kind}} {{.apiVersion}}" --generator=deployment/v1beta1' 'Deployment extensions/v1beta1' os::cmd::expect_success 'oc process -f examples/sample-app/application-template-stibuild.json -l name=mytemplate | oc create -f -' os::cmd::expect_success 'oc delete all -l name=mytemplate'