// PrintAndExitIfRequested will check if the -version flag was passed // and, if so, print the version and exit. func PrintAndExitIfRequested() { if *versionFlag == VersionRaw { fmt.Printf("%#v\n", version.Get()) os.Exit(0) } else if *versionFlag == VersionTrue { fmt.Printf("Kubernetes %s\n", version.Get()) os.Exit(0) } }
// DefaultKubernetesUserAgent returns the default user agent that clients can use. func DefaultKubernetesUserAgent() string { commit := version.Get().GitCommit if len(commit) > 7 { commit = commit[:7] } if len(commit) == 0 { commit = "unknown" } version := version.Get().GitVersion seg := strings.SplitN(version, "-", 2) version = seg[0] return fmt.Sprintf("%s/%s (%s/%s) kubernetes/%s", path.Base(os.Args[0]), version, gruntime.GOOS, gruntime.GOARCH, commit) }
func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { action := ActionImpl{} action.Verb = "get" action.Resource = "version" c.Invokes(action, nil) versionInfo := version.Get() return &versionInfo, nil }
// MatchesServerVersion queries the server to compares the build version // (git hash) of the client with the server's build version. It returns an error // if it failed to contact the server or if the versions are not an exact match. func MatchesServerVersion(client *Client, c *Config) error { var err error if client == nil { client, err = New(c) if err != nil { return err } } clientVersion := version.Get() serverVersion, err := client.Discovery().ServerVersion() if err != nil { return fmt.Errorf("couldn't read version from server: %v\n", err) } if s := *serverVersion; !reflect.DeepEqual(clientVersion, s) { return fmt.Errorf("server version (%#v) differs from client version (%#v)!\n", s, clientVersion) } return nil }