Jelajahi Sumber

fix: send store ref kind from provider controllers

Signed-off-by: Moritz Johner <beller.moritz@googlemail.com>
Moritz Johner 2 bulan lalu
induk
melakukan
c9fd433c55

+ 5 - 4
pkg/controllers/clusterprovider/controller.go

@@ -127,10 +127,11 @@ func (r *Reconciler) validateStoreAndGetCapabilities(ctx context.Context, store
 
 	// Convert ProviderReference to protobuf format
 	providerRef := &pb.ProviderReference{
-		ApiVersion: store.Spec.Config.ProviderRef.APIVersion,
-		Kind:       store.Spec.Config.ProviderRef.Kind,
-		Name:       store.Spec.Config.ProviderRef.Name,
-		Namespace:  store.Spec.Config.ProviderRef.Namespace,
+		ApiVersion:   store.Spec.Config.ProviderRef.APIVersion,
+		Kind:         store.Spec.Config.ProviderRef.Kind,
+		Name:         store.Spec.Config.ProviderRef.Name,
+		Namespace:    store.Spec.Config.ProviderRef.Namespace,
+		StoreRefKind: esv1.ClusterProviderKindStr,
 	}
 
 	// For ClusterProvider validation, we need to be more lenient since:

+ 5 - 2
pkg/controllers/clusterprovider/controller_test.go

@@ -118,7 +118,7 @@ func TestValidateStoreAndGetCapabilitiesUsesCapabilitiesOnly(t *testing.T) {
 	if server.validateRequest != nil {
 		t.Fatalf("expected Validate not to be called, got %#v", server.validateRequest)
 	}
-	assertClusterProviderReference(t, server.capabilitiesRequest.ProviderRef, store.Spec.Config.ProviderRef)
+	assertClusterProviderReference(t, server.capabilitiesRequest.ProviderRef, store.Spec.Config.ProviderRef, esv1.ClusterProviderKindStr)
 	if server.capabilitiesRequest.SourceNamespace != "" {
 		t.Fatalf("expected empty source namespace, got %q", server.capabilitiesRequest.SourceNamespace)
 	}
@@ -509,7 +509,7 @@ func newClusterProviderGRPCServer(t *testing.T) (*recordingClusterProviderGRPCSe
 	}
 }
 
-func assertClusterProviderReference(t *testing.T, got *pb.ProviderReference, want esv1.ProviderReference) {
+func assertClusterProviderReference(t *testing.T, got *pb.ProviderReference, want esv1.ProviderReference, wantStoreRefKind string) {
 	t.Helper()
 
 	if got == nil {
@@ -518,6 +518,9 @@ func assertClusterProviderReference(t *testing.T, got *pb.ProviderReference, wan
 	if got.ApiVersion != want.APIVersion || got.Kind != want.Kind || got.Name != want.Name || got.Namespace != want.Namespace {
 		t.Fatalf("unexpected provider ref: got=%#v want=%#v", got, want)
 	}
+	if got.StoreRefKind != wantStoreRefKind {
+		t.Fatalf("unexpected store ref kind: got=%q want=%q", got.StoreRefKind, wantStoreRefKind)
+	}
 }
 
 func newClusterProviderTLSArtifacts(t *testing.T, host string) (serverCertPEM, serverKeyPEM, clientCertPEM, clientKeyPEM, caCertPEM []byte) {

+ 5 - 4
pkg/controllers/provider/controller.go

@@ -127,10 +127,11 @@ func (r *Reconciler) validateStoreAndGetCapabilities(ctx context.Context, store
 
 	// Convert ProviderReference to protobuf format
 	providerRef := &pb.ProviderReference{
-		ApiVersion: store.Spec.Config.ProviderRef.APIVersion,
-		Kind:       store.Spec.Config.ProviderRef.Kind,
-		Name:       store.Spec.Config.ProviderRef.Name,
-		Namespace:  store.Spec.Config.ProviderRef.Namespace,
+		ApiVersion:   store.Spec.Config.ProviderRef.APIVersion,
+		Kind:         store.Spec.Config.ProviderRef.Kind,
+		Name:         store.Spec.Config.ProviderRef.Name,
+		Namespace:    store.Spec.Config.ProviderRef.Namespace,
+		StoreRefKind: esv1.ProviderKindStr,
 	}
 
 	// Validate the provider configuration

+ 6 - 3
pkg/controllers/provider/controller_test.go

@@ -121,11 +121,11 @@ func TestValidateStoreAndGetCapabilitiesSendsProviderReferenceAndNamespace(t *te
 	if caps != esv1.ProviderReadWrite {
 		t.Fatalf("expected ProviderReadWrite, got %q", caps)
 	}
-	assertProviderReference(t, server.validateRequest.ProviderRef, store.Spec.Config.ProviderRef)
+	assertProviderReference(t, server.validateRequest.ProviderRef, store.Spec.Config.ProviderRef, esv1.ProviderKindStr)
 	if server.validateRequest.SourceNamespace != "tenant-a" {
 		t.Fatalf("unexpected validate source namespace: %q", server.validateRequest.SourceNamespace)
 	}
-	assertProviderReference(t, server.capabilitiesRequest.ProviderRef, store.Spec.Config.ProviderRef)
+	assertProviderReference(t, server.capabilitiesRequest.ProviderRef, store.Spec.Config.ProviderRef, esv1.ProviderKindStr)
 	if server.capabilitiesRequest.SourceNamespace != "tenant-a" {
 		t.Fatalf("unexpected capabilities source namespace: %q", server.capabilitiesRequest.SourceNamespace)
 	}
@@ -493,7 +493,7 @@ func newProviderGRPCServer(t *testing.T) (*recordingProviderGRPCServer, string,
 	}
 }
 
-func assertProviderReference(t *testing.T, got *pb.ProviderReference, want esv1.ProviderReference) {
+func assertProviderReference(t *testing.T, got *pb.ProviderReference, want esv1.ProviderReference, wantStoreRefKind string) {
 	t.Helper()
 
 	if got == nil {
@@ -502,6 +502,9 @@ func assertProviderReference(t *testing.T, got *pb.ProviderReference, want esv1.
 	if got.ApiVersion != want.APIVersion || got.Kind != want.Kind || got.Name != want.Name || got.Namespace != want.Namespace {
 		t.Fatalf("unexpected provider ref: got=%#v want=%#v", got, want)
 	}
+	if got.StoreRefKind != wantStoreRefKind {
+		t.Fatalf("unexpected store ref kind: got=%q want=%q", got.StoreRefKind, wantStoreRefKind)
+	}
 }
 
 func newProviderTLSArtifacts(t *testing.T, host string) (serverCertPEM, serverKeyPEM, clientCertPEM, clientKeyPEM, caCertPEM []byte) {