Skip to content

Commit 46eb34c

Browse files
authored
fix(apiserver): register OpenAPI v2 spec for aggregation (#1803)
* fix(apiserver): register OpenAPI v2 spec for aggregation Signed-off-by: Himanshu Singh <himansh.singh3@gmail.com> * fix(apiserver): initialize OpenAPI specs before applyTo and enforce v3 version This commit addresses OpenAPI spec generation issues by ensuring both V2 and V3 configurations are instantiated before calling 'recommendedOptions.ApplyTo(serverConfig)'. This allows the authentication wiring to properly decorate the OpenAPI security definitions. Additionally, it explicitly sets the V3 spec 'Info.Version' to 'v1alpha1' to satisfy strict OpenAPI schema requirements. Signed-off-by: Himanshu Singh <himansh.singh3@gmail.com> --------- Signed-off-by: Himanshu Singh <himansh.singh3@gmail.com>
1 parent 3d7a222 commit 46eb34c

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

pkg/apiserver/apiserver.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,14 +231,26 @@ func newServerConfig(aggClient aggregatorclient.Interface, opts NewAPIServerOpts
231231
}
232232

233233
serverConfig := genericapiserver.NewRecommendedConfig(Codecs)
234-
if err := recommendedOptions.ApplyTo(serverConfig); err != nil {
235-
return nil, err
236-
}
237234

238235
serverConfig.OpenAPIV3Config = genericapiserver.DefaultOpenAPIV3Config(
239236
openapi.GetOpenAPIDefinitions,
240237
genericopenapi.NewDefinitionNamer(Scheme))
241238
serverConfig.OpenAPIV3Config.Info.Title = "Kapp-controller"
239+
serverConfig.OpenAPIV3Config.Info.Version = "v1alpha1"
240+
241+
// Register OpenAPI v2 configuration to satisfy the Kubernetes Aggregation Controller.
242+
// In K8s 1.30+, the aggregator syncs both v2 and v3 specs; providing v2 prevents
243+
// "resource not found" errors in the kube-apiserver logs (Fixes #1703).
244+
serverConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(
245+
openapi.GetOpenAPIDefinitions,
246+
genericopenapi.NewDefinitionNamer(Scheme))
247+
serverConfig.OpenAPIConfig.Info.Title = "Kapp-controller"
248+
serverConfig.OpenAPIConfig.Info.Version = "v1alpha1"
249+
250+
if err := recommendedOptions.ApplyTo(serverConfig); err != nil {
251+
return nil, err
252+
}
253+
242254
return serverConfig, nil
243255
}
244256

0 commit comments

Comments
 (0)