diff --git a/cmd/helm/version.go b/cmd/helm/version.go index 64c66b348e64703152c585c3b057969517e31240..69e0f3905b5a1ae70797963e45b81f2fac26f118 100644 --- a/cmd/helm/version.go +++ b/cmd/helm/version.go @@ -25,6 +25,7 @@ import ( "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" @@ -89,7 +90,6 @@ func newVersionCmd(c helm.Interface, out io.Writer) *cobra.Command { } func (v *versionCmd) run() error { - if v.showClient { cv := version.GetVersionProto() fmt.Fprintf(v.out, "Client: %s\n", formatVersion(cv, v.short)) @@ -99,6 +99,14 @@ func (v *versionCmd) run() error { return nil } + 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 { @@ -111,6 +119,16 @@ func (v *versionCmd) run() error { return nil } +func getK8sVersion() (*apiVersion.Info, error) { + var v *apiVersion.Info + _, client, err := getKubeClient(settings.KubeContext) + if err != nil { + return v, err + } + v, err = client.Discovery().ServerVersion() + return v, err +} + func formatVersion(v *pb.Version, short bool) string { if short { return fmt.Sprintf("%s+g%s", v.SemVer, v.GitCommit[:7])