Add version package to allow test imports
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
parent
36db5c374d
commit
8067504097
|
|
@ -14,13 +14,14 @@ import (
|
||||||
"helm.sh/helm/v3/pkg/cli"
|
"helm.sh/helm/v3/pkg/cli"
|
||||||
|
|
||||||
"github.com/helmfile/helmfile/pkg/helmexec"
|
"github.com/helmfile/helmfile/pkg/helmexec"
|
||||||
|
"github.com/helmfile/helmfile/pkg/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
manuallyInstallCode = 1
|
manuallyInstallCode = 1
|
||||||
windowPackageManagers = map[string]string{
|
windowPackageManagers = map[string]string{
|
||||||
"scoop": fmt.Sprintf("scoop install helm@%s", strings.TrimLeft(HelmRecommendedVersion, "v")),
|
"scoop": fmt.Sprintf("scoop install helm@%s", strings.TrimLeft(version.HelmRecommendedVersion, "v")),
|
||||||
"choco": fmt.Sprintf("choco install kubernetes-helm --version %s", strings.TrimLeft(HelmRecommendedVersion, "v")),
|
"choco": fmt.Sprintf("choco install kubernetes-helm --version %s", strings.TrimLeft(version.HelmRecommendedVersion, "v")),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -90,7 +91,7 @@ func (h *HelmfileInit) InstallHelm() error {
|
||||||
return h.installHelmOnWindows()
|
return h.installHelmOnWindows()
|
||||||
}
|
}
|
||||||
|
|
||||||
err := h.WhetherContinue(fmt.Sprintf("use: '%s'", HelmInstallCommand))
|
err := h.WhetherContinue(fmt.Sprintf("use: '%s'", version.HelmInstallCommand))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -102,14 +103,14 @@ func (h *HelmfileInit) InstallHelm() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = downloadfile(getHelmScript.Name(), HelmInstallCommand)
|
err = downloadfile(getHelmScript.Name(), version.HelmInstallCommand)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = h.runner.Execute("bash", []string{
|
_, err = h.runner.Execute("bash", []string{
|
||||||
getHelmScript.Name(),
|
getHelmScript.Name(),
|
||||||
"--version",
|
"--version",
|
||||||
HelmRecommendedVersion,
|
version.HelmRecommendedVersion,
|
||||||
}, nil, true)
|
}, nil, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -182,7 +183,7 @@ func (h *HelmfileInit) CheckHelm() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
requiredHelmVersion, _ := semver.NewVersion(HelmRequiredVersion)
|
requiredHelmVersion, _ := semver.NewVersion(version.HelmRequiredVersion)
|
||||||
if helmversion.LessThan(requiredHelmVersion) {
|
if helmversion.LessThan(requiredHelmVersion) {
|
||||||
h.logger.Infof("helm version is too low, the current version is %s, the required version is %s", helmversion, requiredHelmVersion)
|
h.logger.Infof("helm version is too low, the current version is %s, the required version is %s", helmversion, requiredHelmVersion)
|
||||||
err = h.UpdateHelm()
|
err = h.UpdateHelm()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Version Package
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The `version` package contains version-related constants and utilities used throughout the Helmfile codebase. It was created as a standalone package to avoid import cycles while making version information accessible to all components.
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
This package includes:
|
||||||
|
|
||||||
|
- `HelmRequiredVersion`: The minimum required Helm version for Helmfile
|
||||||
|
- Other version-related constants and utilities
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Import this package when you need access to version information:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import "github.com/helmfile/helmfile/pkg/version"
|
||||||
|
|
||||||
|
func someFunction() {
|
||||||
|
// Use version constants
|
||||||
|
requiredVersion := version.HelmRequiredVersion
|
||||||
|
|
||||||
|
// Example usage
|
||||||
|
fmt.Printf("Helmfile requires Helm version %s or later\n", requiredVersion)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Design Considerations
|
||||||
|
|
||||||
|
This package is intentionally isolated from other Helmfile packages to prevent import cycles. It should:
|
||||||
|
|
||||||
|
- Contain only version-related constants and simple utilities
|
||||||
|
- Not import other Helmfile packages
|
||||||
|
- Be kept minimal to serve its specific purpose
|
||||||
|
|
||||||
|
When adding new version-related functionality, ensure it belongs here rather than in a more specific package.
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package version
|
||||||
|
|
||||||
|
const (
|
||||||
|
HelmRequiredVersion = "v3.16.4"
|
||||||
|
HelmRecommendedVersion = "v3.17.2"
|
||||||
|
HelmDiffRecommendedVersion = "v3.11.0"
|
||||||
|
HelmSecretsRecommendedVersion = "v4.6.0"
|
||||||
|
HelmGitRecommendedVersion = "v0.15.1"
|
||||||
|
HelmS3RecommendedVersion = "v0.16.0"
|
||||||
|
HelmInstallCommand = "https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3"
|
||||||
|
)
|
||||||
Loading…
Reference in New Issue