Fallback query param verifier
Kubernetes-commit: f5865043edb807f8c5efff286fe0097a382fcaf0
This commit is contained in:
parent
ea55df59db
commit
ea96fe7c15
|
@ -30,6 +30,7 @@ import (
|
||||||
"k8s.io/client-go/discovery"
|
"k8s.io/client-go/discovery"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
"k8s.io/client-go/openapi/cached"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
"k8s.io/kubectl/pkg/util/openapi"
|
"k8s.io/kubectl/pkg/util/openapi"
|
||||||
|
@ -167,8 +168,18 @@ func (f *factoryImpl) Validator(validationDirective string) (validation.Schema,
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// Create the FieldValidationVerifier for use in the ParamVerifyingSchema.
|
// Create the FieldValidationVerifier for use in the ParamVerifyingSchema.
|
||||||
verifier := resource.NewQueryParamVerifier(dynamicClient, f.openAPIGetter(), resource.QueryParamFieldValidation)
|
discoveryClient, err := f.ToDiscoveryClient()
|
||||||
return validation.NewParamVerifyingSchema(schema, verifier, string(validationDirective)), nil
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
// Memory-cache the OpenAPI V3 responses. The disk cache behavior is determined by
|
||||||
|
// the discovery client.
|
||||||
|
oapiV3Client := cached.NewClient(discoveryClient.OpenAPIV3())
|
||||||
|
queryParam := resource.QueryParamFieldValidation
|
||||||
|
primary := resource.NewQueryParamVerifierV3(dynamicClient, oapiV3Client, queryParam)
|
||||||
|
secondary := resource.NewQueryParamVerifier(dynamicClient, f.openAPIGetter(), queryParam)
|
||||||
|
fallback := resource.NewFallbackQueryParamVerifier(primary, secondary)
|
||||||
|
return validation.NewParamVerifyingSchema(schema, fallback, string(validationDirective)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenAPISchema returns metadata and structural information about
|
// OpenAPISchema returns metadata and structural information about
|
||||||
|
|
Loading…
Reference in New Issue