diff --git a/test/integration/storageversionmigrator/util.go b/test/integration/storageversionmigrator/util.go index 7b78e673209..49e765a849a 100644 --- a/test/integration/storageversionmigrator/util.go +++ b/test/integration/storageversionmigrator/util.go @@ -389,7 +389,7 @@ func (svm *svmTest) createSecret(ctx context.Context, t *testing.T, name, namesp func (svm *svmTest) getRawSecretFromETCD(t *testing.T, name, namespace string) ([]byte, error) { t.Helper() - secretETCDPath := svm.getETCDPathForResource(t, svm.storageConfig.Prefix, "", "secrets", name, namespace) + secretETCDPath := getETCDPathForResource(t, svm.storageConfig.Prefix, "", "secrets", name, namespace) etcdResponse, err := svm.readRawRecordFromETCD(t, secretETCDPath) if err != nil { return nil, fmt.Errorf("failed to read %s from etcd: %w", secretETCDPath, err) @@ -397,7 +397,7 @@ func (svm *svmTest) getRawSecretFromETCD(t *testing.T, name, namespace string) ( return etcdResponse.Kvs[0].Value, nil } -func (svm *svmTest) getETCDPathForResource(t *testing.T, storagePrefix, group, resource, name, namespaceName string) string { +func getETCDPathForResource(t *testing.T, storagePrefix, group, resource, name, namespaceName string) string { t.Helper() groupResource := resource if group != "" { @@ -433,7 +433,7 @@ func (svm *svmTest) readRawRecordFromETCD(t *testing.T, path string) (*clientv3. func (svm *svmTest) getRawCRFromETCD(t *testing.T, name, namespace, crdGroup, crdName string) ([]byte, error) { t.Helper() - crdETCDPath := svm.getETCDPathForResource(t, svm.storageConfig.Prefix, crdGroup, crdName, name, namespace) + crdETCDPath := getETCDPathForResource(t, svm.storageConfig.Prefix, crdGroup, crdName, name, namespace) etcdResponse, err := svm.readRawRecordFromETCD(t, crdETCDPath) if err != nil { t.Fatalf("failed to read %s from etcd: %v", crdETCDPath, err) @@ -807,29 +807,30 @@ func (svm *svmTest) waitForCRDUpdate( return false, fmt.Errorf("failed to get server groups and resources: %w", err) } for _, api := range apiGroups { - if api.Name == crdGroup { - var servingVersions []string - for _, apiVersion := range api.Versions { - servingVersions = append(servingVersions, apiVersion.Version) - } - sort.Strings(servingVersions) + if api.Name != crdGroup { + continue + } + var servingVersions []string + for _, apiVersion := range api.Versions { + servingVersions = append(servingVersions, apiVersion.Version) + } + sort.Strings(servingVersions) - // Check if the serving versions are as expected - if reflect.DeepEqual(expectedServingVersions, servingVersions) { - expectedHash := endpointsdiscovery.StorageVersionHash(crdGroup, expectedStorageVersion, crdKind) - resourceList, err := svm.discoveryClient.ServerResourcesForGroupVersion(crdGroup + "/" + api.PreferredVersion.Version) - if err != nil { - return false, fmt.Errorf("failed to get server resources for group version: %w", err) - } + // Check if the serving versions are as expected + if !reflect.DeepEqual(expectedServingVersions, servingVersions) { + continue + } - // Check if the storage version is as expected - for _, resource := range resourceList.APIResources { - if resource.Kind == crdKind { - if resource.StorageVersionHash == expectedHash { - return true, nil - } - } - } + expectedHash := endpointsdiscovery.StorageVersionHash(crdGroup, expectedStorageVersion, crdKind) + resourceList, err := svm.discoveryClient.ServerResourcesForGroupVersion(crdGroup + "/" + api.PreferredVersion.Version) + if err != nil { + return false, fmt.Errorf("failed to get server resources for group version: %w", err) + } + + // Check if the storage version is as expected + for _, resource := range resourceList.APIResources { + if resource.Kind == crdKind && resource.StorageVersionHash == expectedHash { + return true, nil } } }