mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Add version mapping in ComponentGlobalsRegistry.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
This commit is contained in:
		@@ -226,6 +226,18 @@ func TestAPIServiceWaitOnStart(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
	t.Run("WithoutWardleFeatureGateAtV1.2", func(t *testing.T) {
 | 
			
		||||
		testAggregatedAPIServer(t, false, "1.2")
 | 
			
		||||
	})
 | 
			
		||||
	t.Run("WithoutWardleFeatureGateAtV1.1", func(t *testing.T) {
 | 
			
		||||
		testAggregatedAPIServer(t, false, "1.1")
 | 
			
		||||
	})
 | 
			
		||||
	t.Run("WithWardleFeatureGateAtV1.1", func(t *testing.T) {
 | 
			
		||||
		testAggregatedAPIServer(t, true, "1.1")
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func testAggregatedAPIServer(t *testing.T, enableWardleFeatureGate bool, emulationVersion string) {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
 | 
			
		||||
	t.Cleanup(cancel)
 | 
			
		||||
 | 
			
		||||
@@ -240,7 +252,7 @@ func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
	// endpoints cannot have loopback IPs so we need to override the resolver itself
 | 
			
		||||
	t.Cleanup(app.SetServiceResolverForTests(staticURLServiceResolver(fmt.Sprintf("https://127.0.0.1:%d", wardlePort))))
 | 
			
		||||
 | 
			
		||||
	testServer := kastesting.StartTestServerOrDie(t, &kastesting.TestServerInstanceOptions{EnableCertAuth: true}, nil, framework.SharedEtcd())
 | 
			
		||||
	testServer := kastesting.StartTestServerOrDie(t, &kastesting.TestServerInstanceOptions{EnableCertAuth: true, BinaryVersion: "1.32"}, nil, framework.SharedEtcd())
 | 
			
		||||
	defer testServer.TearDownFn()
 | 
			
		||||
	kubeClientConfig := rest.CopyConfig(testServer.ClientConfig)
 | 
			
		||||
	// force json because everything speaks it
 | 
			
		||||
@@ -286,15 +298,18 @@ func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
		o.RecommendedOptions.SecureServing.Listener = listener
 | 
			
		||||
		o.RecommendedOptions.SecureServing.BindAddress = netutils.ParseIPSloppy("127.0.0.1")
 | 
			
		||||
		wardleCmd := sampleserver.NewCommandStartWardleServer(ctx, o)
 | 
			
		||||
		wardleCmd.SetArgs([]string{
 | 
			
		||||
		args := []string{
 | 
			
		||||
			"--authentication-kubeconfig", wardleToKASKubeConfigFile,
 | 
			
		||||
			"--authorization-kubeconfig", wardleToKASKubeConfigFile,
 | 
			
		||||
			"--etcd-servers", framework.GetEtcdURL(),
 | 
			
		||||
			"--cert-dir", wardleCertDir,
 | 
			
		||||
			"--kubeconfig", wardleToKASKubeConfigFile,
 | 
			
		||||
			"--emulated-version", "wardle=1.1",
 | 
			
		||||
			"--feature-gates", "wardle:BanFlunder=true",
 | 
			
		||||
		})
 | 
			
		||||
			"--emulated-version", fmt.Sprintf("wardle=%s", emulationVersion),
 | 
			
		||||
		}
 | 
			
		||||
		if enableWardleFeatureGate {
 | 
			
		||||
			args = append(args, "--feature-gates", "wardle:BanFlunder=true")
 | 
			
		||||
		}
 | 
			
		||||
		wardleCmd.SetArgs(args)
 | 
			
		||||
		if err := wardleCmd.Execute(); err != nil {
 | 
			
		||||
			t.Error(err)
 | 
			
		||||
		}
 | 
			
		||||
@@ -393,6 +408,8 @@ func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	// clean up data after test is done
 | 
			
		||||
	defer wardleClient.Fischers().Delete(ctx, "panda", metav1.DeleteOptions{})
 | 
			
		||||
	fischersList, err := wardleClient.Fischers().List(ctx, metav1.ListOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
@@ -409,8 +426,16 @@ func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
			Name: "badname",
 | 
			
		||||
		},
 | 
			
		||||
	}, metav1.CreateOptions{})
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		t.Fatal("expect flunder:badname not admitted")
 | 
			
		||||
	banFlunder := enableWardleFeatureGate || emulationVersion == "1.2"
 | 
			
		||||
	if banFlunder && err == nil {
 | 
			
		||||
		t.Fatal("expect flunder:badname not admitted when wardle feature gates are specified")
 | 
			
		||||
	}
 | 
			
		||||
	if !banFlunder {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal("expect flunder:badname admitted when wardle feature gates are not specified")
 | 
			
		||||
		} else {
 | 
			
		||||
			defer wardleClient.Flunders(metav1.NamespaceSystem).Delete(ctx, "badname", metav1.DeleteOptions{})
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	_, err = wardleClient.Flunders(metav1.NamespaceSystem).Create(ctx, &wardlev1alpha1.Flunder{
 | 
			
		||||
		ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
@@ -420,12 +445,17 @@ func TestAggregatedAPIServer(t *testing.T) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	defer wardleClient.Flunders(metav1.NamespaceSystem).Delete(ctx, "panda", metav1.DeleteOptions{})
 | 
			
		||||
	flunderList, err := wardleClient.Flunders(metav1.NamespaceSystem).List(ctx, metav1.ListOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if len(flunderList.Items) != 1 {
 | 
			
		||||
		t.Errorf("expected one flunder: %#v", flunderList.Items)
 | 
			
		||||
	expectedFlunderCount := 2
 | 
			
		||||
	if banFlunder {
 | 
			
		||||
		expectedFlunderCount = 1
 | 
			
		||||
	}
 | 
			
		||||
	if len(flunderList.Items) != expectedFlunderCount {
 | 
			
		||||
		t.Errorf("expected %d flunder: %#v", expectedFlunderCount, flunderList.Items)
 | 
			
		||||
	}
 | 
			
		||||
	if len(flunderList.ResourceVersion) == 0 {
 | 
			
		||||
		t.Error("expected non-empty resource version for flunder list")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user