Skip to content

Commit

Permalink
remove kubectl from openshift (but not oc)
Browse files Browse the repository at this point in the history
  • Loading branch information
deads2k committed Nov 20, 2017
1 parent 49fb419 commit 41f361a
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 46 deletions.
3 changes: 0 additions & 3 deletions pkg/cmd/openshift/openshift.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ func CommandFor(basename string) *cobra.Command {
cmd = cli.NewCommandCLI(basename, basename, in, out, errout)
case "oadm", "osadm":
cmd = admin.NewCommandAdmin(basename, basename, in, out, errout)
case "kubectl":
cmd = cli.NewCmdKubectl(basename, out)
case "kube-apiserver":
cmd = kubernetes.NewAPIServerCommand(basename, basename, out)
case "kube-controller-manager":
Expand Down Expand Up @@ -126,7 +124,6 @@ func NewCommandOpenShift(name string) *cobra.Command {
root.AddCommand(startAllInOne)
root.AddCommand(admin.NewCommandAdmin("admin", name+" admin", in, out, errout))
root.AddCommand(cli.NewCommandCLI("cli", name+" cli", in, out, errout))
root.AddCommand(cli.NewCmdKubectl("kube", out))
root.AddCommand(newExperimentalCommand("ex", name+" ex"))
root.AddCommand(newCompletionCommand("completion", name+" completion"))
root.AddCommand(cmd.NewCmdVersion(name, f, out, cmd.VersionOptions{PrintEtcdVersion: true, IsServer: true}))
Expand Down
26 changes: 1 addition & 25 deletions pkg/oc/cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ import (
"runtime"
"strings"

"github.com/golang/glog"
"github.com/spf13/cobra"
"github.com/spf13/pflag"

kubecmd "k8s.io/kubernetes/pkg/kubectl/cmd"
ktemplates "k8s.io/kubernetes/pkg/kubectl/cmd/templates"
Expand Down Expand Up @@ -256,28 +254,6 @@ func changeSharedFlagDefaults(rootCmd *cobra.Command) {
}
}

// NewCmdKubectl provides exactly the functionality from Kubernetes,
// but with support for OpenShift resources
func NewCmdKubectl(name string, out io.Writer) *cobra.Command {
flags := pflag.NewFlagSet("", pflag.ContinueOnError)
f := clientcmd.New(flags)
cmds := kubecmd.NewKubectlCommand(f, os.Stdin, out, os.Stderr)
cmds.Aliases = []string{"kubectl"}
cmds.Use = name
cmds.Short = "Kubernetes cluster management via kubectl"
flags.VisitAll(func(flag *pflag.Flag) {
if f := cmds.PersistentFlags().Lookup(flag.Name); f == nil {
cmds.PersistentFlags().AddFlag(flag)
} else {
glog.V(5).Infof("already registered flag %s", flag.Name)
}
})
cmds.PersistentFlags().Var(flags.Lookup("config").Value, "kubeconfig", "Specify a kubeconfig file to define the configuration")
templates.ActsAsRootCommand(cmds, []string{"options"})
cmds.AddCommand(cmd.NewCmdOptions(out))
return cmds
}

// CommandFor returns the appropriate command for this base name,
// or the OpenShift CLI command.
func CommandFor(basename string) *cobra.Command {
Expand All @@ -293,7 +269,7 @@ func CommandFor(basename string) *cobra.Command {

switch basename {
case "kubectl":
cmd = NewCmdKubectl(basename, out)
cmd = kubecmd.NewKubectlCommand(kcmdutil.NewFactory(nil), in, out, errout)
default:
cmd = NewCommandCLI("oc", "oc", in, out, errout)
}
Expand Down
12 changes: 2 additions & 10 deletions test/cmd/basicresources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,13 @@ os::cmd::expect_success_and_not_text "curl -k '${API_SCHEME}://${API_HOST}:${API

# variants I know I have to worry about
# 1. oc (kube and openshift resources)
# 2. openshift kubectl (kube and openshift resources)
# 3. oadm and oc adm (kube and openshift resources)
# 4 openshift cli (kube and openshift resources)
# 2. oadm and oc adm (kube and openshift resources)
# 3 openshift cli (kube and openshift resources)

# example User-Agent: oc/v1.2.0 (linux/amd64) kubernetes/bc4550d
os::cmd::expect_success_and_text 'oc get pods --loglevel=7 2>&1 | grep -A4 "pods" | grep User-Agent' "oc/${kube_git_regex} .* kubernetes/"
# example User-Agent: oc/v1.2.0 (linux/amd64) kubernetes/bc4550d
os::cmd::expect_success_and_text 'oc get dc --loglevel=7 2>&1 | grep -A4 "deploymentconfig" | grep User-Agent' "oc/${kube_git_regex} .* kubernetes/"
# example User-Agent: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d
# this is probably broken and should be `kubectl/<kube version> kubernetes/...`
os::cmd::expect_success_and_text 'openshift kubectl get pods --loglevel=7 2>&1 | grep -A4 "pods" | grep User-Agent' "openshift/${kube_git_regex} .* kubernetes/"
# example User-Agent: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d
# this is probably broken and should be `kubectl/<kube version> kubernetes/...`
os::cmd::expect_success_and_text 'openshift kubectl get dc --loglevel=7 2>&1 | grep -A4 "deploymentconfig" | grep User-Agent' "openshift/${kube_git_regex} .* kubernetes/"
# example User-Agent: oadm/v1.2.0 (linux/amd64) kubernetes/bc4550d
# this is probably broken and should be `oadm/<oc version>... openshift/...`
os::cmd::expect_success_and_text 'oadm policy reconcile-sccs --loglevel=7 2>&1 | grep -A4 "securitycontextconstraints" | grep User-Agent' "oadm/${kube_git_regex} .* kubernetes/"
# example User-Agent: oc/v1.1.3 (linux/amd64) openshift/b348c2f
Expand Down
8 changes: 0 additions & 8 deletions test/cmd/help.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ os::cmd::expect_success 'openshift ex'
os::cmd::expect_success 'openshift admin config'
os::cmd::expect_success 'openshift cli config'
os::cmd::expect_success 'openshift admin policy '
os::cmd::expect_success 'openshift kubectl'
os::cmd::expect_success 'openshift kube'
os::cmd::expect_success 'openshift admin'
os::cmd::expect_success 'openshift start kubernetes'
os::cmd::expect_success 'kubernetes'
Expand All @@ -35,7 +33,6 @@ os::cmd::expect_success_and_not_text 'oc -h' 'Options'
os::cmd::expect_success_and_not_text 'oc -h' 'Global Options'
os::cmd::expect_success_and_text 'openshift cli' 'OpenShift Client'
os::cmd::expect_success_and_text 'oc types' 'Deployment Config'
os::cmd::expect_success_and_text 'openshift kubectl' 'Kubernetes cluster'
os::cmd::expect_success_and_text 'oadm' 'Administrative Commands'
os::cmd::expect_success_and_text 'openshift admin' 'Administrative Commands'
os::cmd::expect_success_and_text 'oadm' 'Component Installation:'
Expand All @@ -58,19 +55,16 @@ os::cmd::expect_success_and_text 'oc login --help' 'Options'
os::cmd::expect_success_and_not_text 'oc login --help' 'Global Options'
os::cmd::expect_success_and_text 'oc login --help' 'insecure-skip-tls-verify'
os::cmd::expect_success_and_text 'openshift cli --help' 'OpenShift Client'
os::cmd::expect_success_and_text 'openshift kubectl --help' 'Kubernetes cluster'
os::cmd::expect_success_and_text 'oadm --help' 'Administrative Commands'
os::cmd::expect_success_and_text 'openshift admin --help' 'Administrative Commands'

# help for root commands through help command must be consistent
os::cmd::expect_success_and_text 'openshift help cli' 'OpenShift Client'
os::cmd::expect_success_and_text 'openshift help kubectl' 'Kubernetes cluster'
os::cmd::expect_success_and_text 'openshift help admin' 'Administrative Commands'

# help for given command with --help flag must be consistent
os::cmd::expect_success_and_text 'oc get --help' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift cli get --help' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift kubectl get --help' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift start --help' 'Start an all-in-one server'
os::cmd::expect_success_and_text 'openshift start master --help' 'Start a master'
os::cmd::expect_success_and_text 'openshift start node --help' 'Start a node'
Expand All @@ -83,7 +77,6 @@ os::cmd::expect_success_and_text 'oc get --help' 'oc'
# help for given command through help command must be consistent
os::cmd::expect_success_and_text 'oc help get' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift help cli get' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift help kubectl get' 'Display one or many resources'
os::cmd::expect_success_and_text 'openshift help start' 'Start an all-in-one server'
os::cmd::expect_success_and_text 'openshift help start master' 'Start a master'
os::cmd::expect_success_and_text 'openshift help start node' 'Start a node'
Expand All @@ -102,7 +95,6 @@ os::cmd::expect_success_and_text 'oc set env --help' 'Use "oc options" for a lis
# runnable commands with required flags must error consistently
os::cmd::expect_failure_and_text 'oc get' 'Required resource not specified'
os::cmd::expect_failure_and_text 'openshift cli get' 'Required resource not specified'
os::cmd::expect_failure_and_text 'openshift kubectl get' 'Required resource not specified'

# commands that expect file paths must validate and error out correctly
os::cmd::expect_failure_and_text 'oc login --certificate-authority=/path/to/invalid' 'no such file or directory'
Expand Down

0 comments on commit 41f361a

Please sign in to comment.