diff --git a/docs/content/reference/pgo_version.md b/docs/content/reference/pgo_version.md index 6478aae..14efb0d 100644 --- a/docs/content/reference/pgo_version.md +++ b/docs/content/reference/pgo_version.md @@ -38,7 +38,8 @@ Operator Version: v5.5.0 ### Options ``` - -h, --help help for version + --client If true, shows client version only (no server required). + -h, --help help for version ``` ### Options inherited from parent commands diff --git a/internal/cmd/version.go b/internal/cmd/version.go index 8d9b0b4..89ebcba 100644 --- a/internal/cmd/version.go +++ b/internal/cmd/version.go @@ -47,6 +47,9 @@ func newVersionCommand(config *internal.Config) *cobra.Command { // No arguments for 'version' cmd.Args = cobra.NoArgs + var clientOnly bool + cmd.Flags().BoolVar(&clientOnly, "client", false, "If true, shows client version only (no server required).") + cmd.Example = internal.FormatExample(fmt.Sprintf(`# Request the version of the client and the operator pgo version @@ -57,6 +60,9 @@ Operator Version: v5.5.0`, clientVersion)) cmd.RunE = func(cmd *cobra.Command, args []string) error { cmd.Printf("Client Version: %s\n", clientVersion) + if clientOnly { + return nil + } ctx := context.Background() restConfig, err := config.ToRESTConfig() diff --git a/testing/kuttl/e2e/version/01--check-client-version.yaml b/testing/kuttl/e2e/version/01--check-client-version.yaml new file mode 100644 index 0000000..2142839 --- /dev/null +++ b/testing/kuttl/e2e/version/01--check-client-version.yaml @@ -0,0 +1,22 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: +- script: | + VERSION_OUTPUT=$(kubectl pgo version --client) + CLI_VERSION=$(kubectl pgo version --client | awk '{print $3}') + + # the CLI version isn't empty and the CLI version output follows the expected format + if [ -z "$CLI_VERSION" ]; then + echo "Client version output is empty." + exit 1 + fi + + case "${VERSION_OUTPUT}" in + *"Client Version: "*) + ;; + *) + echo "Version output is: " + echo "$VERSION_OUTPUT" + exit 1 + ;; + esac