mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
smaller coverage improvement about ValidateVersion function
This commit is contained in:
parent
fbb2dfcc6a
commit
55fa6d5fdd
@ -170,14 +170,14 @@ func NewFeatureGate(f *FeatureList, value string) (map[string]bool, error) {
|
|||||||
// ResolveFeatureGateDependencies resolve dependencies between feature gates
|
// ResolveFeatureGateDependencies resolve dependencies between feature gates
|
||||||
func ResolveFeatureGateDependencies(featureGate map[string]bool) {
|
func ResolveFeatureGateDependencies(featureGate map[string]bool) {
|
||||||
|
|
||||||
|
// if HighAvailability enabled and StoreCertsInSecrets disabled, both StoreCertsInSecrets
|
||||||
|
// and SelfHosting should enabled
|
||||||
|
if Enabled(featureGate, HighAvailability) && !Enabled(featureGate, StoreCertsInSecrets) {
|
||||||
|
featureGate[StoreCertsInSecrets] = true
|
||||||
|
}
|
||||||
|
|
||||||
// if StoreCertsInSecrets enabled, SelfHosting should enabled
|
// if StoreCertsInSecrets enabled, SelfHosting should enabled
|
||||||
if Enabled(featureGate, StoreCertsInSecrets) {
|
if Enabled(featureGate, StoreCertsInSecrets) {
|
||||||
featureGate[SelfHosting] = true
|
featureGate[SelfHosting] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// if HighAvailability enabled, both StoreCertsInSecrets and SelfHosting should enabled
|
|
||||||
if Enabled(featureGate, HighAvailability) && !Enabled(featureGate, StoreCertsInSecrets) {
|
|
||||||
featureGate[SelfHosting] = true
|
|
||||||
featureGate[StoreCertsInSecrets] = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,11 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
"k8s.io/kubernetes/pkg/util/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var TestMinVersion = version.MustParseSemantic("v1.10.0-alpha.1")
|
||||||
|
|
||||||
func TestKnownFeatures(t *testing.T) {
|
func TestKnownFeatures(t *testing.T) {
|
||||||
var someFeatures = FeatureList{
|
var someFeatures = FeatureList{
|
||||||
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
|
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
|
||||||
@ -121,7 +124,7 @@ func TestNewFeatureGate(t *testing.T) {
|
|||||||
func TestValidateVersion(t *testing.T) {
|
func TestValidateVersion(t *testing.T) {
|
||||||
var someFeatures = FeatureList{
|
var someFeatures = FeatureList{
|
||||||
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
|
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
|
||||||
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
|
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}, MinimumVersion: TestMinVersion},
|
||||||
}
|
}
|
||||||
|
|
||||||
var tests = []struct {
|
var tests = []struct {
|
||||||
@ -133,10 +136,16 @@ func TestValidateVersion(t *testing.T) {
|
|||||||
requestedFeatures: map[string]bool{"feature1": true},
|
requestedFeatures: map[string]bool{"feature1": true},
|
||||||
expectedError: false,
|
expectedError: false,
|
||||||
},
|
},
|
||||||
{ //no min version
|
{ //min version but correct value given
|
||||||
requestedFeatures: map[string]bool{"feature2": true},
|
requestedFeatures: map[string]bool{"feature2": true},
|
||||||
|
requestedVersion: "v1.10.0",
|
||||||
expectedError: false,
|
expectedError: false,
|
||||||
},
|
},
|
||||||
|
{ //min version and incorrect value given
|
||||||
|
requestedFeatures: map[string]bool{"feature2": true},
|
||||||
|
requestedVersion: "v1.9.2",
|
||||||
|
expectedError: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user