mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-19 23:51:08 +00:00
Merge pull request #134366 from tallclair/feature-gates-test
Set multiple feature gates simultaneously in test
This commit is contained in:
@@ -1705,8 +1705,10 @@ func TestGetScaleSubresourceAsTableForAllBuiltins(t *testing.T) {
|
||||
// Enable all features and apis for testing
|
||||
flags := framework.DefaultTestServerFlags()
|
||||
flags = append(flags, "--runtime-config=api/all=true")
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllAlpha", true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllBeta", true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
"AllAlpha": true,
|
||||
"AllBeta": true,
|
||||
})
|
||||
|
||||
testNamespace := "test-scale"
|
||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, flags, framework.SharedEtcd())
|
||||
@@ -3669,8 +3671,10 @@ func assertManagedFields(t *testing.T, obj *unstructured.Unstructured) {
|
||||
// TestDefaultStorageEncoding verifies that the storage encoding for all built-in resources is
|
||||
// Protobuf.
|
||||
func TestDefaultStorageEncoding(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllAlpha", true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllBeta", true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
"AllAlpha": true,
|
||||
"AllBeta": true,
|
||||
})
|
||||
|
||||
protobufRecognizer := protobuf.NewSerializer(runtime.NewScheme(), runtime.NewScheme())
|
||||
var recognizersByGroup map[string]recognizer.RecognizingDecoder
|
||||
|
||||
@@ -56,8 +56,10 @@ func TestPeerProxiedRequest(t *testing.T) {
|
||||
transport.DialerStopCh = ctx.Done()
|
||||
|
||||
// enable feature flags
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIServerIdentity, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, kubefeatures.UnknownVersionInteroperabilityProxy, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.APIServerIdentity: true,
|
||||
kubefeatures.UnknownVersionInteroperabilityProxy: true,
|
||||
})
|
||||
|
||||
// create sharedetcd
|
||||
etcd := framework.SharedEtcd()
|
||||
@@ -117,8 +119,10 @@ func TestPeerProxiedRequestToThirdServerAfterFirstDies(t *testing.T) {
|
||||
transport.DialerStopCh = ctx.Done()
|
||||
|
||||
// enable feature flags
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIServerIdentity, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, kubefeatures.UnknownVersionInteroperabilityProxy, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.APIServerIdentity: true,
|
||||
kubefeatures.UnknownVersionInteroperabilityProxy: true,
|
||||
})
|
||||
|
||||
// create sharedetcd
|
||||
etcd := framework.SharedEtcd()
|
||||
|
||||
@@ -52,8 +52,10 @@ import (
|
||||
|
||||
func TestPodSecurity(t *testing.T) {
|
||||
// Enable all feature gates needed to allow all fields to be exercised
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.UserNamespacesSupport, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.ProcMountType: true,
|
||||
features.UserNamespacesSupport: true,
|
||||
})
|
||||
// Start server
|
||||
server := startPodSecurityServer(t)
|
||||
opts := podsecuritytest.Options{
|
||||
@@ -98,8 +100,10 @@ func TestPodSecurityGAOnly(t *testing.T) {
|
||||
|
||||
func TestPodSecurityWebhook(t *testing.T) {
|
||||
// Enable all feature gates needed to allow all fields to be exercised
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.UserNamespacesSupport, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.ProcMountType: true,
|
||||
features.UserNamespacesSupport: true,
|
||||
})
|
||||
|
||||
// Start test API server.
|
||||
capabilities.ResetForTest()
|
||||
|
||||
@@ -44,8 +44,10 @@ import (
|
||||
|
||||
// regression test for https://issues.k8s.io/117258
|
||||
func TestAPIServerTransportMetrics(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllAlpha", true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllBeta", true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, feature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
"AllAlpha": true,
|
||||
"AllBeta": true,
|
||||
})
|
||||
|
||||
// reset default registry metrics
|
||||
legacyregistry.Reset()
|
||||
|
||||
@@ -623,8 +623,10 @@ resources:
|
||||
t.Run("encrypt all resources", func(t *testing.T) {
|
||||
_ = mock.NewBase64Plugin(t, "@encrypt-all-kms-provider.sock")
|
||||
// To ensure we are checking all REST resources
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllAlpha", true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, "AllBeta", true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
"AllAlpha": true,
|
||||
"AllBeta": true,
|
||||
})
|
||||
// Need to enable this explicitly as the feature is deprecated
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.KMSv1, true)
|
||||
|
||||
|
||||
@@ -337,9 +337,7 @@ func TestDRA(t *testing.T) {
|
||||
sort.Strings(entries)
|
||||
t.Logf("Config: %s", strings.Join(entries, ","))
|
||||
|
||||
for key, value := range tc.features {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, key, value)
|
||||
}
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, tc.features)
|
||||
|
||||
etcdOptions := framework.SharedEtcd()
|
||||
apiServerOptions := kubeapiservertesting.NewDefaultTestServerOptions()
|
||||
|
||||
@@ -88,8 +88,10 @@ func TestEtcdStoragePath(t *testing.T) {
|
||||
|
||||
func testEtcdStoragePathWithVersion(t *testing.T, v string) {
|
||||
if v == componentbaseversion.DefaultKubeBinaryVersion {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllAlpha", true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllBeta", true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, feature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
"AllAlpha": true,
|
||||
"AllBeta": true,
|
||||
})
|
||||
} else {
|
||||
// Only test for beta and GA APIs with emulated version.
|
||||
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, feature.DefaultFeatureGate, version.MustParse(v))
|
||||
|
||||
@@ -830,8 +830,10 @@ func TestSuccessPolicy(t *testing.T) {
|
||||
// TODO: this will be removed in 1.36
|
||||
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, feature.DefaultFeatureGate, utilversion.MustParse("1.32"))
|
||||
}
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.JobSuccessPolicy, tc.enableJobSuccessPolicy)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.JobBackoffLimitPerIndex, tc.enableBackoffLimitPerIndex)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, feature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.JobSuccessPolicy: tc.enableJobSuccessPolicy,
|
||||
features.JobBackoffLimitPerIndex: tc.enableBackoffLimitPerIndex,
|
||||
})
|
||||
|
||||
ctx, cancel := startJobControllerAndWaitForCaches(t, restConfig)
|
||||
t.Cleanup(cancel)
|
||||
@@ -1592,9 +1594,11 @@ func TestDelayTerminalPhaseCondition(t *testing.T) {
|
||||
// TODO: this will be removed in 1.37.
|
||||
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, feature.DefaultFeatureGate, utilversion.MustParse("1.33"))
|
||||
}
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.JobPodReplacementPolicy, test.enableJobPodReplacementPolicy)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.JobManagedBy, test.enableJobManagedBy)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.JobSuccessPolicy, test.enableJobSuccessPolicy)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, feature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.JobPodReplacementPolicy: test.enableJobPodReplacementPolicy,
|
||||
features.JobManagedBy: test.enableJobManagedBy,
|
||||
features.JobSuccessPolicy: test.enableJobSuccessPolicy,
|
||||
})
|
||||
|
||||
ctx, cancel := startJobControllerAndWaitForCaches(t, restConfig)
|
||||
t.Cleanup(cancel)
|
||||
|
||||
@@ -401,8 +401,10 @@ func TestPreemptionStarvation(t *testing.T) {
|
||||
for _, clearingNominatedNodeNameAfterBinding := range []bool{true, false} {
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption enabled: %v, ClearingNominatedNodeNameAfterBinding: %v)", test.name, asyncPreemptionEnabled, clearingNominatedNodeNameAfterBinding), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ClearingNominatedNodeNameAfterBinding, clearingNominatedNodeNameAfterBinding)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.ClearingNominatedNodeNameAfterBinding: clearingNominatedNodeNameAfterBinding,
|
||||
})
|
||||
|
||||
pendingPods := make([]*v1.Pod, test.numExpectedPending)
|
||||
numRunningPods := test.numExistingPod - test.numExpectedPending
|
||||
@@ -513,8 +515,10 @@ func TestPreemptionRaces(t *testing.T) {
|
||||
for _, clearingNominatedNodeNameAfterBinding := range []bool{true, false} {
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption enabled: %v, ClearingNominatedNodeNameAfterBinding: %v)", test.name, asyncPreemptionEnabled, clearingNominatedNodeNameAfterBinding), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ClearingNominatedNodeNameAfterBinding, clearingNominatedNodeNameAfterBinding)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.ClearingNominatedNodeNameAfterBinding: clearingNominatedNodeNameAfterBinding,
|
||||
})
|
||||
|
||||
if test.numRepetitions <= 0 {
|
||||
test.numRepetitions = 1
|
||||
@@ -799,8 +803,10 @@ func TestPDBInPreemption(t *testing.T) {
|
||||
for _, clearingNominatedNodeNameAfterBinding := range []bool{true, false} {
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption enabled: %v, ClearingNominatedNodeNameAfterBinding: %v)", test.name, asyncPreemptionEnabled, clearingNominatedNodeNameAfterBinding), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ClearingNominatedNodeNameAfterBinding, clearingNominatedNodeNameAfterBinding)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.ClearingNominatedNodeNameAfterBinding: clearingNominatedNodeNameAfterBinding,
|
||||
})
|
||||
|
||||
for i := 1; i <= test.nodeCnt; i++ {
|
||||
nodeName := fmt.Sprintf("node-%v", i)
|
||||
@@ -1184,8 +1190,10 @@ func TestReadWriteOncePodPreemption(t *testing.T) {
|
||||
for _, clearingNominatedNodeNameAfterBinding := range []bool{true, false} {
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption enabled: %v, ClearingNominatedNodeNameAfterBinding: %v)", test.name, asyncPreemptionEnabled, clearingNominatedNodeNameAfterBinding), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ClearingNominatedNodeNameAfterBinding, clearingNominatedNodeNameAfterBinding)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.ClearingNominatedNodeNameAfterBinding: clearingNominatedNodeNameAfterBinding,
|
||||
})
|
||||
|
||||
if err := test.init(); err != nil {
|
||||
t.Fatalf("Error while initializing test: %v", err)
|
||||
|
||||
@@ -235,9 +235,11 @@ func TestNominatedNode(t *testing.T) {
|
||||
for _, nominatedNodeNameForExpectationEnabled := range []bool{false} {
|
||||
for _, tt := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption: %v, Async API calls: %v, NNN for expectation: %v)", tt.name, asyncPreemptionEnabled, asyncAPICallsEnabled, nominatedNodeNameForExpectationEnabled), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncAPICalls, asyncAPICallsEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NominatedNodeNameForExpectation, nominatedNodeNameForExpectationEnabled)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.SchedulerAsyncAPICalls: asyncAPICallsEnabled,
|
||||
features.NominatedNodeNameForExpectation: nominatedNodeNameForExpectationEnabled,
|
||||
})
|
||||
|
||||
cfg := configtesting.V1ToInternalWithDefaults(t, configv1.KubeSchedulerConfiguration{
|
||||
Profiles: []configv1.KubeSchedulerProfile{{
|
||||
|
||||
@@ -408,9 +408,11 @@ func TestPreemption(t *testing.T) {
|
||||
for _, clearingNominatedNodeNameAfterBinding := range []bool{true, false} {
|
||||
for _, test := range tests {
|
||||
t.Run(fmt.Sprintf("%s (Async preemption enabled: %v, Async API calls enabled: %v, ClearingNominatedNodeNameAfterBinding: %v)", test.name, asyncPreemptionEnabled, asyncAPICallsEnabled, clearingNominatedNodeNameAfterBinding), func(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncPreemption, asyncPreemptionEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SchedulerAsyncAPICalls, asyncAPICallsEnabled)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ClearingNominatedNodeNameAfterBinding, clearingNominatedNodeNameAfterBinding)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.SchedulerAsyncPreemption: asyncPreemptionEnabled,
|
||||
features.SchedulerAsyncAPICalls: asyncAPICallsEnabled,
|
||||
features.ClearingNominatedNodeNameAfterBinding: clearingNominatedNodeNameAfterBinding,
|
||||
})
|
||||
|
||||
testCtx := testutils.InitTestSchedulerWithOptions(t,
|
||||
testutils.InitTestAPIServer(t, "preemption", nil),
|
||||
|
||||
@@ -39,8 +39,10 @@ import (
|
||||
)
|
||||
|
||||
func TestEndpointHandlers(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentStatusz, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.ComponentFlagz: true,
|
||||
features.ComponentStatusz: true,
|
||||
})
|
||||
|
||||
server, configStr, _, err := startTestAPIServer(t)
|
||||
if err != nil {
|
||||
|
||||
@@ -58,8 +58,10 @@ func TestSchedulerPerf(t *testing.T) {
|
||||
// - "ga-only": keep disabling optional features
|
||||
// - "default": don't change features
|
||||
if allocatorName == "stable" {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DRAAdminAccess, false)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DRAPrioritizedList, false)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.DRAAdminAccess: false,
|
||||
features.DRAPrioritizedList: false,
|
||||
})
|
||||
}
|
||||
|
||||
perf.RunIntegrationPerfScheduling(t, "performance-config.yaml")
|
||||
|
||||
@@ -559,8 +559,10 @@ func Test_TransitionsForPreferSameTrafficDistribution(t *testing.T) {
|
||||
// Setup components, like kube-apiserver and EndpointSlice controller.
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceTrafficDistribution, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.PreferSameTrafficDistribution, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.ServiceTrafficDistribution: true,
|
||||
features.PreferSameTrafficDistribution: true,
|
||||
})
|
||||
|
||||
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
|
||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, framework.DefaultTestServerFlags(), framework.SharedEtcd())
|
||||
|
||||
@@ -49,8 +49,10 @@ const (
|
||||
)
|
||||
|
||||
func TestStorageVersionGarbageCollection(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIServerIdentity, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StorageVersionAPI, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.APIServerIdentity: true,
|
||||
features.StorageVersionAPI: true,
|
||||
})
|
||||
flags := framework.DefaultTestServerFlags()
|
||||
flags = append(flags, fmt.Sprintf("--runtime-config=%s=true", apiserverinternalv1alpha1.SchemeGroupVersion))
|
||||
result := kubeapiservertesting.StartTestServerOrDie(t, nil, flags, framework.SharedEtcd())
|
||||
|
||||
@@ -168,8 +168,10 @@ func TestStorageVersionBootstrap(t *testing.T) {
|
||||
}
|
||||
}
|
||||
// Restart api server, enable the storage version API and the feature gates.
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StorageVersionAPI, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIServerIdentity, true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.StorageVersionAPI: true,
|
||||
features.APIServerIdentity: true,
|
||||
})
|
||||
server = kubeapiservertesting.StartTestServerOrDie(t,
|
||||
&kubeapiservertesting.TestServerInstanceOptions{
|
||||
StorageVersionWrapFunc: wrapperFunc,
|
||||
|
||||
@@ -52,8 +52,10 @@ import (
|
||||
// 7. Perform another Storage Version Migration for secrets
|
||||
// 8. Verify that the resource version of the secret is not updated. i.e. it was a no-op update
|
||||
func TestStorageVersionMigration(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StorageVersionMigrator, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, featuregate.Feature(clientgofeaturegate.InformerResourceVersion), true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.StorageVersionMigrator: true,
|
||||
featuregate.Feature(clientgofeaturegate.InformerResourceVersion): true,
|
||||
})
|
||||
|
||||
// this makes the test super responsive. It's set to a default of 1 minute.
|
||||
encryptionconfigcontroller.EncryptionConfigFileChangePollDuration = time.Second
|
||||
@@ -152,8 +154,10 @@ func TestStorageVersionMigration(t *testing.T) {
|
||||
// 10. Verify RV and Generations of CRs
|
||||
// 11. Verify the list of CRs at v2 works
|
||||
func TestStorageVersionMigrationWithCRD(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StorageVersionMigrator, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, featuregate.Feature(clientgofeaturegate.InformerResourceVersion), true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.StorageVersionMigrator: true,
|
||||
featuregate.Feature(clientgofeaturegate.InformerResourceVersion): true,
|
||||
})
|
||||
// decode errors are expected when using conversation webhooks
|
||||
etcd3watcher.TestOnlySetFatalOnDecodeError(false)
|
||||
t.Cleanup(func() { etcd3watcher.TestOnlySetFatalOnDecodeError(true) })
|
||||
@@ -300,8 +304,10 @@ func TestStorageVersionMigrationWithCRD(t *testing.T) {
|
||||
// It asserts that all migrations are successful and that none of the static instances
|
||||
// were changed after they were initially created (as the migrations must be a no-op).
|
||||
func TestStorageVersionMigrationDuringChaos(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StorageVersionMigrator, true)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, featuregate.Feature(clientgofeaturegate.InformerResourceVersion), true)
|
||||
featuregatetesting.SetFeatureGatesDuringTest(t, utilfeature.DefaultFeatureGate, featuregatetesting.FeatureOverrides{
|
||||
features.StorageVersionMigrator: true,
|
||||
featuregate.Feature(clientgofeaturegate.InformerResourceVersion): true,
|
||||
})
|
||||
|
||||
ctx := ktesting.Init(t)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user