@@ -18,6 +18,7 @@ package apiserver
1818
1919import (
2020 "fmt"
21+ "github.com/alibaba/higress/api-server/pkg/codec"
2122 "github.com/alibaba/higress/api-server/pkg/options"
2223 "github.com/alibaba/higress/api-server/pkg/registry"
2324 "github.com/alibaba/higress/api-server/pkg/storage"
@@ -167,7 +168,7 @@ func (c completedConfig) New() (*HigressServer, error) {
167168
168169 storageCreateFunc := func (
169170 groupResource schema.GroupResource ,
170- codec runtime.Codec ,
171+ runtimeCodec runtime.Codec ,
171172 isNamespaced bool ,
172173 singularName string ,
173174 newFunc func () runtime.Object ,
@@ -177,13 +178,14 @@ func (c completedConfig) New() (*HigressServer, error) {
177178 ) (rest.Storage , error ) {
178179 switch storageMode {
179180 case options .Storage_File :
180- return registry .NewFileREST (groupResource , codec , storageOptions .FileOptions .RootDir , extension , isNamespaced , singularName , newFunc , newListFunc , attrFunc )
181+ runtimeCodec = codec .NewFlatAwareCodec (groupResource , runtimeCodec )
182+ return registry .NewFileREST (groupResource , runtimeCodec , storageOptions .FileOptions .RootDir , extension , isNamespaced , singularName , newFunc , newListFunc , attrFunc )
181183 case options .Storage_Nacos :
182184 var encryptionKey []byte = nil
183185 if sensitive {
184186 encryptionKey = storageOptions .NacosOptions .EncryptionKey
185187 }
186- return registry .NewNacosREST (groupResource , codec , nacosConfigClient , isNamespaced , singularName , newFunc , newListFunc , attrFunc , encryptionKey ), nil
188+ return registry .NewNacosREST (groupResource , runtimeCodec , nacosConfigClient , isNamespaced , singularName , newFunc , newListFunc , attrFunc , encryptionKey ), nil
187189 default :
188190 panic (fmt .Errorf ("invalid storage mode: %s" , storageMode ))
189191 }
@@ -326,19 +328,20 @@ func appendStorage(storages map[string]rest.Storage,
326328 sensitive bool ,
327329) {
328330 groupResource := groupVersion .WithResource (pluralName ).GroupResource ()
329- codec , _ , err := genericserverstorage .NewStorageCodec (genericserverstorage.StorageCodecConfig {
331+ storageCodec , _ , err := genericserverstorage .NewStorageCodec (genericserverstorage.StorageCodecConfig {
330332 StorageMediaType : contentType ,
331333 StorageSerializer : serializer .NewCodecFactory (Scheme ),
332334 StorageVersion : Scheme .PrioritizedVersionsForGroup (groupResource .Group )[0 ],
333335 MemoryVersion : Scheme .PrioritizedVersionsForGroup (groupResource .Group )[0 ],
334336 Config : storagebackend.Config {}, // useless fields
335337 })
336338 if err != nil {
337- err = fmt .Errorf ("unable to create REST storage for a resource due to %v, will die" , err )
339+ err = fmt .Errorf ("unable to create storage codec for a resource due to %v, will die" , err )
338340 panic (err )
339341 }
340- storage , err := storageCreatorFunc (groupResource , codec , isNamespaced , singularName , newFunc , newListFunc , attrFunc , sensitive )
342+ storage , err := storageCreatorFunc (groupResource , storageCodec , isNamespaced , singularName , newFunc , newListFunc , attrFunc , sensitive )
341343 if err != nil {
344+ err = fmt .Errorf ("unable to create REST storage for a resource due to %v, will die" , err )
342345 panic (err )
343346 }
344347 storages [pluralName ] = storage
0 commit comments