Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,21 @@ const (
// NOTE: If you are changing this line, please also update the minimum kubernetes
// version listed here:
// https://github.com/knative/docs/blob/main/docs/snippets/prerequisites.md
defaultMinimumVersion = "v1.34.0"
)

// MinimumVersion returns the minimum Kubernetes version Knative is built
// and tested against. The returned value has a leading "v" (e.g. "v1.34.0").
func MinimumVersion() string {
return defaultMinimumVersion
}
// DefaultKubernetesMinVersion is the default minimum Kubernetes version
// Knative is built and tested against. The value has a leading "v"
// (e.g. "v1.34.0").
DefaultKubernetesMinVersion = "v1.34.0"
)

func getMinimumVersion() string {
// KubernetesMinimumVersion returns the minimum Kubernetes version required by
// Knative. It returns the value of the KUBERNETES_MIN_VERSION environment
// variable if set, otherwise DefaultKubernetesMinVersion.
func KubernetesMinimumVersion() string {
if v := os.Getenv(KubernetesMinVersionKey); v != "" {
return v
}
return defaultMinimumVersion
return DefaultKubernetesMinVersion
}

// CheckMinimumVersion checks if the currently installed version of
Expand All @@ -65,7 +66,7 @@ func CheckMinimumVersion(versioner discovery.ServerVersionInterface) error {
if err != nil {
return err
}
minimumVersion, err := semver.Make(normalizeVersion(getMinimumVersion()))
minimumVersion, err := semver.Make(normalizeVersion(KubernetesMinimumVersion()))
if err != nil {
return err
}
Expand Down
21 changes: 15 additions & 6 deletions version/version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,18 +99,27 @@ func TestVersionCheck(t *testing.T) {

err := CheckMinimumVersion(test.actualVersion)
if err == nil && test.wantError {
t.Errorf("Expected an error for minimum: %q, actual: %v", getMinimumVersion(), test.actualVersion)
t.Errorf("Expected an error for minimum: %q, actual: %v", KubernetesMinimumVersion(), test.actualVersion)
}

if err != nil && !test.wantError {
t.Errorf("Expected no error but got %v for minimum: %q, actual: %v", err, getMinimumVersion(), test.actualVersion)
t.Errorf("Expected no error but got %v for minimum: %q, actual: %v", err, KubernetesMinimumVersion(), test.actualVersion)
}
})
}
}

func TestMinimumVersion(t *testing.T) {
if got := MinimumVersion(); got != defaultMinimumVersion {
t.Errorf("MinimumVersion() = %q, want %q", got, defaultMinimumVersion)
}
func TestKubernetesMinimumVersion(t *testing.T) {
t.Run("default", func(t *testing.T) {
t.Setenv(KubernetesMinVersionKey, "")
if got := KubernetesMinimumVersion(); got != DefaultKubernetesMinVersion {
t.Errorf("KubernetesMinimumVersion() = %q, want %q", got, DefaultKubernetesMinVersion)
}
})
t.Run("override", func(t *testing.T) {
t.Setenv(KubernetesMinVersionKey, "v1.99.0")
if got := KubernetesMinimumVersion(); got != "v1.99.0" {
t.Errorf("KubernetesMinimumVersion() = %q, want %q", got, "v1.99.0")
}
})
}
Loading