From 1d9c3d4651e6fa8eadeb76d0de320800f00b776f Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Thu, 12 Apr 2018 15:27:56 -0700 Subject: [PATCH] ref(cmd,pkg/helm): remove server side version --- cmd/helm/version.go | 81 +++++----------------------------------- cmd/helm/version_test.go | 18 +-------- pkg/helm/client.go | 17 --------- pkg/helm/fake.go | 11 +----- pkg/helm/interface.go | 1 - 5 files changed, 13 insertions(+), 115 deletions(-) diff --git a/cmd/helm/version.go b/cmd/helm/version.go index d541067a0..8ddb8e120 100644 --- a/cmd/helm/version.go +++ b/cmd/helm/version.go @@ -17,15 +17,11 @@ limitations under the License. package main import ( - "errors" "fmt" "io" "github.com/spf13/cobra" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - apiVersion "k8s.io/apimachinery/pkg/version" "k8s.io/helm/pkg/helm" pb "k8s.io/helm/pkg/proto/hapi/version" "k8s.io/helm/pkg/version" @@ -50,41 +46,23 @@ use '--server'. ` type versionCmd struct { - out io.Writer - client helm.Interface - showClient bool - showServer bool - short bool - template string + out io.Writer + short bool + template string } func newVersionCmd(c helm.Interface, out io.Writer) *cobra.Command { - version := &versionCmd{ - client: c, - out: out, - } + version := &versionCmd{out: out} cmd := &cobra.Command{ Use: "version", - Short: "print the client/server version information", + Short: "print the client version information", Long: versionDesc, RunE: func(cmd *cobra.Command, args []string) error { - // If neither is explicitly set, show both. - if !version.showClient && !version.showServer { - version.showClient, version.showServer = true, true - } - if version.showServer { - // We do this manually instead of in PreRun because we only - // need a tunnel if server version is requested. - setupConnection() - } - version.client = ensureHelmClient(version.client) return version.run() }, } f := cmd.Flags() - f.BoolVarP(&version.showClient, "client", "c", false, "client version only") - f.BoolVarP(&version.showServer, "server", "s", false, "server version only") f.BoolVar(&version.short, "short", false, "print the version number") f.StringVar(&version.template, "template", "", "template for version string format") @@ -95,52 +73,13 @@ func (v *versionCmd) run() error { // Store map data for template rendering data := map[string]interface{}{} - if v.showClient { - cv := version.GetVersionProto() - if v.template != "" { - data["Client"] = cv - } else { - fmt.Fprintf(v.out, "Client: %s\n", formatVersion(cv, v.short)) - } - } - - if !v.showServer { - return tpl(v.template, data, v.out) - } - - if settings.Debug { - k8sVersion, err := getK8sVersion() - if err != nil { - return err - } - fmt.Fprintf(v.out, "Kubernetes: %#v\n", k8sVersion) - } - - resp, err := v.client.GetVersion() - if err != nil { - if grpc.Code(err) == codes.Unimplemented { - return errors.New("server is too old to know its version") - } - debug("%s", err) - return errors.New("cannot connect to Tiller") - } - + cv := version.GetVersionProto() if v.template != "" { - data["Server"] = resp.Version - } else { - fmt.Fprintf(v.out, "Server: %s\n", formatVersion(resp.Version, v.short)) - } - return tpl(v.template, data, v.out) -} - -func getK8sVersion() (*apiVersion.Info, error) { - var v *apiVersion.Info - _, client, err := getKubeClient(settings.KubeContext) - if err != nil { - return v, err + data["Client"] = cv + return tpl(v.template, data, v.out) } - v, err = client.Discovery().ServerVersion() - return v, err + fmt.Fprintf(v.out, "Client: %s\n", formatVersion(cv, v.short)) + return nil } func formatVersion(v *pb.Version, short bool) string { diff --git a/cmd/helm/version_test.go b/cmd/helm/version_test.go index e25724f4c..482c896af 100644 --- a/cmd/helm/version_test.go +++ b/cmd/helm/version_test.go @@ -29,33 +29,19 @@ import ( func TestVersion(t *testing.T) { lver := regexp.QuoteMeta(version.GetVersionProto().SemVer) - sver := regexp.QuoteMeta("1.2.3-fakeclient+testonly") clientVersion := fmt.Sprintf("Client: &version\\.Version{SemVer:\"%s\", GitCommit:\"\", GitTreeState:\"\"}\n", lver) - serverVersion := fmt.Sprintf("Server: &version\\.Version{SemVer:\"%s\", GitCommit:\"\", GitTreeState:\"\"}\n", sver) tests := []releaseCase{ { name: "default", args: []string{}, - expected: clientVersion + serverVersion, - }, - { - name: "client", - args: []string{}, - flags: []string{"-c"}, expected: clientVersion, }, - { - name: "server", - args: []string{}, - flags: []string{"-s"}, - expected: serverVersion, - }, { name: "template", args: []string{}, - flags: []string{"--template", "{{ .Client.SemVer }} {{ .Server.SemVer }}"}, - expected: lver + " " + sver, + flags: []string{"--template", "{{ .Client.SemVer }}"}, + expected: lver, }, } settings.TillerHost = "fake-localhost" diff --git a/pkg/helm/client.go b/pkg/helm/client.go index 43e9f4daf..e4b8615e1 100644 --- a/pkg/helm/client.go +++ b/pkg/helm/client.go @@ -193,23 +193,6 @@ func (h *Client) UpdateReleaseFromChart(rlsName string, chart *chart.Chart, opts return h.update(ctx, req) } -// GetVersion returns the server version. -func (h *Client) GetVersion(opts ...VersionOption) (*rls.GetVersionResponse, error) { - reqOpts := h.opts - for _, opt := range opts { - opt(&reqOpts) - } - req := &rls.GetVersionRequest{} - ctx := NewContext() - - if reqOpts.before != nil { - if err := reqOpts.before(ctx, req); err != nil { - return nil, err - } - } - return h.version(ctx, req) -} - // RollbackRelease rolls back a release to the previous version. func (h *Client) RollbackRelease(rlsName string, opts ...RollbackOption) (*rls.RollbackReleaseResponse, error) { reqOpts := h.opts diff --git a/pkg/helm/fake.go b/pkg/helm/fake.go index 0a9e77c44..5e0044318 100644 --- a/pkg/helm/fake.go +++ b/pkg/helm/fake.go @@ -23,10 +23,10 @@ import ( "sync" "github.com/golang/protobuf/ptypes/timestamp" + "k8s.io/helm/pkg/proto/hapi/chart" "k8s.io/helm/pkg/proto/hapi/release" rls "k8s.io/helm/pkg/proto/hapi/services" - "k8s.io/helm/pkg/proto/hapi/version" ) // FakeClient implements Interface @@ -98,15 +98,6 @@ func (c *FakeClient) DeleteRelease(rlsName string, opts ...DeleteOption) (*rls.U return nil, fmt.Errorf("No such release: %s", rlsName) } -// GetVersion returns a fake version -func (c *FakeClient) GetVersion(opts ...VersionOption) (*rls.GetVersionResponse, error) { - return &rls.GetVersionResponse{ - Version: &version.Version{ - SemVer: "1.2.3-fakeclient+testonly", - }, - }, nil -} - // UpdateRelease returns an UpdateReleaseResponse containing the updated release, if it exists func (c *FakeClient) UpdateRelease(rlsName string, chStr string, opts ...UpdateOption) (*rls.UpdateReleaseResponse, error) { return c.UpdateReleaseFromChart(rlsName, &chart.Chart{}, opts...) diff --git a/pkg/helm/interface.go b/pkg/helm/interface.go index 10c04c710..d8b1eebb3 100644 --- a/pkg/helm/interface.go +++ b/pkg/helm/interface.go @@ -33,7 +33,6 @@ type Interface interface { RollbackRelease(rlsName string, opts ...RollbackOption) (*rls.RollbackReleaseResponse, error) ReleaseContent(rlsName string, opts ...ContentOption) (*rls.GetReleaseContentResponse, error) ReleaseHistory(rlsName string, opts ...HistoryOption) (*rls.GetHistoryResponse, error) - GetVersion(opts ...VersionOption) (*rls.GetVersionResponse, error) RunReleaseTest(rlsName string, opts ...ReleaseTestOption) (<-chan *rls.TestReleaseResponse, <-chan error) PingTiller() error }