chore(repo-server): simplify Kustomize/Helm version detection (#21540)

Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
This commit is contained in:
Michael Crenshaw
2025-01-24 08:15:02 -05:00
committed by GitHub
parent bcf2143dfe
commit bd9923fd75
5 changed files with 17 additions and 31 deletions

View File

@@ -39,7 +39,7 @@ func (s *Server) Version(ctx context.Context, _ *empty.Empty) (*version.VersionM
}
if s.kustomizeVersion == "" {
kustomizeVersion, err := kustomize.Version(true)
kustomizeVersion, err := kustomize.Version()
if err == nil {
s.kustomizeVersion = kustomizeVersion
} else {
@@ -47,7 +47,7 @@ func (s *Server) Version(ctx context.Context, _ *empty.Empty) (*version.VersionM
}
}
if s.helmVersion == "" {
helmVersion, err := helm.Version(true)
helmVersion, err := helm.Version()
if err == nil {
s.helmVersion = helmVersion
} else {

View File

@@ -118,15 +118,9 @@ func (h *helm) Dispose() {
h.cmd.Close()
}
func Version(shortForm bool) (string, error) {
executable := "helm"
cmdArgs := []string{"version", "--client"}
if shortForm {
cmdArgs = append(cmdArgs, "--short")
}
cmd := exec.Command(executable, cmdArgs...)
func Version() (string, error) {
cmd := exec.Command("helm", "version", "--client", "--short")
// example version output:
// long: "version.BuildInfo{Version:\"v3.3.1\", GitCommit:\"249e5215cde0c3fa72e27eb7a30e8d55c9696144\", GitTreeState:\"clean\", GoVersion:\"go1.14.7\"}"
// short: "v3.3.1+g249e521"
version, err := executil.RunWithRedactor(cmd, redactor)
if err != nil {

View File

@@ -175,7 +175,7 @@ func TestHelmArgCleaner(t *testing.T) {
}
func TestVersion(t *testing.T) {
ver, err := Version(false)
ver, err := Version()
require.NoError(t, err)
assert.NotEmpty(t, ver)
}

View File

@@ -398,7 +398,7 @@ var (
// getSemver returns parsed kustomize version
func getSemver() (*semver.Version, error) {
verStr, err := Version(true)
verStr, err := Version()
if err != nil {
return nil, err
}
@@ -429,33 +429,25 @@ func getSemverSafe() *semver.Version {
return semVer
}
func Version(shortForm bool) (string, error) {
executable := "kustomize"
cmdArgs := []string{"version"}
if shortForm {
cmdArgs = append(cmdArgs, "--short")
}
cmd := exec.Command(executable, cmdArgs...)
func Version() (string, error) {
cmd := exec.Command("kustomize", "version", "--short")
// example version output:
// long: "{Version:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64}"
// short: "{kustomize/v3.8.1 2020-07-16T00:58:46Z }"
version, err := executil.Run(cmd)
if err != nil {
return "", fmt.Errorf("could not get kustomize version: %w", err)
}
version = strings.TrimSpace(version)
if shortForm {
// trim the curly braces
version = strings.TrimPrefix(version, "{")
version = strings.TrimSuffix(version, "}")
version = strings.TrimSpace(version)
// trim the curly braces
version = strings.TrimPrefix(version, "{")
version = strings.TrimSuffix(version, "}")
version = strings.TrimSpace(version)
// remove double space in middle
version = strings.ReplaceAll(version, " ", " ")
// remove double space in middle
version = strings.ReplaceAll(version, " ", " ")
// remove extra 'kustomize/' before version
version = strings.TrimPrefix(version, "kustomize/")
}
// remove extra 'kustomize/' before version
version = strings.TrimPrefix(version, "kustomize/")
return version, nil
}

View File

@@ -170,7 +170,7 @@ func TestParseKustomizeBuildHelmOptions(t *testing.T) {
}
func TestVersion(t *testing.T) {
ver, err := Version(false)
ver, err := Version()
require.NoError(t, err)
assert.NotEmpty(t, ver)
}