Merge pull request #131755 from jpbetz/openapi-type-name-gen

Allow OpenAPI model package names to be declared by APIs

Kubernetes-commit: 69e637f24c23764973e30491afab202c0d083399
This commit is contained in:
Kubernetes Publisher 2025-09-11 12:26:08 -07:00
commit 8f715d8530
6 changed files with 113 additions and 29 deletions

20
go.mod
View file

@ -30,15 +30,15 @@ require (
golang.org/x/sys v0.35.0
golang.org/x/text v0.28.0
gopkg.in/evanphx/json-patch.v4 v4.13.0
k8s.io/api v0.0.0-20250910154843-1fa0d26cdf76
k8s.io/apimachinery v0.0.0-20250910225611-100e5eee9b94
k8s.io/cli-runtime v0.0.0-20250910163532-99cfbcf4fd65
k8s.io/client-go v0.0.0-20250910225604-81eaeec477e6
k8s.io/component-base v0.0.0-20250910160652-c223836092f2
k8s.io/component-helpers v0.0.0-20250910160901-2e4efeae85b2
k8s.io/api v0.0.0-20250911194840-ed58f06b9673
k8s.io/apimachinery v0.0.0-20250911194554-abb5535e33dd
k8s.io/cli-runtime v0.0.0-20250911203055-a6027708804a
k8s.io/client-go v0.0.0-20250911195247-f8bdeaf0f324
k8s.io/component-base v0.0.0-20250911200454-bc57539132eb
k8s.io/component-helpers v0.0.0-20250911200634-ef6688a1204b
k8s.io/klog/v2 v2.130.1
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b
k8s.io/metrics v0.0.0-20250910163341-6697702d9a24
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
k8s.io/metrics v0.0.0-20250911202906-07d03813f941
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1
@ -86,11 +86,9 @@ require (
golang.org/x/sync v0.16.0 // indirect
golang.org/x/term v0.34.0 // indirect
golang.org/x/time v0.9.0 // indirect
golang.org/x/tools v0.35.0 // indirect
golang.org/x/tools v0.36.0 // indirect
google.golang.org/protobuf v1.36.8 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
sigs.k8s.io/kustomize/api v0.20.1 // indirect
)
replace k8s.io/code-generator => k8s.io/code-generator v0.0.0-20250911000617-8ba2fe21578c

36
go.sum
View file

@ -179,8 +179,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@ -197,24 +197,24 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.0.0-20250910154843-1fa0d26cdf76 h1:LClGpQ84ltOdzxjziPEYm2NytS8wlLsNWuRjFZPqs04=
k8s.io/api v0.0.0-20250910154843-1fa0d26cdf76/go.mod h1:PJ8lBYC0ACxXtw8039EoZbQpH1jObX2uJcQq+AtMFbM=
k8s.io/apimachinery v0.0.0-20250910225611-100e5eee9b94 h1:0/+PV1z/hEqYcNLwL61R7uPoDqqqA521Yt61zjI2eBk=
k8s.io/apimachinery v0.0.0-20250910225611-100e5eee9b94/go.mod h1:e4PlUo2z96rImpZLr3O4JWowzW30ALyjsbqt07xJKSM=
k8s.io/cli-runtime v0.0.0-20250910163532-99cfbcf4fd65 h1:FBmZq4y2WwDO6IpetWBPPtYM5f6h3hQ8QkopQHXr4tg=
k8s.io/cli-runtime v0.0.0-20250910163532-99cfbcf4fd65/go.mod h1:ftwjPiiX1V4Y8F/oYu17xDl993jnhRtwaUbwFagVLKs=
k8s.io/client-go v0.0.0-20250910225604-81eaeec477e6 h1:uWrq2S/NM09NHrVWWKqcyHtatehrJVSHYvs5SmgFG6o=
k8s.io/client-go v0.0.0-20250910225604-81eaeec477e6/go.mod h1:R92FsjN8sRsbhdBKhMtjjDS326YQW/kMnpn+bGC0dKA=
k8s.io/component-base v0.0.0-20250910160652-c223836092f2 h1:eOZPHLeVJhrlHp1wHcRlXFUg4op5DlC4adsyewQ5/Y4=
k8s.io/component-base v0.0.0-20250910160652-c223836092f2/go.mod h1:+w9flDqeJ07iA7LUTSALmJ+axwia3OGAki7dR5Lbnq0=
k8s.io/component-helpers v0.0.0-20250910160901-2e4efeae85b2 h1:RKOBP/vTbA7/wnEeciICv0eLoS7vOn4y4+1Vf2Ca3bU=
k8s.io/component-helpers v0.0.0-20250910160901-2e4efeae85b2/go.mod h1:2ZyfzkbTJ+O5eIAAWsqfqLlW1b3Y4Cd96AYXCI3ZZFI=
k8s.io/api v0.0.0-20250911194840-ed58f06b9673 h1:61bofeKdfkmmlCTvkNBpzxYBTOKe0J/TXTzdv2Fpd6A=
k8s.io/api v0.0.0-20250911194840-ed58f06b9673/go.mod h1:SwdWP5+fjQNLUI2VNv/DrBrOR3xBHzhajBXTq+4e6uw=
k8s.io/apimachinery v0.0.0-20250911194554-abb5535e33dd h1:SsYswLjviBMqP6wslmd/pU2PJMM3nw0cpk5jEgdBUhQ=
k8s.io/apimachinery v0.0.0-20250911194554-abb5535e33dd/go.mod h1:FZDXhJB08lGXi5aQXfJZgKBV4IkaS3B21+gJb1Q/Sj4=
k8s.io/cli-runtime v0.0.0-20250911203055-a6027708804a h1:mwtdEmUIbNoeVzjRddCBOswE9bdh7cp5paM7JY55C/k=
k8s.io/cli-runtime v0.0.0-20250911203055-a6027708804a/go.mod h1:HFxci/IdeIifwl9PzUqhTJYUvHxUdp4X5rF5AvPs8ek=
k8s.io/client-go v0.0.0-20250911195247-f8bdeaf0f324 h1:J81fg1FedhcxHMpljEUck8R+L+eoy7uFglNybNKODJ8=
k8s.io/client-go v0.0.0-20250911195247-f8bdeaf0f324/go.mod h1:0OdPs3mUW0REVv3dIDsHoz1IHCQ0uX6Aast5lx2Xeos=
k8s.io/component-base v0.0.0-20250911200454-bc57539132eb h1:y2C+nrNTcfaPCIB5tO2/H31R2i1HtOTm2AMBv78zFOw=
k8s.io/component-base v0.0.0-20250911200454-bc57539132eb/go.mod h1:KWVI6Mq/jdH71mAo1GeSgWxNi0RA9HURogKPhtyNSyk=
k8s.io/component-helpers v0.0.0-20250911200634-ef6688a1204b h1:z+pYsK6EX+j3jdG/kwkOMHp2p7EvqRPP6xqkNP4xAbc=
k8s.io/component-helpers v0.0.0-20250911200634-ef6688a1204b/go.mod h1:11DZ6G5fs/ym/tfq+XnPEkGiEjWSTjv78hgtqa0Ug3o=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
k8s.io/metrics v0.0.0-20250910163341-6697702d9a24 h1:m5aemf03OoE0ANH/zuU8VeGatfcvALrtWN6MLT2Da9c=
k8s.io/metrics v0.0.0-20250910163341-6697702d9a24/go.mod h1:kb5Cv2Zw1xJXbmH+0M8PQzfvBUWfHv7FFdsn1jTEYM0=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
k8s.io/metrics v0.0.0-20250911202906-07d03813f941 h1:SW5suSPnwEP+mRoJg4HZA/NHnqmP725h9PngVNWJPM4=
k8s.io/metrics v0.0.0-20250911202906-07d03813f941/go.mod h1:0Q9+kGjChNR8PvhSzGvvkzrMd34FH0knvJOXBxaKaIQ=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=

View file

@ -19,5 +19,6 @@ limitations under the License.
// +groupName=kubectl.config.k8s.io
// +k8s:conversion-gen=k8s.io/kubectl/pkg/config
// +k8s:defaulter-gen=TypeMeta
// +k8s:openapi-model-package=io.k8s.kubectl.pkg.config.v1alpha1
package v1alpha1 // Package v1alpha1 import "k8s.io/kubectl/pkg/config/v1alpha1"

View file

@ -0,0 +1,42 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by openapi-gen. DO NOT EDIT.
package v1alpha1
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in AliasOverride) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1alpha1.AliasOverride"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in CommandDefaults) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1alpha1.CommandDefaults"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in CommandOptionDefault) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1alpha1.CommandOptionDefault"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in Preference) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1alpha1.Preference"
}

View file

@ -16,6 +16,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package
// +k8s:openapi-gen=true
// +k8s:openapi-model-package=io.k8s.kubectl.pkg.config.v1beta1
// +groupName=kubectl.config.k8s.io
// +k8s:conversion-gen=k8s.io/kubectl/pkg/config
// +k8s:defaulter-gen=TypeMeta

View file

@ -0,0 +1,42 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by openapi-gen. DO NOT EDIT.
package v1beta1
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in AliasOverride) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1beta1.AliasOverride"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in CommandDefaults) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1beta1.CommandDefaults"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in CommandOptionDefault) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1beta1.CommandOptionDefault"
}
// OpenAPIModelName returns the OpenAPI model name for this type.
func (in Preference) OpenAPIModelName() string {
return "io.k8s.kubectl.pkg.config.v1beta1.Preference"
}