From d98c4e831180b106ff01e80b1bae485949cddbd5 Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 5 Apr 2021 15:44:27 +0000 Subject: [PATCH] add version sub command Signed-off-by: Jeff --- cmd/ks-apiserver/app/server.go | 12 ++++++++++++ pkg/version/version.go | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/cmd/ks-apiserver/app/server.go b/cmd/ks-apiserver/app/server.go index ff86a1c26..f97826e43 100644 --- a/cmd/ks-apiserver/app/server.go +++ b/cmd/ks-apiserver/app/server.go @@ -28,6 +28,7 @@ import ( apiserverconfig "kubesphere.io/kubesphere/pkg/apiserver/config" "kubesphere.io/kubesphere/pkg/utils/signals" "kubesphere.io/kubesphere/pkg/utils/term" + "kubesphere.io/kubesphere/pkg/version" tracing "kubesphere.io/kubesphere/pkg/kapis/servicemesh/metrics/v1alpha2" ) @@ -73,6 +74,17 @@ cluster's shared state through which all other components interact.`, fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine()) cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) }) + + versionCmd := &cobra.Command{ + Use: "version", + Short: "Print the version of KubeSphere ks-apiserver", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println(version.Get()) + }, + } + + cmd.AddCommand(versionCmd) + return cmd } diff --git a/pkg/version/version.go b/pkg/version/version.go index 8c55f7371..a198ad3fc 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -17,6 +17,7 @@ limitations under the License. package version import ( + "encoding/json" "fmt" "runtime" @@ -45,14 +46,20 @@ type Info struct { Kubernetes *apimachineryversion.Info `json:"kubernetes,omitempty"` } +func (info Info) String() string { + jsonString, _ := json.Marshal(info) + return string(jsonString) +} + // Get returns the overall codebase version. It's for // detecting what code a binary was built from. func Get() Info { // These variables typically come from -ldflags settings and // in their absence fallback to the default settings return Info{ - GitVersion: gitVersion, - + GitVersion: gitVersion, + GitMajor: gitMajor, + GitMinor: gitMinor, GitCommit: gitCommit, GitTreeState: gitTreeState, BuildDate: buildDate,