Convert apiextensions-apiserver to new codegen

This commit is contained in:
Tim Hockin 2023-03-12 17:18:19 -07:00
parent 29913a8973
commit fb4d0150b9
No known key found for this signature in database
7 changed files with 50 additions and 49 deletions

View File

@ -21,17 +21,22 @@ set -o pipefail
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
source "${CODEGEN_PKG}/kube_codegen.sh"
# generate the code with: # generate the code with:
# --output-base because this script should also be able to run inside the vendor dir of # --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped. # instead of the $GOPATH directly. For normal projects this can be dropped.
"${CODEGEN_PKG}/generate-groups.sh" "applyconfiguration,client,deepcopy,informer,lister" \
k8s.io/apiextensions-apiserver/examples/client-go/pkg/client \
k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \
cr:v1 \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../../../.." \
--go-header-file "${SCRIPT_ROOT}/hack/boilerplate.go.txt"
kube::codegen::gen_helpers \
--input-pkg-root k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../../../.." \
--boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt"
# To use your own boilerplate text append: kube::codegen::gen_client \
# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt --with-watch \
--with-applyconfig \
--input-pkg-root k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \
--output-pkg-root k8s.io/apiextensions-apiserver/examples/client-go/pkg/client \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../../../.." \
--boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt"

View File

@ -21,21 +21,17 @@ set -o pipefail
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
CLIENTSET_NAME_VERSIONED=clientset \ source "${CODEGEN_PKG}/kube_codegen.sh"
CLIENTSET_PKG_NAME=clientset \
"${CODEGEN_PKG}/generate-groups.sh" "deepcopy,defaulter,client,lister,informer" \
k8s.io/apiextensions-apiserver/pkg/client \
k8s.io/apiextensions-apiserver/pkg/apis \
"apiextensions:v1beta1,v1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
--go-header-file "${SCRIPT_ROOT}/hack/boilerplate.go.txt"
CLIENTSET_NAME_VERSIONED=clientset \ kube::codegen::gen_helpers \
CLIENTSET_PKG_NAME=clientset \ --input-pkg-root k8s.io/apiextensions-apiserver/pkg \
"${CODEGEN_PKG}/generate-internal-groups.sh" "deepcopy,conversion" \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
k8s.io/apiextensions-apiserver/pkg/client \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt"
k8s.io/apiextensions-apiserver/pkg/apis \
k8s.io/apiextensions-apiserver/pkg/apis \ kube::codegen::gen_client \
"apiextensions:v1beta1,v1" \ --with-watch \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --input-pkg-root k8s.io/apiextensions-apiserver/pkg/apis \
--go-header-file "${SCRIPT_ROOT}/hack/boilerplate.go.txt" --output-pkg-root k8s.io/apiextensions-apiserver/pkg/client \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
--versioned-name clientset \
--boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt"

View File

@ -31,20 +31,15 @@ import (
type Interface interface { type Interface interface {
Discovery() discovery.DiscoveryInterface Discovery() discovery.DiscoveryInterface
ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface
ApiextensionsV1() apiextensionsv1.ApiextensionsV1Interface ApiextensionsV1() apiextensionsv1.ApiextensionsV1Interface
ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface
} }
// Clientset contains the clients for groups. // Clientset contains the clients for groups.
type Clientset struct { type Clientset struct {
*discovery.DiscoveryClient *discovery.DiscoveryClient
apiextensionsV1beta1 *apiextensionsv1beta1.ApiextensionsV1beta1Client
apiextensionsV1 *apiextensionsv1.ApiextensionsV1Client apiextensionsV1 *apiextensionsv1.ApiextensionsV1Client
} apiextensionsV1beta1 *apiextensionsv1beta1.ApiextensionsV1beta1Client
// ApiextensionsV1beta1 retrieves the ApiextensionsV1beta1Client
func (c *Clientset) ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
return c.apiextensionsV1beta1
} }
// ApiextensionsV1 retrieves the ApiextensionsV1Client // ApiextensionsV1 retrieves the ApiextensionsV1Client
@ -52,6 +47,11 @@ func (c *Clientset) ApiextensionsV1() apiextensionsv1.ApiextensionsV1Interface {
return c.apiextensionsV1 return c.apiextensionsV1
} }
// ApiextensionsV1beta1 retrieves the ApiextensionsV1beta1Client
func (c *Clientset) ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
return c.apiextensionsV1beta1
}
// Discovery retrieves the DiscoveryClient // Discovery retrieves the DiscoveryClient
func (c *Clientset) Discovery() discovery.DiscoveryInterface { func (c *Clientset) Discovery() discovery.DiscoveryInterface {
if c == nil { if c == nil {
@ -96,11 +96,11 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
var cs Clientset var cs Clientset
var err error var err error
cs.apiextensionsV1beta1, err = apiextensionsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient) cs.apiextensionsV1, err = apiextensionsv1.NewForConfigAndClient(&configShallowCopy, httpClient)
if err != nil { if err != nil {
return nil, err return nil, err
} }
cs.apiextensionsV1, err = apiextensionsv1.NewForConfigAndClient(&configShallowCopy, httpClient) cs.apiextensionsV1beta1, err = apiextensionsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -125,8 +125,8 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
// New creates a new Clientset for the given RESTClient. // New creates a new Clientset for the given RESTClient.
func New(c rest.Interface) *Clientset { func New(c rest.Interface) *Clientset {
var cs Clientset var cs Clientset
cs.apiextensionsV1beta1 = apiextensionsv1beta1.New(c)
cs.apiextensionsV1 = apiextensionsv1.New(c) cs.apiextensionsV1 = apiextensionsv1.New(c)
cs.apiextensionsV1beta1 = apiextensionsv1beta1.New(c)
cs.DiscoveryClient = discovery.NewDiscoveryClient(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
return &cs return &cs

View File

@ -81,12 +81,12 @@ var (
_ testing.FakeClient = &Clientset{} _ testing.FakeClient = &Clientset{}
) )
// ApiextensionsV1beta1 retrieves the ApiextensionsV1beta1Client
func (c *Clientset) ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
return &fakeapiextensionsv1beta1.FakeApiextensionsV1beta1{Fake: &c.Fake}
}
// ApiextensionsV1 retrieves the ApiextensionsV1Client // ApiextensionsV1 retrieves the ApiextensionsV1Client
func (c *Clientset) ApiextensionsV1() apiextensionsv1.ApiextensionsV1Interface { func (c *Clientset) ApiextensionsV1() apiextensionsv1.ApiextensionsV1Interface {
return &fakeapiextensionsv1.FakeApiextensionsV1{Fake: &c.Fake} return &fakeapiextensionsv1.FakeApiextensionsV1{Fake: &c.Fake}
} }
// ApiextensionsV1beta1 retrieves the ApiextensionsV1beta1Client
func (c *Clientset) ApiextensionsV1beta1() apiextensionsv1beta1.ApiextensionsV1beta1Interface {
return &fakeapiextensionsv1beta1.FakeApiextensionsV1beta1{Fake: &c.Fake}
}

View File

@ -32,8 +32,8 @@ var scheme = runtime.NewScheme()
var codecs = serializer.NewCodecFactory(scheme) var codecs = serializer.NewCodecFactory(scheme)
var localSchemeBuilder = runtime.SchemeBuilder{ var localSchemeBuilder = runtime.SchemeBuilder{
apiextensionsv1beta1.AddToScheme,
apiextensionsv1.AddToScheme, apiextensionsv1.AddToScheme,
apiextensionsv1beta1.AddToScheme,
} }
// AddToScheme adds all types of this clientset into the given scheme. This allows composition // AddToScheme adds all types of this clientset into the given scheme. This allows composition

View File

@ -32,8 +32,8 @@ var Scheme = runtime.NewScheme()
var Codecs = serializer.NewCodecFactory(Scheme) var Codecs = serializer.NewCodecFactory(Scheme)
var ParameterCodec = runtime.NewParameterCodec(Scheme) var ParameterCodec = runtime.NewParameterCodec(Scheme)
var localSchemeBuilder = runtime.SchemeBuilder{ var localSchemeBuilder = runtime.SchemeBuilder{
apiextensionsv1beta1.AddToScheme,
apiextensionsv1.AddToScheme, apiextensionsv1.AddToScheme,
apiextensionsv1beta1.AddToScheme,
} }
// AddToScheme adds all types of this clientset into the given scheme. This allows composition // AddToScheme adds all types of this clientset into the given scheme. This allows composition

View File

@ -26,10 +26,10 @@ import (
// Interface provides access to each of this group's versions. // Interface provides access to each of this group's versions.
type Interface interface { type Interface interface {
// V1beta1 provides access to shared informers for resources in V1beta1.
V1beta1() v1beta1.Interface
// V1 provides access to shared informers for resources in V1. // V1 provides access to shared informers for resources in V1.
V1() v1.Interface V1() v1.Interface
// V1beta1 provides access to shared informers for resources in V1beta1.
V1beta1() v1beta1.Interface
} }
type group struct { type group struct {
@ -43,12 +43,12 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
} }
// V1beta1 returns a new v1beta1.Interface.
func (g *group) V1beta1() v1beta1.Interface {
return v1beta1.New(g.factory, g.namespace, g.tweakListOptions)
}
// V1 returns a new v1.Interface. // V1 returns a new v1.Interface.
func (g *group) V1() v1.Interface { func (g *group) V1() v1.Interface {
return v1.New(g.factory, g.namespace, g.tweakListOptions) return v1.New(g.factory, g.namespace, g.tweakListOptions)
} }
// V1beta1 returns a new v1beta1.Interface.
func (g *group) V1beta1() v1beta1.Interface {
return v1beta1.New(g.factory, g.namespace, g.tweakListOptions)
}