kube-apiserver: print supported media types on failure to find a serializer

Kubernetes-commit: 56b46e13c21b483ebc70bd6e151eea0a45b399e8
This commit is contained in:
SataQiu 2022-11-05 23:03:23 +08:00 committed by Kubernetes Publisher
parent 8dcc6deff0
commit b683f5d16a
2 changed files with 9 additions and 3 deletions

View File

@ -133,7 +133,8 @@ func (s *EtcdOptions) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&s.DefaultStorageMediaType, "storage-media-type", s.DefaultStorageMediaType, ""+ fs.StringVar(&s.DefaultStorageMediaType, "storage-media-type", s.DefaultStorageMediaType, ""+
"The media type to use to store objects in storage. "+ "The media type to use to store objects in storage. "+
"Some resources or storage backends may only support a specific media type and will ignore this setting.") "Some resources or storage backends may only support a specific media type and will ignore this setting. "+
"Supported media types: [application/json, application/yaml, application/vnd.kubernetes.protobuf]")
fs.IntVar(&s.DeleteCollectionWorkers, "delete-collection-workers", s.DeleteCollectionWorkers, fs.IntVar(&s.DeleteCollectionWorkers, "delete-collection-workers", s.DeleteCollectionWorkers,
"Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup.") "Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup.")

View File

@ -46,9 +46,14 @@ func NewStorageCodec(opts StorageCodecConfig) (runtime.Codec, runtime.GroupVersi
return nil, nil, fmt.Errorf("%q is not a valid mime-type", opts.StorageMediaType) return nil, nil, fmt.Errorf("%q is not a valid mime-type", opts.StorageMediaType)
} }
serializer, ok := runtime.SerializerInfoForMediaType(opts.StorageSerializer.SupportedMediaTypes(), mediaType) supportedMediaTypes := opts.StorageSerializer.SupportedMediaTypes()
serializer, ok := runtime.SerializerInfoForMediaType(supportedMediaTypes, mediaType)
if !ok { if !ok {
return nil, nil, fmt.Errorf("unable to find serializer for %q", mediaType) supportedMediaTypeList := make([]string, len(supportedMediaTypes))
for i, mediaType := range supportedMediaTypes {
supportedMediaTypeList[i] = mediaType.MediaType
}
return nil, nil, fmt.Errorf("unable to find serializer for %q, supported media types: %v", mediaType, supportedMediaTypeList)
} }
s := serializer.Serializer s := serializer.Serializer