diff --git a/staging/src/k8s.io/kube-apiextensions-server/main.go b/staging/src/k8s.io/kube-apiextensions-server/main.go index a062605e56f..503028572bb 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/main.go +++ b/staging/src/k8s.io/kube-apiextensions-server/main.go @@ -34,7 +34,7 @@ func main() { runtime.GOMAXPROCS(runtime.NumCPU()) } - cmd := server.NewCommandStartCustomResourcesServer(os.Stdout, os.Stderr, wait.NeverStop) + cmd := server.NewCommandStartCustomResourceDefinitionsServer(os.Stdout, os.Stderr, wait.NeverStop) cmd.Flags().AddGoFlagSet(flag.CommandLine) if err := cmd.Execute(); err != nil { panic(err) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install.go index 2a1a9697042..1efb0cebeae 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install.go @@ -30,7 +30,7 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ GroupName: apiextensions.GroupName, - RootScopedKinds: sets.NewString("CustomResource"), + RootScopedKinds: sets.NewString("CustomResourceDefinition"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, ImportPrefix: "k8s.io/kube-apiextensions-server/pkg/apis/apiextension", AddInternalObjectsToScheme: apiextensions.AddToScheme, diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install_test.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install_test.go index de662ad65e3..2ae09e9d327 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install_test.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/install/install_test.go @@ -34,7 +34,7 @@ func TestRoundTripTypes(t *testing.T) { func fuzzerFuncs() []interface{} { return []interface{}{ - func(obj *apiextensions.CustomResourceSpec, c fuzz.Continue) { + func(obj *apiextensions.CustomResourceDefinitionSpec, c fuzz.Continue) { c.FuzzNoCustom(obj) // match our defaulter diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/register.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/register.go index 7a186707c1e..df3bc363f3e 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/register.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/register.go @@ -44,8 +44,8 @@ var ( // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &CustomResource{}, - &CustomResourceList{}, + &CustomResourceDefinition{}, + &CustomResourceDefinitionList{}, ) return nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go index 29902c59e39..f802f0b5d58 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/types.go @@ -18,22 +18,22 @@ package apiextensions import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -// CustomResourceSpec describes how a user wants their resource to appear -type CustomResourceSpec struct { +// CustomResourceDefinitionSpec describes how a user wants their resource to appear +type CustomResourceDefinitionSpec struct { // Group is the group this resource belongs in Group string // Version is the version this resource belongs in Version string // Names are the names used to describe this custom resource - Names CustomResourceNames + Names CustomResourceDefinitionNames // Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced Scope ResourceScope } -// CustomResourceNames indicates the names to serve this CustomResource -type CustomResourceNames struct { - // Plural is the plural name of the resource to serve. It must match the name of the CustomResource-registration +// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition +type CustomResourceDefinitionNames struct { + // Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration // too: plural.group and it must be all lowercase. Plural string // Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased @@ -66,20 +66,20 @@ const ( ConditionUnknown ConditionStatus = "Unknown" ) -// CustomResourceConditionType is a valid value for CustomResourceCondition.Type -type CustomResourceConditionType string +// CustomResourceDefinitionConditionType is a valid value for CustomResourceDefinitionCondition.Type +type CustomResourceDefinitionConditionType string const ( - // NameConflict means the names chosen for this CustomResource conflict with others in the group. - NameConflict CustomResourceConditionType = "NameConflict" - // Terminating means that the CustomResource has been deleted and is cleaning up. - Terminating CustomResourceConditionType = "Terminating" + // NameConflict means the names chosen for this CustomResourceDefinition conflict with others in the group. + NameConflict CustomResourceDefinitionConditionType = "NameConflict" + // Terminating means that the CustomResourceDefinition has been deleted and is cleaning up. + Terminating CustomResourceDefinitionConditionType = "Terminating" ) -// CustomResourceCondition contains details for the current condition of this pod. -type CustomResourceCondition struct { +// CustomResourceDefinitionCondition contains details for the current condition of this pod. +type CustomResourceDefinitionCondition struct { // Type is the type of the condition. - Type CustomResourceConditionType + Type CustomResourceDefinitionConditionType // Status is the status of the condition. // Can be True, False, Unknown. Status ConditionStatus @@ -94,36 +94,36 @@ type CustomResourceCondition struct { Message string } -// CustomResourceStatus indicates the state of the CustomResource -type CustomResourceStatus struct { - // Conditions indicate state for particular aspects of a CustomResource - Conditions []CustomResourceCondition +// CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition +type CustomResourceDefinitionStatus struct { + // Conditions indicate state for particular aspects of a CustomResourceDefinition + Conditions []CustomResourceDefinitionCondition // AcceptedNames are the names that are actually being used to serve discovery // They may be different than the names in spec. - AcceptedNames CustomResourceNames + AcceptedNames CustomResourceDefinitionNames } // +genclient=true // +nonNamespaced=true -// CustomResource represents a resource that should be exposed on the API server. Its name MUST be in the format +// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format // <.spec.name>.<.spec.group>. -type CustomResource struct { +type CustomResourceDefinition struct { metav1.TypeMeta metav1.ObjectMeta // Spec describes how the user wants the resources to appear - Spec CustomResourceSpec - // Status indicates the actual state of the CustomResource - Status CustomResourceStatus + Spec CustomResourceDefinitionSpec + // Status indicates the actual state of the CustomResourceDefinition + Status CustomResourceDefinitionStatus } -// CustomResourceList is a list of CustomResource objects. -type CustomResourceList struct { +// CustomResourceDefinitionList is a list of CustomResourceDefinition objects. +type CustomResourceDefinitionList struct { metav1.TypeMeta metav1.ListMeta - // Items individual CustomResources - Items []CustomResource + // Items individual CustomResourceDefinitions + Items []CustomResourceDefinition } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/defaults.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/defaults.go index 05895198ed8..50a4e2ac28d 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/defaults.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/defaults.go @@ -23,17 +23,17 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&CustomResource{}, func(obj interface{}) { SetDefaults_CustomResource(obj.(*CustomResource)) }) + scheme.AddTypeDefaultingFunc(&CustomResourceDefinition{}, func(obj interface{}) { SetDefaults_CustomResourceDefinition(obj.(*CustomResourceDefinition)) }) // TODO figure out why I can't seem to get my defaulter generated // return RegisterDefaults(scheme) return nil } -func SetDefaults_CustomResource(obj *CustomResource) { - SetDefaults_CustomResourceSpec(&obj.Spec) +func SetDefaults_CustomResourceDefinition(obj *CustomResourceDefinition) { + SetDefaults_CustomResourceDefinitionSpec(&obj.Spec) } -func SetDefaults_CustomResourceSpec(obj *CustomResourceSpec) { +func SetDefaults_CustomResourceDefinitionSpec(obj *CustomResourceDefinitionSpec) { if len(obj.Scope) == 0 { obj.Scope = NamespaceScoped } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/register.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/register.go index ded314c8d58..45aa6e659eb 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/register.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/register.go @@ -45,8 +45,8 @@ var ( // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &CustomResource{}, - &CustomResourceList{}, + &CustomResourceDefinition{}, + &CustomResourceDefinitionList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go index 023c19b17bf..c052e75079d 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/types.go @@ -18,22 +18,22 @@ package v1alpha1 import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -// CustomResourceSpec describes how a user wants their resource to appear -type CustomResourceSpec struct { +// CustomResourceDefinitionSpec describes how a user wants their resource to appear +type CustomResourceDefinitionSpec struct { // Group is the group this resource belongs in Group string `json:"group" protobuf:"bytes,1,opt,name=group"` // Version is the version this resource belongs in Version string `json:"version" protobuf:"bytes,2,opt,name=version"` // Names are the names used to describe this custom resource - Names CustomResourceNames `json:"names" protobuf:"bytes,3,opt,name=names"` + Names CustomResourceDefinitionNames `json:"names" protobuf:"bytes,3,opt,name=names"` // Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced Scope ResourceScope `json:"scope" protobuf:"bytes,4,opt,name=scope,casttype=ResourceScope"` } -// CustomResourceNames indicates the names to serve this CustomResource -type CustomResourceNames struct { - // Plural is the plural name of the resource to serve. It must match the name of the CustomResource-registration +// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition +type CustomResourceDefinitionNames struct { + // Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration // too: plural.group and it must be all lowercase. Plural string `json:"plural" protobuf:"bytes,1,opt,name=plural"` // Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased @@ -66,20 +66,20 @@ const ( ConditionUnknown ConditionStatus = "Unknown" ) -// CustomResourceConditionType is a valid value for CustomResourceCondition.Type -type CustomResourceConditionType string +// CustomResourceDefinitionConditionType is a valid value for CustomResourceDefinitionCondition.Type +type CustomResourceDefinitionConditionType string const ( - // NameConflict means the names chosen for this CustomResource conflict with others in the group. - NameConflict CustomResourceConditionType = "NameConflict" - // Terminating means that the CustomResource has been deleted and is cleaning up. - Terminating CustomResourceConditionType = "Terminating" + // NameConflict means the names chosen for this CustomResourceDefinition conflict with others in the group. + NameConflict CustomResourceDefinitionConditionType = "NameConflict" + // Terminating means that the CustomResourceDefinition has been deleted and is cleaning up. + Terminating CustomResourceDefinitionConditionType = "Terminating" ) -// CustomResourceCondition contains details for the current condition of this pod. -type CustomResourceCondition struct { +// CustomResourceDefinitionCondition contains details for the current condition of this pod. +type CustomResourceDefinitionCondition struct { // Type is the type of the condition. - Type CustomResourceConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=CustomResourceConditionType"` + Type CustomResourceDefinitionConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=CustomResourceDefinitionConditionType"` // Status is the status of the condition. // Can be True, False, Unknown. Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=ConditionStatus"` @@ -94,36 +94,36 @@ type CustomResourceCondition struct { Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } -// CustomResourceStatus indicates the state of the CustomResource -type CustomResourceStatus struct { - // Conditions indicate state for particular aspects of a CustomResource - Conditions []CustomResourceCondition `json:"conditions" protobuf:"bytes,1,opt,name=conditions"` +// CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition +type CustomResourceDefinitionStatus struct { + // Conditions indicate state for particular aspects of a CustomResourceDefinition + Conditions []CustomResourceDefinitionCondition `json:"conditions" protobuf:"bytes,1,opt,name=conditions"` // AcceptedNames are the names that are actually being used to serve discovery // They may be different than the names in spec. - AcceptedNames CustomResourceNames `json:"acceptedNames" protobuf:"bytes,2,opt,name=acceptedNames"` + AcceptedNames CustomResourceDefinitionNames `json:"acceptedNames" protobuf:"bytes,2,opt,name=acceptedNames"` } // +genclient=true // +nonNamespaced=true -// CustomResource represents a resource that should be exposed on the API server. Its name MUST be in the format +// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format // <.spec.name>.<.spec.group>. -type CustomResource struct { +type CustomResourceDefinition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec describes how the user wants the resources to appear - Spec CustomResourceSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - // Status indicates the actual state of the CustomResource - Status CustomResourceStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` + Spec CustomResourceDefinitionSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + // Status indicates the actual state of the CustomResourceDefinition + Status CustomResourceDefinitionStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } -// CustomResourceList is a list of CustomResource objects. -type CustomResourceList struct { +// CustomResourceDefinitionList is a list of CustomResourceDefinition objects. +type CustomResourceDefinitionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // Items individual CustomResources - Items []CustomResource `json:"items" protobuf:"bytes,2,rep,name=items"` + // Items individual CustomResourceDefinitions + Items []CustomResourceDefinition `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.conversion.go index 20d1a906068..53b5569b6ca 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.conversion.go @@ -35,55 +35,55 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( - Convert_v1alpha1_CustomResource_To_apiextensions_CustomResource, - Convert_apiextensions_CustomResource_To_v1alpha1_CustomResource, - Convert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourceCondition, - Convert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourceCondition, - Convert_v1alpha1_CustomResourceList_To_apiextensions_CustomResourceList, - Convert_apiextensions_CustomResourceList_To_v1alpha1_CustomResourceList, - Convert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames, - Convert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames, - Convert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec, - Convert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec, - Convert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus, - Convert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus, + Convert_v1alpha1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition, + Convert_apiextensions_CustomResourceDefinition_To_v1alpha1_CustomResourceDefinition, + Convert_v1alpha1_CustomResourceDefinitionCondition_To_apiextensions_CustomResourceDefinitionCondition, + Convert_apiextensions_CustomResourceDefinitionCondition_To_v1alpha1_CustomResourceDefinitionCondition, + Convert_v1alpha1_CustomResourceDefinitionList_To_apiextensions_CustomResourceDefinitionList, + Convert_apiextensions_CustomResourceDefinitionList_To_v1alpha1_CustomResourceDefinitionList, + Convert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames, + Convert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames, + Convert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec, + Convert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec, + Convert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus, + Convert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus, ) } -func autoConvert_v1alpha1_CustomResource_To_apiextensions_CustomResource(in *CustomResource, out *apiextensions.CustomResource, s conversion.Scope) error { +func autoConvert_v1alpha1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition(in *CustomResourceDefinition, out *apiextensions.CustomResourceDefinition, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v1alpha1_CustomResource_To_apiextensions_CustomResource is an autogenerated conversion function. -func Convert_v1alpha1_CustomResource_To_apiextensions_CustomResource(in *CustomResource, out *apiextensions.CustomResource, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResource_To_apiextensions_CustomResource(in, out, s) +// Convert_v1alpha1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition(in *CustomResourceDefinition, out *apiextensions.CustomResourceDefinition, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition(in, out, s) } -func autoConvert_apiextensions_CustomResource_To_v1alpha1_CustomResource(in *apiextensions.CustomResource, out *CustomResource, s conversion.Scope) error { +func autoConvert_apiextensions_CustomResourceDefinition_To_v1alpha1_CustomResourceDefinition(in *apiextensions.CustomResourceDefinition, out *CustomResourceDefinition, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_apiextensions_CustomResource_To_v1alpha1_CustomResource is an autogenerated conversion function. -func Convert_apiextensions_CustomResource_To_v1alpha1_CustomResource(in *apiextensions.CustomResource, out *CustomResource, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResource_To_v1alpha1_CustomResource(in, out, s) +// Convert_apiextensions_CustomResourceDefinition_To_v1alpha1_CustomResourceDefinition is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinition_To_v1alpha1_CustomResourceDefinition(in *apiextensions.CustomResourceDefinition, out *CustomResourceDefinition, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinition_To_v1alpha1_CustomResourceDefinition(in, out, s) } -func autoConvert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourceCondition(in *CustomResourceCondition, out *apiextensions.CustomResourceCondition, s conversion.Scope) error { - out.Type = apiextensions.CustomResourceConditionType(in.Type) +func autoConvert_v1alpha1_CustomResourceDefinitionCondition_To_apiextensions_CustomResourceDefinitionCondition(in *CustomResourceDefinitionCondition, out *apiextensions.CustomResourceDefinitionCondition, s conversion.Scope) error { + out.Type = apiextensions.CustomResourceDefinitionConditionType(in.Type) out.Status = apiextensions.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -91,13 +91,13 @@ func autoConvert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourc return nil } -// Convert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourceCondition is an autogenerated conversion function. -func Convert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourceCondition(in *CustomResourceCondition, out *apiextensions.CustomResourceCondition, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResourceCondition_To_apiextensions_CustomResourceCondition(in, out, s) +// Convert_v1alpha1_CustomResourceDefinitionCondition_To_apiextensions_CustomResourceDefinitionCondition is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinitionCondition_To_apiextensions_CustomResourceDefinitionCondition(in *CustomResourceDefinitionCondition, out *apiextensions.CustomResourceDefinitionCondition, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinitionCondition_To_apiextensions_CustomResourceDefinitionCondition(in, out, s) } -func autoConvert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourceCondition(in *apiextensions.CustomResourceCondition, out *CustomResourceCondition, s conversion.Scope) error { - out.Type = CustomResourceConditionType(in.Type) +func autoConvert_apiextensions_CustomResourceDefinitionCondition_To_v1alpha1_CustomResourceDefinitionCondition(in *apiextensions.CustomResourceDefinitionCondition, out *CustomResourceDefinitionCondition, s conversion.Scope) error { + out.Type = CustomResourceDefinitionConditionType(in.Type) out.Status = ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -105,38 +105,38 @@ func autoConvert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourc return nil } -// Convert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourceCondition is an autogenerated conversion function. -func Convert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourceCondition(in *apiextensions.CustomResourceCondition, out *CustomResourceCondition, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResourceCondition_To_v1alpha1_CustomResourceCondition(in, out, s) +// Convert_apiextensions_CustomResourceDefinitionCondition_To_v1alpha1_CustomResourceDefinitionCondition is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinitionCondition_To_v1alpha1_CustomResourceDefinitionCondition(in *apiextensions.CustomResourceDefinitionCondition, out *CustomResourceDefinitionCondition, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinitionCondition_To_v1alpha1_CustomResourceDefinitionCondition(in, out, s) } -func autoConvert_v1alpha1_CustomResourceList_To_apiextensions_CustomResourceList(in *CustomResourceList, out *apiextensions.CustomResourceList, s conversion.Scope) error { +func autoConvert_v1alpha1_CustomResourceDefinitionList_To_apiextensions_CustomResourceDefinitionList(in *CustomResourceDefinitionList, out *apiextensions.CustomResourceDefinitionList, s conversion.Scope) error { out.ListMeta = in.ListMeta - out.Items = *(*[]apiextensions.CustomResource)(unsafe.Pointer(&in.Items)) + out.Items = *(*[]apiextensions.CustomResourceDefinition)(unsafe.Pointer(&in.Items)) return nil } -// Convert_v1alpha1_CustomResourceList_To_apiextensions_CustomResourceList is an autogenerated conversion function. -func Convert_v1alpha1_CustomResourceList_To_apiextensions_CustomResourceList(in *CustomResourceList, out *apiextensions.CustomResourceList, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResourceList_To_apiextensions_CustomResourceList(in, out, s) +// Convert_v1alpha1_CustomResourceDefinitionList_To_apiextensions_CustomResourceDefinitionList is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinitionList_To_apiextensions_CustomResourceDefinitionList(in *CustomResourceDefinitionList, out *apiextensions.CustomResourceDefinitionList, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinitionList_To_apiextensions_CustomResourceDefinitionList(in, out, s) } -func autoConvert_apiextensions_CustomResourceList_To_v1alpha1_CustomResourceList(in *apiextensions.CustomResourceList, out *CustomResourceList, s conversion.Scope) error { +func autoConvert_apiextensions_CustomResourceDefinitionList_To_v1alpha1_CustomResourceDefinitionList(in *apiextensions.CustomResourceDefinitionList, out *CustomResourceDefinitionList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items == nil { - out.Items = make([]CustomResource, 0) + out.Items = make([]CustomResourceDefinition, 0) } else { - out.Items = *(*[]CustomResource)(unsafe.Pointer(&in.Items)) + out.Items = *(*[]CustomResourceDefinition)(unsafe.Pointer(&in.Items)) } return nil } -// Convert_apiextensions_CustomResourceList_To_v1alpha1_CustomResourceList is an autogenerated conversion function. -func Convert_apiextensions_CustomResourceList_To_v1alpha1_CustomResourceList(in *apiextensions.CustomResourceList, out *CustomResourceList, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResourceList_To_v1alpha1_CustomResourceList(in, out, s) +// Convert_apiextensions_CustomResourceDefinitionList_To_v1alpha1_CustomResourceDefinitionList is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinitionList_To_v1alpha1_CustomResourceDefinitionList(in *apiextensions.CustomResourceDefinitionList, out *CustomResourceDefinitionList, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinitionList_To_v1alpha1_CustomResourceDefinitionList(in, out, s) } -func autoConvert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames(in *CustomResourceNames, out *apiextensions.CustomResourceNames, s conversion.Scope) error { +func autoConvert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames(in *CustomResourceDefinitionNames, out *apiextensions.CustomResourceDefinitionNames, s conversion.Scope) error { out.Plural = in.Plural out.Singular = in.Singular out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames)) @@ -145,12 +145,12 @@ func autoConvert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNam return nil } -// Convert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames is an autogenerated conversion function. -func Convert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames(in *CustomResourceNames, out *apiextensions.CustomResourceNames, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames(in, out, s) +// Convert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames(in *CustomResourceDefinitionNames, out *apiextensions.CustomResourceDefinitionNames, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames(in, out, s) } -func autoConvert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames(in *apiextensions.CustomResourceNames, out *CustomResourceNames, s conversion.Scope) error { +func autoConvert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames(in *apiextensions.CustomResourceDefinitionNames, out *CustomResourceDefinitionNames, s conversion.Scope) error { out.Plural = in.Plural out.Singular = in.Singular out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames)) @@ -159,67 +159,67 @@ func autoConvert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNam return nil } -// Convert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames is an autogenerated conversion function. -func Convert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames(in *apiextensions.CustomResourceNames, out *CustomResourceNames, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames(in, out, s) +// Convert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames(in *apiextensions.CustomResourceDefinitionNames, out *CustomResourceDefinitionNames, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames(in, out, s) } -func autoConvert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec(in *CustomResourceSpec, out *apiextensions.CustomResourceSpec, s conversion.Scope) error { +func autoConvert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec(in *CustomResourceDefinitionSpec, out *apiextensions.CustomResourceDefinitionSpec, s conversion.Scope) error { out.Group = in.Group out.Version = in.Version - if err := Convert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames(&in.Names, &out.Names, s); err != nil { + if err := Convert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames(&in.Names, &out.Names, s); err != nil { return err } out.Scope = apiextensions.ResourceScope(in.Scope) return nil } -// Convert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec is an autogenerated conversion function. -func Convert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec(in *CustomResourceSpec, out *apiextensions.CustomResourceSpec, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResourceSpec_To_apiextensions_CustomResourceSpec(in, out, s) +// Convert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec(in *CustomResourceDefinitionSpec, out *apiextensions.CustomResourceDefinitionSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinitionSpec_To_apiextensions_CustomResourceDefinitionSpec(in, out, s) } -func autoConvert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec(in *apiextensions.CustomResourceSpec, out *CustomResourceSpec, s conversion.Scope) error { +func autoConvert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec(in *apiextensions.CustomResourceDefinitionSpec, out *CustomResourceDefinitionSpec, s conversion.Scope) error { out.Group = in.Group out.Version = in.Version - if err := Convert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames(&in.Names, &out.Names, s); err != nil { + if err := Convert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames(&in.Names, &out.Names, s); err != nil { return err } out.Scope = ResourceScope(in.Scope) return nil } -// Convert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec is an autogenerated conversion function. -func Convert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec(in *apiextensions.CustomResourceSpec, out *CustomResourceSpec, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResourceSpec_To_v1alpha1_CustomResourceSpec(in, out, s) +// Convert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec(in *apiextensions.CustomResourceDefinitionSpec, out *CustomResourceDefinitionSpec, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinitionSpec_To_v1alpha1_CustomResourceDefinitionSpec(in, out, s) } -func autoConvert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus(in *CustomResourceStatus, out *apiextensions.CustomResourceStatus, s conversion.Scope) error { - out.Conditions = *(*[]apiextensions.CustomResourceCondition)(unsafe.Pointer(&in.Conditions)) - if err := Convert_v1alpha1_CustomResourceNames_To_apiextensions_CustomResourceNames(&in.AcceptedNames, &out.AcceptedNames, s); err != nil { +func autoConvert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus(in *CustomResourceDefinitionStatus, out *apiextensions.CustomResourceDefinitionStatus, s conversion.Scope) error { + out.Conditions = *(*[]apiextensions.CustomResourceDefinitionCondition)(unsafe.Pointer(&in.Conditions)) + if err := Convert_v1alpha1_CustomResourceDefinitionNames_To_apiextensions_CustomResourceDefinitionNames(&in.AcceptedNames, &out.AcceptedNames, s); err != nil { return err } return nil } -// Convert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus is an autogenerated conversion function. -func Convert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus(in *CustomResourceStatus, out *apiextensions.CustomResourceStatus, s conversion.Scope) error { - return autoConvert_v1alpha1_CustomResourceStatus_To_apiextensions_CustomResourceStatus(in, out, s) +// Convert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus is an autogenerated conversion function. +func Convert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus(in *CustomResourceDefinitionStatus, out *apiextensions.CustomResourceDefinitionStatus, s conversion.Scope) error { + return autoConvert_v1alpha1_CustomResourceDefinitionStatus_To_apiextensions_CustomResourceDefinitionStatus(in, out, s) } -func autoConvert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus(in *apiextensions.CustomResourceStatus, out *CustomResourceStatus, s conversion.Scope) error { +func autoConvert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus(in *apiextensions.CustomResourceDefinitionStatus, out *CustomResourceDefinitionStatus, s conversion.Scope) error { if in.Conditions == nil { - out.Conditions = make([]CustomResourceCondition, 0) + out.Conditions = make([]CustomResourceDefinitionCondition, 0) } else { - out.Conditions = *(*[]CustomResourceCondition)(unsafe.Pointer(&in.Conditions)) + out.Conditions = *(*[]CustomResourceDefinitionCondition)(unsafe.Pointer(&in.Conditions)) } - if err := Convert_apiextensions_CustomResourceNames_To_v1alpha1_CustomResourceNames(&in.AcceptedNames, &out.AcceptedNames, s); err != nil { + if err := Convert_apiextensions_CustomResourceDefinitionNames_To_v1alpha1_CustomResourceDefinitionNames(&in.AcceptedNames, &out.AcceptedNames, s); err != nil { return err } return nil } -// Convert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus is an autogenerated conversion function. -func Convert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus(in *apiextensions.CustomResourceStatus, out *CustomResourceStatus, s conversion.Scope) error { - return autoConvert_apiextensions_CustomResourceStatus_To_v1alpha1_CustomResourceStatus(in, out, s) +// Convert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus is an autogenerated conversion function. +func Convert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus(in *apiextensions.CustomResourceDefinitionStatus, out *CustomResourceDefinitionStatus, s conversion.Scope) error { + return autoConvert_apiextensions_CustomResourceDefinitionStatus_To_v1alpha1_CustomResourceDefinitionStatus(in, out, s) } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.deepcopy.go index 5acf2c07a5b..d338f812341 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/zz_generated.deepcopy.go @@ -35,19 +35,19 @@ func init() { // to allow building arbitrary schemes. func RegisterDeepCopies(scheme *runtime.Scheme) error { return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResource, InType: reflect.TypeOf(&CustomResource{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceCondition, InType: reflect.TypeOf(&CustomResourceCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceList, InType: reflect.TypeOf(&CustomResourceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceNames, InType: reflect.TypeOf(&CustomResourceNames{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceSpec, InType: reflect.TypeOf(&CustomResourceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceStatus, InType: reflect.TypeOf(&CustomResourceStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinition, InType: reflect.TypeOf(&CustomResourceDefinition{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinitionCondition, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinitionList, InType: reflect.TypeOf(&CustomResourceDefinitionList{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinitionNames, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinitionSpec, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_CustomResourceDefinitionStatus, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})}, ) } -func DeepCopy_v1alpha1_CustomResource(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinition(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResource) - out := out.(*CustomResource) + in := in.(*CustomResourceDefinition) + out := out.(*CustomResourceDefinition) *out = *in if newVal, err := c.DeepCopy(&in.ObjectMeta); err != nil { return err @@ -57,40 +57,40 @@ func DeepCopy_v1alpha1_CustomResource(in interface{}, out interface{}, c *conver if newVal, err := c.DeepCopy(&in.Spec); err != nil { return err } else { - out.Spec = *newVal.(*CustomResourceSpec) + out.Spec = *newVal.(*CustomResourceDefinitionSpec) } if newVal, err := c.DeepCopy(&in.Status); err != nil { return err } else { - out.Status = *newVal.(*CustomResourceStatus) + out.Status = *newVal.(*CustomResourceDefinitionStatus) } return nil } } -func DeepCopy_v1alpha1_CustomResourceCondition(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinitionCondition(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceCondition) - out := out.(*CustomResourceCondition) + in := in.(*CustomResourceDefinitionCondition) + out := out.(*CustomResourceDefinitionCondition) *out = *in out.LastTransitionTime = in.LastTransitionTime.DeepCopy() return nil } } -func DeepCopy_v1alpha1_CustomResourceList(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinitionList(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceList) - out := out.(*CustomResourceList) + in := in.(*CustomResourceDefinitionList) + out := out.(*CustomResourceDefinitionList) *out = *in if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]CustomResource, len(*in)) + *out = make([]CustomResourceDefinition, len(*in)) for i := range *in { if newVal, err := c.DeepCopy(&(*in)[i]); err != nil { return err } else { - (*out)[i] = *newVal.(*CustomResource) + (*out)[i] = *newVal.(*CustomResourceDefinition) } } } @@ -98,10 +98,10 @@ func DeepCopy_v1alpha1_CustomResourceList(in interface{}, out interface{}, c *co } } -func DeepCopy_v1alpha1_CustomResourceNames(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinitionNames(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceNames) - out := out.(*CustomResourceNames) + in := in.(*CustomResourceDefinitionNames) + out := out.(*CustomResourceDefinitionNames) *out = *in if in.ShortNames != nil { in, out := &in.ShortNames, &out.ShortNames @@ -112,40 +112,40 @@ func DeepCopy_v1alpha1_CustomResourceNames(in interface{}, out interface{}, c *c } } -func DeepCopy_v1alpha1_CustomResourceSpec(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinitionSpec(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceSpec) - out := out.(*CustomResourceSpec) + in := in.(*CustomResourceDefinitionSpec) + out := out.(*CustomResourceDefinitionSpec) *out = *in if newVal, err := c.DeepCopy(&in.Names); err != nil { return err } else { - out.Names = *newVal.(*CustomResourceNames) + out.Names = *newVal.(*CustomResourceDefinitionNames) } return nil } } -func DeepCopy_v1alpha1_CustomResourceStatus(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_v1alpha1_CustomResourceDefinitionStatus(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceStatus) - out := out.(*CustomResourceStatus) + in := in.(*CustomResourceDefinitionStatus) + out := out.(*CustomResourceDefinitionStatus) *out = *in if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions - *out = make([]CustomResourceCondition, len(*in)) + *out = make([]CustomResourceDefinitionCondition, len(*in)) for i := range *in { if newVal, err := c.DeepCopy(&(*in)[i]); err != nil { return err } else { - (*out)[i] = *newVal.(*CustomResourceCondition) + (*out)[i] = *newVal.(*CustomResourceDefinitionCondition) } } } if newVal, err := c.DeepCopy(&in.AcceptedNames); err != nil { return err } else { - out.AcceptedNames = *newVal.(*CustomResourceNames) + out.AcceptedNames = *newVal.(*CustomResourceDefinitionNames) } return nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation.go index fb99f3e5d3c..360b6ece4f7 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation.go @@ -26,8 +26,8 @@ import ( "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" ) -// ValidateCustomResource statically validates -func ValidateCustomResource(obj *apiextensions.CustomResource) field.ErrorList { +// ValidateCustomResourceDefinition statically validates +func ValidateCustomResourceDefinition(obj *apiextensions.CustomResourceDefinition) field.ErrorList { nameValidationFn := func(name string, prefix bool) []string { ret := genericvalidation.NameIsDNSSubdomain(name, prefix) requiredName := obj.Spec.Names.Plural + "." + obj.Spec.Group @@ -38,28 +38,28 @@ func ValidateCustomResource(obj *apiextensions.CustomResource) field.ErrorList { } allErrs := genericvalidation.ValidateObjectMeta(&obj.ObjectMeta, false, nameValidationFn, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateCustomResourceSpec(&obj.Spec, field.NewPath("spec"))...) - allErrs = append(allErrs, ValidateCustomResourceStatus(&obj.Status, field.NewPath("status"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionSpec(&obj.Spec, field.NewPath("spec"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionStatus(&obj.Status, field.NewPath("status"))...) return allErrs } -// ValidateCustomResourceUpdate statically validates -func ValidateCustomResourceUpdate(obj, oldObj *apiextensions.CustomResource) field.ErrorList { +// ValidateCustomResourceDefinitionUpdate statically validates +func ValidateCustomResourceDefinitionUpdate(obj, oldObj *apiextensions.CustomResourceDefinition) field.ErrorList { allErrs := genericvalidation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateCustomResourceSpecUpdate(&obj.Spec, &oldObj.Spec, field.NewPath("spec"))...) - allErrs = append(allErrs, ValidateCustomResourceStatus(&obj.Status, field.NewPath("status"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionSpecUpdate(&obj.Spec, &oldObj.Spec, field.NewPath("spec"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionStatus(&obj.Status, field.NewPath("status"))...) return allErrs } -// ValidateUpdateCustomResourceStatus statically validates -func ValidateUpdateCustomResourceStatus(obj, oldObj *apiextensions.CustomResource) field.ErrorList { +// ValidateUpdateCustomResourceDefinitionStatus statically validates +func ValidateUpdateCustomResourceDefinitionStatus(obj, oldObj *apiextensions.CustomResourceDefinition) field.ErrorList { allErrs := genericvalidation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateCustomResourceStatus(&obj.Status, field.NewPath("status"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionStatus(&obj.Status, field.NewPath("status"))...) return allErrs } -// ValidateCustomResourceSpec statically validates -func ValidateCustomResourceSpec(spec *apiextensions.CustomResourceSpec, fldPath *field.Path) field.ErrorList { +// ValidateCustomResourceDefinitionSpec statically validates +func ValidateCustomResourceDefinitionSpec(spec *apiextensions.CustomResourceDefinitionSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(spec.Group) == 0 { @@ -99,14 +99,14 @@ func ValidateCustomResourceSpec(spec *apiextensions.CustomResourceSpec, fldPath allErrs = append(allErrs, field.Required(fldPath.Child("names", "listKind"), "")) } - allErrs = append(allErrs, ValidateCustomResourceNames(&spec.Names, fldPath.Child("names"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionNames(&spec.Names, fldPath.Child("names"))...) return allErrs } -// ValidateCustomResourceSpecUpdate statically validates -func ValidateCustomResourceSpecUpdate(spec, oldSpec *apiextensions.CustomResourceSpec, fldPath *field.Path) field.ErrorList { - allErrs := ValidateCustomResourceSpec(spec, fldPath) +// ValidateCustomResourceDefinitionSpecUpdate statically validates +func ValidateCustomResourceDefinitionSpecUpdate(spec, oldSpec *apiextensions.CustomResourceDefinitionSpec, fldPath *field.Path) field.ErrorList { + allErrs := ValidateCustomResourceDefinitionSpec(spec, fldPath) // these all affect the storage, so you can't change them genericvalidation.ValidateImmutableField(spec.Group, oldSpec.Group, fldPath.Child("group")) @@ -120,15 +120,15 @@ func ValidateCustomResourceSpecUpdate(spec, oldSpec *apiextensions.CustomResourc return allErrs } -// ValidateCustomResourceStatus statically validates -func ValidateCustomResourceStatus(status *apiextensions.CustomResourceStatus, fldPath *field.Path) field.ErrorList { +// ValidateCustomResourceDefinitionStatus statically validates +func ValidateCustomResourceDefinitionStatus(status *apiextensions.CustomResourceDefinitionStatus, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - allErrs = append(allErrs, ValidateCustomResourceNames(&status.AcceptedNames, fldPath.Child("acceptedNames"))...) + allErrs = append(allErrs, ValidateCustomResourceDefinitionNames(&status.AcceptedNames, fldPath.Child("acceptedNames"))...) return allErrs } -// ValidateCustomResourceNames statically validates -func ValidateCustomResourceNames(names *apiextensions.CustomResourceNames, fldPath *field.Path) field.ErrorList { +// ValidateCustomResourceDefinitionNames statically validates +func ValidateCustomResourceDefinitionNames(names *apiextensions.CustomResourceDefinitionNames, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if errs := validationutil.IsDNS1035Label(names.Plural); len(names.Plural) > 0 && len(errs) > 0 { allErrs = append(allErrs, field.Invalid(fldPath.Child("plural"), names.Plural, strings.Join(errs, ","))) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation_test.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation_test.go index 47fdf1b44ff..bc1b2ff0add 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation_test.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation/validation_test.go @@ -40,19 +40,19 @@ func (v validationMatch) matches(err *field.Error) bool { return err.Type == v.errorType && err.Field == v.path.String() } -func TestValidateCustomResource(t *testing.T) { +func TestValidateCustomResourceDefinition(t *testing.T) { tests := []struct { name string - resource *apiextensions.CustomResource + resource *apiextensions.CustomResourceDefinition errors []validationMatch }{ { name: "mismatched name", - resource: &apiextensions.CustomResource{ + resource: &apiextensions.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "plural.not.group.com"}, - Spec: apiextensions.CustomResourceSpec{ + Spec: apiextensions.CustomResourceDefinitionSpec{ Group: "group.com", - Names: apiextensions.CustomResourceNames{ + Names: apiextensions.CustomResourceDefinitionNames{ Plural: "plural", }, }, @@ -63,7 +63,7 @@ func TestValidateCustomResource(t *testing.T) { }, { name: "missing values", - resource: &apiextensions.CustomResource{ + resource: &apiextensions.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "plural.group.com"}, }, errors: []validationMatch{ @@ -78,21 +78,21 @@ func TestValidateCustomResource(t *testing.T) { }, { name: "bad names 01", - resource: &apiextensions.CustomResource{ + resource: &apiextensions.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "plural.group"}, - Spec: apiextensions.CustomResourceSpec{ + Spec: apiextensions.CustomResourceDefinitionSpec{ Group: "group", Version: "ve()*rsion", Scope: apiextensions.ResourceScope("foo"), - Names: apiextensions.CustomResourceNames{ + Names: apiextensions.CustomResourceDefinitionNames{ Plural: "pl()*ural", Singular: "value()*a", Kind: "value()*a", ListKind: "value()*a", }, }, - Status: apiextensions.CustomResourceStatus{ - AcceptedNames: apiextensions.CustomResourceNames{ + Status: apiextensions.CustomResourceDefinitionStatus{ + AcceptedNames: apiextensions.CustomResourceDefinitionNames{ Plural: "pl()*ural", Singular: "value()*a", Kind: "value()*a", @@ -116,20 +116,20 @@ func TestValidateCustomResource(t *testing.T) { }, { name: "bad names 02", - resource: &apiextensions.CustomResource{ + resource: &apiextensions.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "plural.group"}, - Spec: apiextensions.CustomResourceSpec{ + Spec: apiextensions.CustomResourceDefinitionSpec{ Group: "group.c(*&om", Version: "version", - Names: apiextensions.CustomResourceNames{ + Names: apiextensions.CustomResourceDefinitionNames{ Plural: "plural", Singular: "singular", Kind: "matching", ListKind: "matching", }, }, - Status: apiextensions.CustomResourceStatus{ - AcceptedNames: apiextensions.CustomResourceNames{ + Status: apiextensions.CustomResourceDefinitionStatus{ + AcceptedNames: apiextensions.CustomResourceDefinitionNames{ Plural: "plural", Singular: "singular", Kind: "matching", @@ -146,7 +146,7 @@ func TestValidateCustomResource(t *testing.T) { } for _, tc := range tests { - errs := ValidateCustomResource(tc.resource) + errs := ValidateCustomResourceDefinition(tc.resource) for _, expectedError := range tc.errors { found := false diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/zz_generated.deepcopy.go index c25bbb2d146..667d6ed4414 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/zz_generated.deepcopy.go @@ -35,19 +35,19 @@ func init() { // to allow building arbitrary schemes. func RegisterDeepCopies(scheme *runtime.Scheme) error { return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResource, InType: reflect.TypeOf(&CustomResource{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceCondition, InType: reflect.TypeOf(&CustomResourceCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceList, InType: reflect.TypeOf(&CustomResourceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceNames, InType: reflect.TypeOf(&CustomResourceNames{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceSpec, InType: reflect.TypeOf(&CustomResourceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceStatus, InType: reflect.TypeOf(&CustomResourceStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinition, InType: reflect.TypeOf(&CustomResourceDefinition{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionCondition, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionList, InType: reflect.TypeOf(&CustomResourceDefinitionList{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionNames, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionSpec, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_apiextensions_CustomResourceDefinitionStatus, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})}, ) } -func DeepCopy_apiextensions_CustomResource(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinition(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResource) - out := out.(*CustomResource) + in := in.(*CustomResourceDefinition) + out := out.(*CustomResourceDefinition) *out = *in if newVal, err := c.DeepCopy(&in.ObjectMeta); err != nil { return err @@ -57,40 +57,40 @@ func DeepCopy_apiextensions_CustomResource(in interface{}, out interface{}, c *c if newVal, err := c.DeepCopy(&in.Spec); err != nil { return err } else { - out.Spec = *newVal.(*CustomResourceSpec) + out.Spec = *newVal.(*CustomResourceDefinitionSpec) } if newVal, err := c.DeepCopy(&in.Status); err != nil { return err } else { - out.Status = *newVal.(*CustomResourceStatus) + out.Status = *newVal.(*CustomResourceDefinitionStatus) } return nil } } -func DeepCopy_apiextensions_CustomResourceCondition(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinitionCondition(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceCondition) - out := out.(*CustomResourceCondition) + in := in.(*CustomResourceDefinitionCondition) + out := out.(*CustomResourceDefinitionCondition) *out = *in out.LastTransitionTime = in.LastTransitionTime.DeepCopy() return nil } } -func DeepCopy_apiextensions_CustomResourceList(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinitionList(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceList) - out := out.(*CustomResourceList) + in := in.(*CustomResourceDefinitionList) + out := out.(*CustomResourceDefinitionList) *out = *in if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]CustomResource, len(*in)) + *out = make([]CustomResourceDefinition, len(*in)) for i := range *in { if newVal, err := c.DeepCopy(&(*in)[i]); err != nil { return err } else { - (*out)[i] = *newVal.(*CustomResource) + (*out)[i] = *newVal.(*CustomResourceDefinition) } } } @@ -98,10 +98,10 @@ func DeepCopy_apiextensions_CustomResourceList(in interface{}, out interface{}, } } -func DeepCopy_apiextensions_CustomResourceNames(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinitionNames(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceNames) - out := out.(*CustomResourceNames) + in := in.(*CustomResourceDefinitionNames) + out := out.(*CustomResourceDefinitionNames) *out = *in if in.ShortNames != nil { in, out := &in.ShortNames, &out.ShortNames @@ -112,40 +112,40 @@ func DeepCopy_apiextensions_CustomResourceNames(in interface{}, out interface{}, } } -func DeepCopy_apiextensions_CustomResourceSpec(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinitionSpec(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceSpec) - out := out.(*CustomResourceSpec) + in := in.(*CustomResourceDefinitionSpec) + out := out.(*CustomResourceDefinitionSpec) *out = *in if newVal, err := c.DeepCopy(&in.Names); err != nil { return err } else { - out.Names = *newVal.(*CustomResourceNames) + out.Names = *newVal.(*CustomResourceDefinitionNames) } return nil } } -func DeepCopy_apiextensions_CustomResourceStatus(in interface{}, out interface{}, c *conversion.Cloner) error { +func DeepCopy_apiextensions_CustomResourceDefinitionStatus(in interface{}, out interface{}, c *conversion.Cloner) error { { - in := in.(*CustomResourceStatus) - out := out.(*CustomResourceStatus) + in := in.(*CustomResourceDefinitionStatus) + out := out.(*CustomResourceDefinitionStatus) *out = *in if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions - *out = make([]CustomResourceCondition, len(*in)) + *out = make([]CustomResourceDefinitionCondition, len(*in)) for i := range *in { if newVal, err := c.DeepCopy(&(*in)[i]); err != nil { return err } else { - (*out)[i] = *newVal.(*CustomResourceCondition) + (*out)[i] = *newVal.(*CustomResourceDefinitionCondition) } } } if newVal, err := c.DeepCopy(&in.AcceptedNames); err != nil { return err } else { - out.AcceptedNames = *newVal.(*CustomResourceNames) + out.AcceptedNames = *newVal.(*CustomResourceDefinitionNames) } return nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD index 585576aef11..20af1f2c264 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD @@ -55,6 +55,6 @@ go_library( "//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library", "//vendor/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion:go_default_library", "//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresource:go_default_library", - "//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage:go_default_library", + "//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition:go_default_library", ], ) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go index b1a54060024..fcdf485dc4e 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go @@ -37,7 +37,7 @@ import ( "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" "k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset" internalinformers "k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion" - "k8s.io/kube-apiextensions-server/pkg/registry/customresource" + "k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition" // make sure the generated client works _ "k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset" @@ -71,10 +71,10 @@ func init() { type Config struct { GenericConfig *genericapiserver.Config - CustomResourceRESTOptionsGetter genericregistry.RESTOptionsGetter + CustomResourceDefinitionRESTOptionsGetter genericregistry.RESTOptionsGetter } -type CustomResources struct { +type CustomResourceDefinitions struct { GenericAPIServer *genericapiserver.GenericAPIServer } @@ -100,32 +100,32 @@ func (c *Config) SkipComplete() completedConfig { return completedConfig{c} } -// New returns a new instance of CustomResources from the given config. -func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget) (*CustomResources, error) { +// New returns a new instance of CustomResourceDefinitions from the given config. +func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget) (*CustomResourceDefinitions, error) { genericServer, err := c.Config.GenericConfig.SkipComplete().New(genericapiserver.EmptyDelegate) // completion is done in Complete, no need for a second time if err != nil { return nil, err } - s := &CustomResources{ + s := &CustomResourceDefinitions{ GenericAPIServer: genericServer, } apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apiextensions.GroupName, registry, Scheme, metav1.ParameterCodec, Codecs) apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion v1alpha1storage := map[string]rest.Storage{} - v1alpha1storage["customresources"] = customresource.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter) + v1alpha1storage["customresourcedefinitions"] = customresourcedefinition.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap["v1alpha1"] = v1alpha1storage if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil { return nil, err } - customResourceClient, err := internalclientset.NewForConfig(s.GenericAPIServer.LoopbackClientConfig) + customResourceDefinitionClient, err := internalclientset.NewForConfig(s.GenericAPIServer.LoopbackClientConfig) if err != nil { return nil, err } - customResourceInformers := internalinformers.NewSharedInformerFactory(customResourceClient, 5*time.Minute) + customResourceDefinitionInformers := internalinformers.NewSharedInformerFactory(customResourceDefinitionClient, 5*time.Minute) delegateHandler := delegationTarget.UnprotectedHandler() if delegateHandler == nil { @@ -140,26 +140,26 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget) discovery: map[string]*discovery.APIGroupHandler{}, delegate: delegateHandler, } - customResourceHandler := NewCustomResourceHandler( + customResourceDefinitionHandler := NewCustomResourceDefinitionHandler( versionDiscoveryHandler, groupDiscoveryHandler, s.GenericAPIServer.RequestContextMapper(), - customResourceInformers.Apiextensions().InternalVersion().CustomResources().Lister(), + customResourceDefinitionInformers.Apiextensions().InternalVersion().CustomResourceDefinitions().Lister(), delegateHandler, - c.CustomResourceRESTOptionsGetter, + c.CustomResourceDefinitionRESTOptionsGetter, c.GenericConfig.AdmissionControl, ) - s.GenericAPIServer.Handler.PostGoRestfulMux.Handle("/apis", customResourceHandler) - s.GenericAPIServer.Handler.PostGoRestfulMux.HandlePrefix("/apis/", customResourceHandler) + s.GenericAPIServer.Handler.PostGoRestfulMux.Handle("/apis", customResourceDefinitionHandler) + s.GenericAPIServer.Handler.PostGoRestfulMux.HandlePrefix("/apis/", customResourceDefinitionHandler) - customResourceController := NewDiscoveryController(customResourceInformers.Apiextensions().InternalVersion().CustomResources(), versionDiscoveryHandler, groupDiscoveryHandler) + customResourceDefinitionController := NewDiscoveryController(customResourceDefinitionInformers.Apiextensions().InternalVersion().CustomResourceDefinitions(), versionDiscoveryHandler, groupDiscoveryHandler) s.GenericAPIServer.AddPostStartHook("start-apiextensions-informers", func(context genericapiserver.PostStartHookContext) error { - customResourceInformers.Start(context.StopCh) + customResourceDefinitionInformers.Start(context.StopCh) return nil }) s.GenericAPIServer.AddPostStartHook("start-apiextensions-controllers", func(context genericapiserver.PostStartHookContext) error { - go customResourceController.Run(context.StopCh) + go customResourceDefinitionController.Run(context.StopCh) return nil }) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_discovery_controller.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_discovery_controller.go index c3d87c58474..2dd808dd65e 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_discovery_controller.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_discovery_controller.go @@ -40,8 +40,8 @@ type DiscoveryController struct { versionHandler *versionDiscoveryHandler groupHandler *groupDiscoveryHandler - customResourceLister listers.CustomResourceLister - customResourcesSynced cache.InformerSynced + customResourceDefinitionLister listers.CustomResourceDefinitionLister + customResourceDefinitionsSynced cache.InformerSynced // To allow injection for testing. syncFn func(version schema.GroupVersion) error @@ -49,20 +49,20 @@ type DiscoveryController struct { queue workqueue.RateLimitingInterface } -func NewDiscoveryController(customResourceInformer informers.CustomResourceInformer, versionHandler *versionDiscoveryHandler, groupHandler *groupDiscoveryHandler) *DiscoveryController { +func NewDiscoveryController(customResourceDefinitionInformer informers.CustomResourceDefinitionInformer, versionHandler *versionDiscoveryHandler, groupHandler *groupDiscoveryHandler) *DiscoveryController { c := &DiscoveryController{ - versionHandler: versionHandler, - groupHandler: groupHandler, - customResourceLister: customResourceInformer.Lister(), - customResourcesSynced: customResourceInformer.Informer().HasSynced, + versionHandler: versionHandler, + groupHandler: groupHandler, + customResourceDefinitionLister: customResourceDefinitionInformer.Lister(), + customResourceDefinitionsSynced: customResourceDefinitionInformer.Informer().HasSynced, queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "DiscoveryController"), } - customResourceInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: c.addCustomResource, - UpdateFunc: c.updateCustomResource, - DeleteFunc: c.deleteCustomResource, + customResourceDefinitionInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: c.addCustomResourceDefinition, + UpdateFunc: c.updateCustomResourceDefinition, + DeleteFunc: c.deleteCustomResourceDefinition, }) c.syncFn = c.sync @@ -75,36 +75,36 @@ func (c *DiscoveryController) sync(version schema.GroupVersion) error { apiVersionsForDiscovery := []metav1.GroupVersionForDiscovery{} apiResourcesForDiscovery := []metav1.APIResource{} - customResources, err := c.customResourceLister.List(labels.Everything()) + customResourceDefinitions, err := c.customResourceDefinitionLister.List(labels.Everything()) if err != nil { return err } foundVersion := false foundGroup := false - for _, customResource := range customResources { + for _, customResourceDefinition := range customResourceDefinitions { // TODO add status checking - if customResource.Spec.Group != version.Group { + if customResourceDefinition.Spec.Group != version.Group { continue } foundGroup = true apiVersionsForDiscovery = append(apiVersionsForDiscovery, metav1.GroupVersionForDiscovery{ - GroupVersion: customResource.Spec.Group + "/" + customResource.Spec.Version, - Version: customResource.Spec.Version, + GroupVersion: customResourceDefinition.Spec.Group + "/" + customResourceDefinition.Spec.Version, + Version: customResourceDefinition.Spec.Version, }) - if customResource.Spec.Version != version.Version { + if customResourceDefinition.Spec.Version != version.Version { continue } foundVersion = true apiResourcesForDiscovery = append(apiResourcesForDiscovery, metav1.APIResource{ - Name: customResource.Spec.Names.Plural, - SingularName: customResource.Spec.Names.Singular, - Namespaced: customResource.Spec.Scope == apiextensions.NamespaceScoped, - Kind: customResource.Spec.Names.Kind, + Name: customResourceDefinition.Spec.Names.Plural, + SingularName: customResourceDefinition.Spec.Names.Singular, + Namespaced: customResourceDefinition.Spec.Scope == apiextensions.NamespaceScoped, + Kind: customResourceDefinition.Spec.Names.Kind, Verbs: metav1.Verbs([]string{"delete", "deletecollection", "get", "list", "patch", "create", "update", "watch"}), - ShortNames: customResource.Spec.Names.ShortNames, + ShortNames: customResourceDefinition.Spec.Names.ShortNames, }) } @@ -140,7 +140,7 @@ func (c *DiscoveryController) Run(stopCh <-chan struct{}) { glog.Infof("Starting DiscoveryController") - if !cache.WaitForCacheSync(stopCh, c.customResourcesSynced) { + if !cache.WaitForCacheSync(stopCh, c.customResourceDefinitionsSynced) { utilruntime.HandleError(fmt.Errorf("timed out waiting for caches to sync")) return } @@ -176,36 +176,36 @@ func (c *DiscoveryController) processNextWorkItem() bool { return true } -func (c *DiscoveryController) enqueue(obj *apiextensions.CustomResource) { +func (c *DiscoveryController) enqueue(obj *apiextensions.CustomResourceDefinition) { c.queue.Add(schema.GroupVersion{Group: obj.Spec.Group, Version: obj.Spec.Version}) } -func (c *DiscoveryController) addCustomResource(obj interface{}) { - castObj := obj.(*apiextensions.CustomResource) - glog.V(4).Infof("Adding customresource %s", castObj.Name) +func (c *DiscoveryController) addCustomResourceDefinition(obj interface{}) { + castObj := obj.(*apiextensions.CustomResourceDefinition) + glog.V(4).Infof("Adding customresourcedefinition %s", castObj.Name) c.enqueue(castObj) } -func (c *DiscoveryController) updateCustomResource(obj, _ interface{}) { - castObj := obj.(*apiextensions.CustomResource) - glog.V(4).Infof("Updating customresource %s", castObj.Name) +func (c *DiscoveryController) updateCustomResourceDefinition(obj, _ interface{}) { + castObj := obj.(*apiextensions.CustomResourceDefinition) + glog.V(4).Infof("Updating customresourcedefinition %s", castObj.Name) c.enqueue(castObj) } -func (c *DiscoveryController) deleteCustomResource(obj interface{}) { - castObj, ok := obj.(*apiextensions.CustomResource) +func (c *DiscoveryController) deleteCustomResourceDefinition(obj interface{}) { + castObj, ok := obj.(*apiextensions.CustomResourceDefinition) if !ok { tombstone, ok := obj.(cache.DeletedFinalStateUnknown) if !ok { glog.Errorf("Couldn't get object from tombstone %#v", obj) return } - castObj, ok = tombstone.Obj.(*apiextensions.CustomResource) + castObj, ok = tombstone.Obj.(*apiextensions.CustomResourceDefinition) if !ok { glog.Errorf("Tombstone contained object that is not expected %#v", obj) return } } - glog.V(4).Infof("Deleting customresource %q", castObj.Name) + glog.V(4).Infof("Deleting customresourcedefinition %q", castObj.Name) c.enqueue(castObj) } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_handler.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_handler.go index ce174df69c5..4a49df3664c 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_handler.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_handler.go @@ -44,61 +44,61 @@ import ( "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" listers "k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion" - "k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage" + "k8s.io/kube-apiextensions-server/pkg/registry/customresource" ) -// customResourceHandler serves the `/apis` endpoint. +// customResourceDefinitionHandler serves the `/apis` endpoint. // This is registered as a filter so that it never collides with any explictly registered endpoints -type customResourceHandler struct { +type customResourceDefinitionHandler struct { versionDiscoveryHandler *versionDiscoveryHandler groupDiscoveryHandler *groupDiscoveryHandler customStorageLock sync.Mutex - // customStorage contains a customResourceStorageMap + // customStorage contains a customResourceDefinitionStorageMap customStorage atomic.Value requestContextMapper apirequest.RequestContextMapper - customResourceLister listers.CustomResourceLister + customResourceDefinitionLister listers.CustomResourceDefinitionLister delegate http.Handler restOptionsGetter generic.RESTOptionsGetter admission admission.Interface } -// customResourceInfo stores enough information to serve the storage for the custom resource -type customResourceInfo struct { - storage *customresourcestorage.REST +// customResourceDefinitionInfo stores enough information to serve the storage for the custom resource +type customResourceDefinitionInfo struct { + storage *customresource.REST requestScope handlers.RequestScope } -// customResourceStorageMap goes from customresource to its storage -type customResourceStorageMap map[types.UID]*customResourceInfo +// customResourceDefinitionStorageMap goes from customresourcedefinition to its storage +type customResourceDefinitionStorageMap map[types.UID]*customResourceDefinitionInfo -func NewCustomResourceHandler( +func NewCustomResourceDefinitionHandler( versionDiscoveryHandler *versionDiscoveryHandler, groupDiscoveryHandler *groupDiscoveryHandler, requestContextMapper apirequest.RequestContextMapper, - customResourceLister listers.CustomResourceLister, + customResourceDefinitionLister listers.CustomResourceDefinitionLister, delegate http.Handler, restOptionsGetter generic.RESTOptionsGetter, - admission admission.Interface) *customResourceHandler { - ret := &customResourceHandler{ - versionDiscoveryHandler: versionDiscoveryHandler, - groupDiscoveryHandler: groupDiscoveryHandler, - customStorage: atomic.Value{}, - requestContextMapper: requestContextMapper, - customResourceLister: customResourceLister, - delegate: delegate, - restOptionsGetter: restOptionsGetter, - admission: admission, + admission admission.Interface) *customResourceDefinitionHandler { + ret := &customResourceDefinitionHandler{ + versionDiscoveryHandler: versionDiscoveryHandler, + groupDiscoveryHandler: groupDiscoveryHandler, + customStorage: atomic.Value{}, + requestContextMapper: requestContextMapper, + customResourceDefinitionLister: customResourceDefinitionLister, + delegate: delegate, + restOptionsGetter: restOptionsGetter, + admission: admission, } - ret.customStorage.Store(customResourceStorageMap{}) + ret.customStorage.Store(customResourceDefinitionStorageMap{}) return ret } -func (r *customResourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { +func (r *customResourceDefinitionHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { ctx, ok := r.requestContextMapper.Get(req) if !ok { // programmer error @@ -133,8 +133,8 @@ func (r *customResourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Reque return } - customResourceName := requestInfo.Resource + "." + requestInfo.APIGroup - customResource, err := r.customResourceLister.Get(customResourceName) + customResourceDefinitionName := requestInfo.Resource + "." + requestInfo.APIGroup + customResourceDefinition, err := r.customResourceDefinitionLister.Get(customResourceDefinitionName) if apierrors.IsNotFound(err) { r.delegate.ServeHTTP(w, req) return @@ -143,15 +143,15 @@ func (r *customResourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Reque http.Error(w, err.Error(), http.StatusInternalServerError) return } - if customResource.Spec.Version != requestInfo.APIVersion { + if customResourceDefinition.Spec.Version != requestInfo.APIVersion { r.delegate.ServeHTTP(w, req) return } // TODO this is the point to do the condition checks - customResourceInfo := r.getServingInfoFor(customResource) - storage := customResourceInfo.storage - requestScope := customResourceInfo.requestScope + customResourceDefinitionInfo := r.getServingInfoFor(customResourceDefinition) + storage := customResourceDefinitionInfo.storage + requestScope := customResourceDefinitionInfo.requestScope minRequestTimeout := 1 * time.Minute switch requestInfo.Verb { @@ -194,12 +194,12 @@ func (r *customResourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Reque } // removeDeadStorage removes REST storage that isn't being used -func (r *customResourceHandler) removeDeadStorage() { +func (r *customResourceDefinitionHandler) removeDeadStorage() { // these don't have to be live. A snapshot is fine // if we wrongly delete, that's ok. The rest storage will be recreated on the next request // if we wrongly miss one, that's ok. We'll get it next time - storageMap := r.customStorage.Load().(customResourceStorageMap) - allCustomResources, err := r.customResourceLister.List(labels.Everything()) + storageMap := r.customStorage.Load().(customResourceDefinitionStorageMap) + allCustomResourceDefinitions, err := r.customResourceDefinitionLister.List(labels.Everything()) if err != nil { utilruntime.HandleError(err) return @@ -207,8 +207,8 @@ func (r *customResourceHandler) removeDeadStorage() { for uid := range storageMap { found := false - for _, customResource := range allCustomResources { - if customResource.UID == uid { + for _, customResourceDefinition := range allCustomResourceDefinitions { + if customResourceDefinition.UID == uid { found = true break } @@ -224,9 +224,9 @@ func (r *customResourceHandler) removeDeadStorage() { r.customStorage.Store(storageMap) } -func (r *customResourceHandler) getServingInfoFor(customResource *apiextensions.CustomResource) *customResourceInfo { - storageMap := r.customStorage.Load().(customResourceStorageMap) - ret, ok := storageMap[customResource.UID] +func (r *customResourceDefinitionHandler) getServingInfoFor(customResourceDefinition *apiextensions.CustomResourceDefinition) *customResourceDefinitionInfo { + storageMap := r.customStorage.Load().(customResourceDefinitionStorageMap) + ret, ok := storageMap[customResourceDefinition.UID] if ok { return ret } @@ -234,21 +234,21 @@ func (r *customResourceHandler) getServingInfoFor(customResource *apiextensions. r.customStorageLock.Lock() defer r.customStorageLock.Unlock() - ret, ok = storageMap[customResource.UID] + ret, ok = storageMap[customResourceDefinition.UID] if ok { return ret } - storage := customresourcestorage.NewREST( - schema.GroupResource{Group: customResource.Spec.Group, Resource: customResource.Spec.Names.Plural}, - schema.GroupVersionKind{Group: customResource.Spec.Group, Version: customResource.Spec.Version, Kind: customResource.Spec.Names.ListKind}, + storage := customresource.NewREST( + schema.GroupResource{Group: customResourceDefinition.Spec.Group, Resource: customResourceDefinition.Spec.Names.Plural}, + schema.GroupVersionKind{Group: customResourceDefinition.Spec.Group, Version: customResourceDefinition.Spec.Version, Kind: customResourceDefinition.Spec.Names.ListKind}, UnstructuredCopier{}, - customresourcestorage.NewStrategy(discovery.NewUnstructuredObjectTyper(nil), customResource.Spec.Scope == apiextensions.NamespaceScoped), + customresource.NewStrategy(discovery.NewUnstructuredObjectTyper(nil), customResourceDefinition.Spec.Scope == apiextensions.NamespaceScoped), r.restOptionsGetter, ) parameterScheme := runtime.NewScheme() - parameterScheme.AddUnversionedTypes(schema.GroupVersion{Group: customResource.Spec.Group, Version: customResource.Spec.Version}, + parameterScheme.AddUnversionedTypes(schema.GroupVersion{Group: customResourceDefinition.Spec.Group, Version: customResourceDefinition.Spec.Version}, &metav1.ListOptions{}, &metav1.ExportOptions{}, &metav1.GetOptions{}, @@ -264,7 +264,7 @@ func (r *customResourceHandler) getServingInfoFor(customResource *apiextensions. return ret }, SelfLinker: meta.NewAccessor(), - ClusterScoped: customResource.Spec.Scope == apiextensions.ClusterScoped, + ClusterScoped: customResourceDefinition.Spec.Scope == apiextensions.ClusterScoped, }, ContextFunc: func(req *http.Request) apirequest.Context { ret, _ := r.requestContextMapper.Get(req) @@ -281,18 +281,18 @@ func (r *customResourceHandler) getServingInfoFor(customResource *apiextensions. Typer: discovery.NewUnstructuredObjectTyper(nil), UnsafeConvertor: unstructured.UnstructuredObjectConverter{}, - Resource: schema.GroupVersionResource{Group: customResource.Spec.Group, Version: customResource.Spec.Version, Resource: customResource.Spec.Names.Plural}, - Kind: schema.GroupVersionKind{Group: customResource.Spec.Group, Version: customResource.Spec.Version, Kind: customResource.Spec.Names.Kind}, + Resource: schema.GroupVersionResource{Group: customResourceDefinition.Spec.Group, Version: customResourceDefinition.Spec.Version, Resource: customResourceDefinition.Spec.Names.Plural}, + Kind: schema.GroupVersionKind{Group: customResourceDefinition.Spec.Group, Version: customResourceDefinition.Spec.Version, Kind: customResourceDefinition.Spec.Names.Kind}, Subresource: "", MetaGroupVersion: metav1.SchemeGroupVersion, } - ret = &customResourceInfo{ + ret = &customResourceDefinitionInfo{ storage: storage, requestScope: requestScope, } - storageMap[customResource.UID] = ret + storageMap[customResourceDefinition.UID] = ret r.customStorage.Store(storageMap) return ret } @@ -349,7 +349,7 @@ type UnstructuredDefaulter struct{} func (UnstructuredDefaulter) Default(in runtime.Object) {} -type CustomResourceRESTOptionsGetter struct { +type CustomResourceDefinitionRESTOptionsGetter struct { StorageConfig storagebackend.Config StoragePrefix string EnableWatchCache bool @@ -358,7 +358,7 @@ type CustomResourceRESTOptionsGetter struct { DeleteCollectionWorkers int } -func (t CustomResourceRESTOptionsGetter) GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) { +func (t CustomResourceDefinitionRESTOptionsGetter) GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) { ret := generic.RESTOptions{ StorageConfig: &t.StorageConfig, Decorator: generic.UndecoratedStorage, diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/BUILD index 4cab145a11b..4e6c23682c2 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/BUILD @@ -11,7 +11,7 @@ go_library( name = "go_default_library", srcs = [ "apiextensions_client.go", - "customresource.go", + "customresourcedefinition.go", "doc.go", "generated_expansion.go", ], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/apiextensions_client.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/apiextensions_client.go index cda01ddda19..697faee2919 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/apiextensions_client.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/apiextensions_client.go @@ -25,7 +25,7 @@ import ( type ApiextensionsV1alpha1Interface interface { RESTClient() rest.Interface - CustomResourcesGetter + CustomResourceDefinitionsGetter } // ApiextensionsV1alpha1Client is used to interact with features provided by the apiextensions.k8s.io group. @@ -33,8 +33,8 @@ type ApiextensionsV1alpha1Client struct { restClient rest.Interface } -func (c *ApiextensionsV1alpha1Client) CustomResources() CustomResourceInterface { - return newCustomResources(c) +func (c *ApiextensionsV1alpha1Client) CustomResourceDefinitions() CustomResourceDefinitionInterface { + return newCustomResourceDefinitions(c) } // NewForConfig creates a new ApiextensionsV1alpha1Client for the given config. diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresource.go deleted file mode 100644 index c9def39085e..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresource.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright 2017 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. -*/ - -package v1alpha1 - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" - scheme "k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/scheme" -) - -// CustomResourcesGetter has a method to return a CustomResourceInterface. -// A group's client should implement this interface. -type CustomResourcesGetter interface { - CustomResources() CustomResourceInterface -} - -// CustomResourceInterface has methods to work with CustomResource resources. -type CustomResourceInterface interface { - Create(*v1alpha1.CustomResource) (*v1alpha1.CustomResource, error) - Update(*v1alpha1.CustomResource) (*v1alpha1.CustomResource, error) - UpdateStatus(*v1alpha1.CustomResource) (*v1alpha1.CustomResource, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1alpha1.CustomResource, error) - List(opts v1.ListOptions) (*v1alpha1.CustomResourceList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResource, err error) - CustomResourceExpansion -} - -// customResources implements CustomResourceInterface -type customResources struct { - client rest.Interface -} - -// newCustomResources returns a CustomResources -func newCustomResources(c *ApiextensionsV1alpha1Client) *customResources { - return &customResources{ - client: c.RESTClient(), - } -} - -// Create takes the representation of a customResource and creates it. Returns the server's representation of the customResource, and an error, if there is any. -func (c *customResources) Create(customResource *v1alpha1.CustomResource) (result *v1alpha1.CustomResource, err error) { - result = &v1alpha1.CustomResource{} - err = c.client.Post(). - Resource("customresources"). - Body(customResource). - Do(). - Into(result) - return -} - -// Update takes the representation of a customResource and updates it. Returns the server's representation of the customResource, and an error, if there is any. -func (c *customResources) Update(customResource *v1alpha1.CustomResource) (result *v1alpha1.CustomResource, err error) { - result = &v1alpha1.CustomResource{} - err = c.client.Put(). - Resource("customresources"). - Name(customResource.Name). - Body(customResource). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclientstatus=false comment above the type to avoid generating UpdateStatus(). - -func (c *customResources) UpdateStatus(customResource *v1alpha1.CustomResource) (result *v1alpha1.CustomResource, err error) { - result = &v1alpha1.CustomResource{} - err = c.client.Put(). - Resource("customresources"). - Name(customResource.Name). - SubResource("status"). - Body(customResource). - Do(). - Into(result) - return -} - -// Delete takes name of the customResource and deletes it. Returns an error if one occurs. -func (c *customResources) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("customresources"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *customResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("customresources"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Get takes name of the customResource, and returns the corresponding customResource object, and an error if there is any. -func (c *customResources) Get(name string, options v1.GetOptions) (result *v1alpha1.CustomResource, err error) { - result = &v1alpha1.CustomResource{} - err = c.client.Get(). - Resource("customresources"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of CustomResources that match those selectors. -func (c *customResources) List(opts v1.ListOptions) (result *v1alpha1.CustomResourceList, err error) { - result = &v1alpha1.CustomResourceList{} - err = c.client.Get(). - Resource("customresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested customResources. -func (c *customResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("customresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Patch applies the patch and returns the patched customResource. -func (c *customResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResource, err error) { - result = &v1alpha1.CustomResource{} - err = c.client.Patch(pt). - Resource("customresources"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresourcedefinition.go new file mode 100644 index 00000000000..ea791adbe76 --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/customresourcedefinition.go @@ -0,0 +1,161 @@ +/* +Copyright 2017 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. +*/ + +package v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" + scheme "k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/scheme" +) + +// CustomResourceDefinitionsGetter has a method to return a CustomResourceDefinitionInterface. +// A group's client should implement this interface. +type CustomResourceDefinitionsGetter interface { + CustomResourceDefinitions() CustomResourceDefinitionInterface +} + +// CustomResourceDefinitionInterface has methods to work with CustomResourceDefinition resources. +type CustomResourceDefinitionInterface interface { + Create(*v1alpha1.CustomResourceDefinition) (*v1alpha1.CustomResourceDefinition, error) + Update(*v1alpha1.CustomResourceDefinition) (*v1alpha1.CustomResourceDefinition, error) + UpdateStatus(*v1alpha1.CustomResourceDefinition) (*v1alpha1.CustomResourceDefinition, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.CustomResourceDefinition, error) + List(opts v1.ListOptions) (*v1alpha1.CustomResourceDefinitionList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResourceDefinition, err error) + CustomResourceDefinitionExpansion +} + +// customResourceDefinitions implements CustomResourceDefinitionInterface +type customResourceDefinitions struct { + client rest.Interface +} + +// newCustomResourceDefinitions returns a CustomResourceDefinitions +func newCustomResourceDefinitions(c *ApiextensionsV1alpha1Client) *customResourceDefinitions { + return &customResourceDefinitions{ + client: c.RESTClient(), + } +} + +// Create takes the representation of a customResourceDefinition and creates it. Returns the server's representation of the customResourceDefinition, and an error, if there is any. +func (c *customResourceDefinitions) Create(customResourceDefinition *v1alpha1.CustomResourceDefinition) (result *v1alpha1.CustomResourceDefinition, err error) { + result = &v1alpha1.CustomResourceDefinition{} + err = c.client.Post(). + Resource("customresourcedefinitions"). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// Update takes the representation of a customResourceDefinition and updates it. Returns the server's representation of the customResourceDefinition, and an error, if there is any. +func (c *customResourceDefinitions) Update(customResourceDefinition *v1alpha1.CustomResourceDefinition) (result *v1alpha1.CustomResourceDefinition, err error) { + result = &v1alpha1.CustomResourceDefinition{} + err = c.client.Put(). + Resource("customresourcedefinitions"). + Name(customResourceDefinition.Name). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclientstatus=false comment above the type to avoid generating UpdateStatus(). + +func (c *customResourceDefinitions) UpdateStatus(customResourceDefinition *v1alpha1.CustomResourceDefinition) (result *v1alpha1.CustomResourceDefinition, err error) { + result = &v1alpha1.CustomResourceDefinition{} + err = c.client.Put(). + Resource("customresourcedefinitions"). + Name(customResourceDefinition.Name). + SubResource("status"). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// Delete takes name of the customResourceDefinition and deletes it. Returns an error if one occurs. +func (c *customResourceDefinitions) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("customresourcedefinitions"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *customResourceDefinitions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("customresourcedefinitions"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the customResourceDefinition, and returns the corresponding customResourceDefinition object, and an error if there is any. +func (c *customResourceDefinitions) Get(name string, options v1.GetOptions) (result *v1alpha1.CustomResourceDefinition, err error) { + result = &v1alpha1.CustomResourceDefinition{} + err = c.client.Get(). + Resource("customresourcedefinitions"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of CustomResourceDefinitions that match those selectors. +func (c *customResourceDefinitions) List(opts v1.ListOptions) (result *v1alpha1.CustomResourceDefinitionList, err error) { + result = &v1alpha1.CustomResourceDefinitionList{} + err = c.client.Get(). + Resource("customresourcedefinitions"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested customResourceDefinitions. +func (c *customResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("customresourcedefinitions"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Patch applies the patch and returns the patched customResourceDefinition. +func (c *customResourceDefinitions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResourceDefinition, err error) { + result = &v1alpha1.CustomResourceDefinition{} + err = c.client.Patch(pt). + Resource("customresourcedefinitions"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/BUILD index 1d076fdd6b3..c2f776aba68 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/BUILD @@ -12,7 +12,7 @@ go_library( srcs = [ "doc.go", "fake_apiextensions_client.go", - "fake_customresource.go", + "fake_customresourcedefinition.go", ], tags = ["automanaged"], deps = [ diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_apiextensions_client.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_apiextensions_client.go index 34ccffa34bd..5745a446577 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_apiextensions_client.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_apiextensions_client.go @@ -26,8 +26,8 @@ type FakeApiextensionsV1alpha1 struct { *testing.Fake } -func (c *FakeApiextensionsV1alpha1) CustomResources() v1alpha1.CustomResourceInterface { - return &FakeCustomResources{c} +func (c *FakeApiextensionsV1alpha1) CustomResourceDefinitions() v1alpha1.CustomResourceDefinitionInterface { + return &FakeCustomResourceDefinitions{c} } // RESTClient returns a RESTClient that is used to communicate diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresource.go deleted file mode 100644 index c3ec9ca19e8..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresource.go +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2017 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. -*/ - -package fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" -) - -// FakeCustomResources implements CustomResourceInterface -type FakeCustomResources struct { - Fake *FakeApiextensionsV1alpha1 -} - -var customresourcesResource = schema.GroupVersionResource{Group: "apiextensions.k8s.io", Version: "v1alpha1", Resource: "customresources"} - -var customresourcesKind = schema.GroupVersionKind{Group: "apiextensions.k8s.io", Version: "v1alpha1", Kind: "CustomResource"} - -func (c *FakeCustomResources) Create(customResource *v1alpha1.CustomResource) (result *v1alpha1.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(customresourcesResource, customResource), &v1alpha1.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.CustomResource), err -} - -func (c *FakeCustomResources) Update(customResource *v1alpha1.CustomResource) (result *v1alpha1.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(customresourcesResource, customResource), &v1alpha1.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.CustomResource), err -} - -func (c *FakeCustomResources) UpdateStatus(customResource *v1alpha1.CustomResource) (*v1alpha1.CustomResource, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(customresourcesResource, "status", customResource), &v1alpha1.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.CustomResource), err -} - -func (c *FakeCustomResources) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(customresourcesResource, name), &v1alpha1.CustomResource{}) - return err -} - -func (c *FakeCustomResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(customresourcesResource, listOptions) - - _, err := c.Fake.Invokes(action, &v1alpha1.CustomResourceList{}) - return err -} - -func (c *FakeCustomResources) Get(name string, options v1.GetOptions) (result *v1alpha1.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(customresourcesResource, name), &v1alpha1.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.CustomResource), err -} - -func (c *FakeCustomResources) List(opts v1.ListOptions) (result *v1alpha1.CustomResourceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(customresourcesResource, customresourcesKind, opts), &v1alpha1.CustomResourceList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.CustomResourceList{} - for _, item := range obj.(*v1alpha1.CustomResourceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested customResources. -func (c *FakeCustomResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(customresourcesResource, opts)) -} - -// Patch applies the patch and returns the patched customResource. -func (c *FakeCustomResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(customresourcesResource, name, data, subresources...), &v1alpha1.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.CustomResource), err -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresourcedefinition.go new file mode 100644 index 00000000000..6a8c856c0b9 --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/fake/fake_customresourcedefinition.go @@ -0,0 +1,121 @@ +/* +Copyright 2017 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. +*/ + +package fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" +) + +// FakeCustomResourceDefinitions implements CustomResourceDefinitionInterface +type FakeCustomResourceDefinitions struct { + Fake *FakeApiextensionsV1alpha1 +} + +var customresourcedefinitionsResource = schema.GroupVersionResource{Group: "apiextensions.k8s.io", Version: "v1alpha1", Resource: "customresourcedefinitions"} + +var customresourcedefinitionsKind = schema.GroupVersionKind{Group: "apiextensions.k8s.io", Version: "v1alpha1", Kind: "CustomResourceDefinition"} + +func (c *FakeCustomResourceDefinitions) Create(customResourceDefinition *v1alpha1.CustomResourceDefinition) (result *v1alpha1.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(customresourcedefinitionsResource, customResourceDefinition), &v1alpha1.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) Update(customResourceDefinition *v1alpha1.CustomResourceDefinition) (result *v1alpha1.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(customresourcedefinitionsResource, customResourceDefinition), &v1alpha1.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) UpdateStatus(customResourceDefinition *v1alpha1.CustomResourceDefinition) (*v1alpha1.CustomResourceDefinition, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(customresourcedefinitionsResource, "status", customResourceDefinition), &v1alpha1.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(customresourcedefinitionsResource, name), &v1alpha1.CustomResourceDefinition{}) + return err +} + +func (c *FakeCustomResourceDefinitions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(customresourcedefinitionsResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.CustomResourceDefinitionList{}) + return err +} + +func (c *FakeCustomResourceDefinitions) Get(name string, options v1.GetOptions) (result *v1alpha1.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(customresourcedefinitionsResource, name), &v1alpha1.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) List(opts v1.ListOptions) (result *v1alpha1.CustomResourceDefinitionList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(customresourcedefinitionsResource, customresourcedefinitionsKind, opts), &v1alpha1.CustomResourceDefinitionList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.CustomResourceDefinitionList{} + for _, item := range obj.(*v1alpha1.CustomResourceDefinitionList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested customResourceDefinitions. +func (c *FakeCustomResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(customresourcedefinitionsResource, opts)) +} + +// Patch applies the patch and returns the patched customResourceDefinition. +func (c *FakeCustomResourceDefinitions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(customresourcedefinitionsResource, name, data, subresources...), &v1alpha1.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CustomResourceDefinition), err +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/generated_expansion.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/generated_expansion.go index 80dc71dbebe..5a6d09982bc 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/generated_expansion.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset/typed/apiextensions/v1alpha1/generated_expansion.go @@ -16,4 +16,4 @@ limitations under the License. package v1alpha1 -type CustomResourceExpansion interface{} +type CustomResourceDefinitionExpansion interface{} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD index ba061c8b9d8..84f3a99299c 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD @@ -11,7 +11,7 @@ go_library( name = "go_default_library", srcs = [ "apiextensions_client.go", - "customresource.go", + "customresourcedefinition.go", "doc.go", "generated_expansion.go", ], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/apiextensions_client.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/apiextensions_client.go index 9aa9db75d26..6172593c150 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/apiextensions_client.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/apiextensions_client.go @@ -23,7 +23,7 @@ import ( type ApiextensionsInterface interface { RESTClient() rest.Interface - CustomResourcesGetter + CustomResourceDefinitionsGetter } // ApiextensionsClient is used to interact with features provided by the apiextensions.k8s.io group. @@ -31,8 +31,8 @@ type ApiextensionsClient struct { restClient rest.Interface } -func (c *ApiextensionsClient) CustomResources() CustomResourceInterface { - return newCustomResources(c) +func (c *ApiextensionsClient) CustomResourceDefinitions() CustomResourceDefinitionInterface { + return newCustomResourceDefinitions(c) } // NewForConfig creates a new ApiextensionsClient for the given config. diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresource.go deleted file mode 100644 index e80692add60..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresource.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright 2017 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. -*/ - -package internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" - scheme "k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/scheme" -) - -// CustomResourcesGetter has a method to return a CustomResourceInterface. -// A group's client should implement this interface. -type CustomResourcesGetter interface { - CustomResources() CustomResourceInterface -} - -// CustomResourceInterface has methods to work with CustomResource resources. -type CustomResourceInterface interface { - Create(*apiextensions.CustomResource) (*apiextensions.CustomResource, error) - Update(*apiextensions.CustomResource) (*apiextensions.CustomResource, error) - UpdateStatus(*apiextensions.CustomResource) (*apiextensions.CustomResource, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*apiextensions.CustomResource, error) - List(opts v1.ListOptions) (*apiextensions.CustomResourceList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResource, err error) - CustomResourceExpansion -} - -// customResources implements CustomResourceInterface -type customResources struct { - client rest.Interface -} - -// newCustomResources returns a CustomResources -func newCustomResources(c *ApiextensionsClient) *customResources { - return &customResources{ - client: c.RESTClient(), - } -} - -// Create takes the representation of a customResource and creates it. Returns the server's representation of the customResource, and an error, if there is any. -func (c *customResources) Create(customResource *apiextensions.CustomResource) (result *apiextensions.CustomResource, err error) { - result = &apiextensions.CustomResource{} - err = c.client.Post(). - Resource("customresources"). - Body(customResource). - Do(). - Into(result) - return -} - -// Update takes the representation of a customResource and updates it. Returns the server's representation of the customResource, and an error, if there is any. -func (c *customResources) Update(customResource *apiextensions.CustomResource) (result *apiextensions.CustomResource, err error) { - result = &apiextensions.CustomResource{} - err = c.client.Put(). - Resource("customresources"). - Name(customResource.Name). - Body(customResource). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclientstatus=false comment above the type to avoid generating UpdateStatus(). - -func (c *customResources) UpdateStatus(customResource *apiextensions.CustomResource) (result *apiextensions.CustomResource, err error) { - result = &apiextensions.CustomResource{} - err = c.client.Put(). - Resource("customresources"). - Name(customResource.Name). - SubResource("status"). - Body(customResource). - Do(). - Into(result) - return -} - -// Delete takes name of the customResource and deletes it. Returns an error if one occurs. -func (c *customResources) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("customresources"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *customResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("customresources"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Get takes name of the customResource, and returns the corresponding customResource object, and an error if there is any. -func (c *customResources) Get(name string, options v1.GetOptions) (result *apiextensions.CustomResource, err error) { - result = &apiextensions.CustomResource{} - err = c.client.Get(). - Resource("customresources"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of CustomResources that match those selectors. -func (c *customResources) List(opts v1.ListOptions) (result *apiextensions.CustomResourceList, err error) { - result = &apiextensions.CustomResourceList{} - err = c.client.Get(). - Resource("customresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested customResources. -func (c *customResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("customresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Patch applies the patch and returns the patched customResource. -func (c *customResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResource, err error) { - result = &apiextensions.CustomResource{} - err = c.client.Patch(pt). - Resource("customresources"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresourcedefinition.go new file mode 100644 index 00000000000..f2dcacb64e0 --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/customresourcedefinition.go @@ -0,0 +1,161 @@ +/* +Copyright 2017 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. +*/ + +package internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" + scheme "k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/scheme" +) + +// CustomResourceDefinitionsGetter has a method to return a CustomResourceDefinitionInterface. +// A group's client should implement this interface. +type CustomResourceDefinitionsGetter interface { + CustomResourceDefinitions() CustomResourceDefinitionInterface +} + +// CustomResourceDefinitionInterface has methods to work with CustomResourceDefinition resources. +type CustomResourceDefinitionInterface interface { + Create(*apiextensions.CustomResourceDefinition) (*apiextensions.CustomResourceDefinition, error) + Update(*apiextensions.CustomResourceDefinition) (*apiextensions.CustomResourceDefinition, error) + UpdateStatus(*apiextensions.CustomResourceDefinition) (*apiextensions.CustomResourceDefinition, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*apiextensions.CustomResourceDefinition, error) + List(opts v1.ListOptions) (*apiextensions.CustomResourceDefinitionList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResourceDefinition, err error) + CustomResourceDefinitionExpansion +} + +// customResourceDefinitions implements CustomResourceDefinitionInterface +type customResourceDefinitions struct { + client rest.Interface +} + +// newCustomResourceDefinitions returns a CustomResourceDefinitions +func newCustomResourceDefinitions(c *ApiextensionsClient) *customResourceDefinitions { + return &customResourceDefinitions{ + client: c.RESTClient(), + } +} + +// Create takes the representation of a customResourceDefinition and creates it. Returns the server's representation of the customResourceDefinition, and an error, if there is any. +func (c *customResourceDefinitions) Create(customResourceDefinition *apiextensions.CustomResourceDefinition) (result *apiextensions.CustomResourceDefinition, err error) { + result = &apiextensions.CustomResourceDefinition{} + err = c.client.Post(). + Resource("customresourcedefinitions"). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// Update takes the representation of a customResourceDefinition and updates it. Returns the server's representation of the customResourceDefinition, and an error, if there is any. +func (c *customResourceDefinitions) Update(customResourceDefinition *apiextensions.CustomResourceDefinition) (result *apiextensions.CustomResourceDefinition, err error) { + result = &apiextensions.CustomResourceDefinition{} + err = c.client.Put(). + Resource("customresourcedefinitions"). + Name(customResourceDefinition.Name). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclientstatus=false comment above the type to avoid generating UpdateStatus(). + +func (c *customResourceDefinitions) UpdateStatus(customResourceDefinition *apiextensions.CustomResourceDefinition) (result *apiextensions.CustomResourceDefinition, err error) { + result = &apiextensions.CustomResourceDefinition{} + err = c.client.Put(). + Resource("customresourcedefinitions"). + Name(customResourceDefinition.Name). + SubResource("status"). + Body(customResourceDefinition). + Do(). + Into(result) + return +} + +// Delete takes name of the customResourceDefinition and deletes it. Returns an error if one occurs. +func (c *customResourceDefinitions) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("customresourcedefinitions"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *customResourceDefinitions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("customresourcedefinitions"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the customResourceDefinition, and returns the corresponding customResourceDefinition object, and an error if there is any. +func (c *customResourceDefinitions) Get(name string, options v1.GetOptions) (result *apiextensions.CustomResourceDefinition, err error) { + result = &apiextensions.CustomResourceDefinition{} + err = c.client.Get(). + Resource("customresourcedefinitions"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of CustomResourceDefinitions that match those selectors. +func (c *customResourceDefinitions) List(opts v1.ListOptions) (result *apiextensions.CustomResourceDefinitionList, err error) { + result = &apiextensions.CustomResourceDefinitionList{} + err = c.client.Get(). + Resource("customresourcedefinitions"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested customResourceDefinitions. +func (c *customResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("customresourcedefinitions"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Patch applies the patch and returns the patched customResourceDefinition. +func (c *customResourceDefinitions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResourceDefinition, err error) { + result = &apiextensions.CustomResourceDefinition{} + err = c.client.Patch(pt). + Resource("customresourcedefinitions"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD index e924ebcbbe7..070c4458f5f 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD @@ -12,7 +12,7 @@ go_library( srcs = [ "doc.go", "fake_apiextensions_client.go", - "fake_customresource.go", + "fake_customresourcedefinition.go", ], tags = ["automanaged"], deps = [ diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_apiextensions_client.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_apiextensions_client.go index ed1b7acc36c..44d2629baf7 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_apiextensions_client.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_apiextensions_client.go @@ -26,8 +26,8 @@ type FakeApiextensions struct { *testing.Fake } -func (c *FakeApiextensions) CustomResources() internalversion.CustomResourceInterface { - return &FakeCustomResources{c} +func (c *FakeApiextensions) CustomResourceDefinitions() internalversion.CustomResourceDefinitionInterface { + return &FakeCustomResourceDefinitions{c} } // RESTClient returns a RESTClient that is used to communicate diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresource.go deleted file mode 100644 index 82ac032338c..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresource.go +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2017 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. -*/ - -package fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" -) - -// FakeCustomResources implements CustomResourceInterface -type FakeCustomResources struct { - Fake *FakeApiextensions -} - -var customresourcesResource = schema.GroupVersionResource{Group: "apiextensions.k8s.io", Version: "", Resource: "customresources"} - -var customresourcesKind = schema.GroupVersionKind{Group: "apiextensions.k8s.io", Version: "", Kind: "CustomResource"} - -func (c *FakeCustomResources) Create(customResource *apiextensions.CustomResource) (result *apiextensions.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(customresourcesResource, customResource), &apiextensions.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*apiextensions.CustomResource), err -} - -func (c *FakeCustomResources) Update(customResource *apiextensions.CustomResource) (result *apiextensions.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(customresourcesResource, customResource), &apiextensions.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*apiextensions.CustomResource), err -} - -func (c *FakeCustomResources) UpdateStatus(customResource *apiextensions.CustomResource) (*apiextensions.CustomResource, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(customresourcesResource, "status", customResource), &apiextensions.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*apiextensions.CustomResource), err -} - -func (c *FakeCustomResources) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(customresourcesResource, name), &apiextensions.CustomResource{}) - return err -} - -func (c *FakeCustomResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(customresourcesResource, listOptions) - - _, err := c.Fake.Invokes(action, &apiextensions.CustomResourceList{}) - return err -} - -func (c *FakeCustomResources) Get(name string, options v1.GetOptions) (result *apiextensions.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(customresourcesResource, name), &apiextensions.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*apiextensions.CustomResource), err -} - -func (c *FakeCustomResources) List(opts v1.ListOptions) (result *apiextensions.CustomResourceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(customresourcesResource, customresourcesKind, opts), &apiextensions.CustomResourceList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &apiextensions.CustomResourceList{} - for _, item := range obj.(*apiextensions.CustomResourceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested customResources. -func (c *FakeCustomResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(customresourcesResource, opts)) -} - -// Patch applies the patch and returns the patched customResource. -func (c *FakeCustomResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(customresourcesResource, name, data, subresources...), &apiextensions.CustomResource{}) - if obj == nil { - return nil, err - } - return obj.(*apiextensions.CustomResource), err -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresourcedefinition.go new file mode 100644 index 00000000000..3194245a3dd --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/fake_customresourcedefinition.go @@ -0,0 +1,121 @@ +/* +Copyright 2017 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. +*/ + +package fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" +) + +// FakeCustomResourceDefinitions implements CustomResourceDefinitionInterface +type FakeCustomResourceDefinitions struct { + Fake *FakeApiextensions +} + +var customresourcedefinitionsResource = schema.GroupVersionResource{Group: "apiextensions.k8s.io", Version: "", Resource: "customresourcedefinitions"} + +var customresourcedefinitionsKind = schema.GroupVersionKind{Group: "apiextensions.k8s.io", Version: "", Kind: "CustomResourceDefinition"} + +func (c *FakeCustomResourceDefinitions) Create(customResourceDefinition *apiextensions.CustomResourceDefinition) (result *apiextensions.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(customresourcedefinitionsResource, customResourceDefinition), &apiextensions.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*apiextensions.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) Update(customResourceDefinition *apiextensions.CustomResourceDefinition) (result *apiextensions.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(customresourcedefinitionsResource, customResourceDefinition), &apiextensions.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*apiextensions.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) UpdateStatus(customResourceDefinition *apiextensions.CustomResourceDefinition) (*apiextensions.CustomResourceDefinition, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(customresourcedefinitionsResource, "status", customResourceDefinition), &apiextensions.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*apiextensions.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(customresourcedefinitionsResource, name), &apiextensions.CustomResourceDefinition{}) + return err +} + +func (c *FakeCustomResourceDefinitions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(customresourcedefinitionsResource, listOptions) + + _, err := c.Fake.Invokes(action, &apiextensions.CustomResourceDefinitionList{}) + return err +} + +func (c *FakeCustomResourceDefinitions) Get(name string, options v1.GetOptions) (result *apiextensions.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(customresourcedefinitionsResource, name), &apiextensions.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*apiextensions.CustomResourceDefinition), err +} + +func (c *FakeCustomResourceDefinitions) List(opts v1.ListOptions) (result *apiextensions.CustomResourceDefinitionList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(customresourcedefinitionsResource, customresourcedefinitionsKind, opts), &apiextensions.CustomResourceDefinitionList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &apiextensions.CustomResourceDefinitionList{} + for _, item := range obj.(*apiextensions.CustomResourceDefinitionList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested customResourceDefinitions. +func (c *FakeCustomResourceDefinitions) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(customresourcedefinitionsResource, opts)) +} + +// Patch applies the patch and returns the patched customResourceDefinition. +func (c *FakeCustomResourceDefinitions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apiextensions.CustomResourceDefinition, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(customresourcedefinitionsResource, name, data, subresources...), &apiextensions.CustomResourceDefinition{}) + if obj == nil { + return nil, err + } + return obj.(*apiextensions.CustomResourceDefinition), err +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/generated_expansion.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/generated_expansion.go index 2e5a2f33442..b1721b0d04f 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/generated_expansion.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/generated_expansion.go @@ -16,4 +16,4 @@ limitations under the License. package internalversion -type CustomResourceExpansion interface{} +type CustomResourceDefinitionExpansion interface{} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/BUILD index d593a123da6..2724cf7f055 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/BUILD @@ -10,7 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ - "customresource.go", + "customresourcedefinition.go", "interface.go", ], tags = ["automanaged"], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresourcedefinition.go similarity index 65% rename from staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresource.go rename to staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresourcedefinition.go index 31c91513342..c81a5c2e129 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresource.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/customresourcedefinition.go @@ -30,28 +30,28 @@ import ( time "time" ) -// CustomResourceInformer provides access to a shared informer and lister for -// CustomResources. -type CustomResourceInformer interface { +// CustomResourceDefinitionInformer provides access to a shared informer and lister for +// CustomResourceDefinitions. +type CustomResourceDefinitionInformer interface { Informer() cache.SharedIndexInformer - Lister() v1alpha1.CustomResourceLister + Lister() v1alpha1.CustomResourceDefinitionLister } -type customResourceInformer struct { +type customResourceDefinitionInformer struct { factory internalinterfaces.SharedInformerFactory } -func newCustomResourceInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { +func newCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { sharedIndexInformer := cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.ApiextensionsV1alpha1().CustomResources().List(options) + return client.ApiextensionsV1alpha1().CustomResourceDefinitions().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.ApiextensionsV1alpha1().CustomResources().Watch(options) + return client.ApiextensionsV1alpha1().CustomResourceDefinitions().Watch(options) }, }, - &apiextensions_v1alpha1.CustomResource{}, + &apiextensions_v1alpha1.CustomResourceDefinition{}, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, ) @@ -59,10 +59,10 @@ func newCustomResourceInformer(client clientset.Interface, resyncPeriod time.Dur return sharedIndexInformer } -func (f *customResourceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions_v1alpha1.CustomResource{}, newCustomResourceInformer) +func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apiextensions_v1alpha1.CustomResourceDefinition{}, newCustomResourceDefinitionInformer) } -func (f *customResourceInformer) Lister() v1alpha1.CustomResourceLister { - return v1alpha1.NewCustomResourceLister(f.Informer().GetIndexer()) +func (f *customResourceDefinitionInformer) Lister() v1alpha1.CustomResourceDefinitionLister { + return v1alpha1.NewCustomResourceDefinitionLister(f.Informer().GetIndexer()) } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/interface.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/interface.go index 54f40ccf026..82cf7e7099f 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/interface.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/apiextensions/v1alpha1/interface.go @@ -24,8 +24,8 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { - // CustomResources returns a CustomResourceInformer. - CustomResources() CustomResourceInformer + // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. + CustomResourceDefinitions() CustomResourceDefinitionInformer } type version struct { @@ -37,7 +37,7 @@ func New(f internalinterfaces.SharedInformerFactory) Interface { return &version{f} } -// CustomResources returns a CustomResourceInformer. -func (v *version) CustomResources() CustomResourceInformer { - return &customResourceInformer{factory: v.SharedInformerFactory} +// CustomResourceDefinitions returns a CustomResourceDefinitionInformer. +func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { + return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/generic.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/generic.go index e566845fb96..909e31293eb 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/generic.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/externalversions/generic.go @@ -52,8 +52,8 @@ func (f *genericInformer) Lister() cache.GenericLister { func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { // Group=Apiextensions, Version=V1alpha1 - case v1alpha1.SchemeGroupVersion.WithResource("customresources"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1alpha1().CustomResources().Informer()}, nil + case v1alpha1.SchemeGroupVersion.WithResource("customresourcedefinitions"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1alpha1().CustomResourceDefinitions().Informer()}, nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD index cec3d0e9b2a..1001ebb22a0 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD @@ -10,7 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ - "customresource.go", + "customresourcedefinition.go", "interface.go", ], tags = ["automanaged"], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go similarity index 62% rename from staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresource.go rename to staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go index c1e7bd79422..99fae07188e 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresource.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go @@ -30,28 +30,28 @@ import ( time "time" ) -// CustomResourceInformer provides access to a shared informer and lister for -// CustomResources. -type CustomResourceInformer interface { +// CustomResourceDefinitionInformer provides access to a shared informer and lister for +// CustomResourceDefinitions. +type CustomResourceDefinitionInformer interface { Informer() cache.SharedIndexInformer - Lister() internalversion.CustomResourceLister + Lister() internalversion.CustomResourceDefinitionLister } -type customResourceInformer struct { +type customResourceDefinitionInformer struct { factory internalinterfaces.SharedInformerFactory } -func newCustomResourceInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { +func newCustomResourceDefinitionInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { sharedIndexInformer := cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.Apiextensions().CustomResources().List(options) + return client.Apiextensions().CustomResourceDefinitions().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.Apiextensions().CustomResources().Watch(options) + return client.Apiextensions().CustomResourceDefinitions().Watch(options) }, }, - &apiextensions.CustomResource{}, + &apiextensions.CustomResourceDefinition{}, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, ) @@ -59,10 +59,10 @@ func newCustomResourceInformer(client internalclientset.Interface, resyncPeriod return sharedIndexInformer } -func (f *customResourceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions.CustomResource{}, newCustomResourceInformer) +func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apiextensions.CustomResourceDefinition{}, newCustomResourceDefinitionInformer) } -func (f *customResourceInformer) Lister() internalversion.CustomResourceLister { - return internalversion.NewCustomResourceLister(f.Informer().GetIndexer()) +func (f *customResourceDefinitionInformer) Lister() internalversion.CustomResourceDefinitionLister { + return internalversion.NewCustomResourceDefinitionLister(f.Informer().GetIndexer()) } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go index 7c2f3e63b7a..e9a0ae5f8ae 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go @@ -24,8 +24,8 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { - // CustomResources returns a CustomResourceInformer. - CustomResources() CustomResourceInformer + // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. + CustomResourceDefinitions() CustomResourceDefinitionInformer } type version struct { @@ -37,7 +37,7 @@ func New(f internalinterfaces.SharedInformerFactory) Interface { return &version{f} } -// CustomResources returns a CustomResourceInformer. -func (v *version) CustomResources() CustomResourceInformer { - return &customResourceInformer{factory: v.SharedInformerFactory} +// CustomResourceDefinitions returns a CustomResourceDefinitionInformer. +func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { + return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/generic.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/generic.go index 05dd5638a49..8cf3811aca3 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/generic.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/generic.go @@ -52,8 +52,8 @@ func (f *genericInformer) Lister() cache.GenericLister { func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { // Group=Apiextensions, Version=InternalVersion - case apiextensions.SchemeGroupVersion.WithResource("customresources"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().InternalVersion().CustomResources().Informer()}, nil + case apiextensions.SchemeGroupVersion.WithResource("customresourcedefinitions"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().InternalVersion().CustomResourceDefinitions().Informer()}, nil } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/BUILD index a46c11b294d..821442f10fb 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/BUILD @@ -10,7 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ - "customresource.go", + "customresourcedefinition.go", "expansion_generated.go", ], tags = ["automanaged"], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresource.go deleted file mode 100644 index 03eb052edf7..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresource.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2017 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. -*/ - -// This file was automatically generated by lister-gen - -package internalversion - -import ( - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" -) - -// CustomResourceLister helps list CustomResources. -type CustomResourceLister interface { - // List lists all CustomResources in the indexer. - List(selector labels.Selector) (ret []*apiextensions.CustomResource, err error) - // Get retrieves the CustomResource from the index for a given name. - Get(name string) (*apiextensions.CustomResource, error) - CustomResourceListerExpansion -} - -// customResourceLister implements the CustomResourceLister interface. -type customResourceLister struct { - indexer cache.Indexer -} - -// NewCustomResourceLister returns a new CustomResourceLister. -func NewCustomResourceLister(indexer cache.Indexer) CustomResourceLister { - return &customResourceLister{indexer: indexer} -} - -// List lists all CustomResources in the indexer. -func (s *customResourceLister) List(selector labels.Selector) (ret []*apiextensions.CustomResource, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*apiextensions.CustomResource)) - }) - return ret, err -} - -// Get retrieves the CustomResource from the index for a given name. -func (s *customResourceLister) Get(name string) (*apiextensions.CustomResource, error) { - key := &apiextensions.CustomResource{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(apiextensions.Resource("customresource"), name) - } - return obj.(*apiextensions.CustomResource), nil -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go new file mode 100644 index 00000000000..72b26cc3ec3 --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go @@ -0,0 +1,67 @@ +/* +Copyright 2017 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. +*/ + +// This file was automatically generated by lister-gen + +package internalversion + +import ( + "k8s.io/apimachinery/pkg/api/errors" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + apiextensions "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" +) + +// CustomResourceDefinitionLister helps list CustomResourceDefinitions. +type CustomResourceDefinitionLister interface { + // List lists all CustomResourceDefinitions in the indexer. + List(selector labels.Selector) (ret []*apiextensions.CustomResourceDefinition, err error) + // Get retrieves the CustomResourceDefinition from the index for a given name. + Get(name string) (*apiextensions.CustomResourceDefinition, error) + CustomResourceDefinitionListerExpansion +} + +// customResourceDefinitionLister implements the CustomResourceDefinitionLister interface. +type customResourceDefinitionLister struct { + indexer cache.Indexer +} + +// NewCustomResourceDefinitionLister returns a new CustomResourceDefinitionLister. +func NewCustomResourceDefinitionLister(indexer cache.Indexer) CustomResourceDefinitionLister { + return &customResourceDefinitionLister{indexer: indexer} +} + +// List lists all CustomResourceDefinitions in the indexer. +func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []*apiextensions.CustomResourceDefinition, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*apiextensions.CustomResourceDefinition)) + }) + return ret, err +} + +// Get retrieves the CustomResourceDefinition from the index for a given name. +func (s *customResourceDefinitionLister) Get(name string) (*apiextensions.CustomResourceDefinition, error) { + key := &apiextensions.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} + obj, exists, err := s.indexer.Get(key) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(apiextensions.Resource("customresourcedefinition"), name) + } + return obj.(*apiextensions.CustomResourceDefinition), nil +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/expansion_generated.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/expansion_generated.go index 066bb332153..3be1e916499 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/expansion_generated.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion/expansion_generated.go @@ -18,6 +18,6 @@ limitations under the License. package internalversion -// CustomResourceListerExpansion allows custom methods to be added to -// CustomResourceLister. -type CustomResourceListerExpansion interface{} +// CustomResourceDefinitionListerExpansion allows custom methods to be added to +// CustomResourceDefinitionLister. +type CustomResourceDefinitionListerExpansion interface{} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/BUILD index 3a684f6da2f..ac475798aba 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/BUILD @@ -10,7 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ - "customresource.go", + "customresourcedefinition.go", "expansion_generated.go", ], tags = ["automanaged"], diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresource.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresource.go deleted file mode 100644 index 8b62f97f324..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresource.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2017 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. -*/ - -// This file was automatically generated by lister-gen - -package v1alpha1 - -import ( - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" -) - -// CustomResourceLister helps list CustomResources. -type CustomResourceLister interface { - // List lists all CustomResources in the indexer. - List(selector labels.Selector) (ret []*v1alpha1.CustomResource, err error) - // Get retrieves the CustomResource from the index for a given name. - Get(name string) (*v1alpha1.CustomResource, error) - CustomResourceListerExpansion -} - -// customResourceLister implements the CustomResourceLister interface. -type customResourceLister struct { - indexer cache.Indexer -} - -// NewCustomResourceLister returns a new CustomResourceLister. -func NewCustomResourceLister(indexer cache.Indexer) CustomResourceLister { - return &customResourceLister{indexer: indexer} -} - -// List lists all CustomResources in the indexer. -func (s *customResourceLister) List(selector labels.Selector) (ret []*v1alpha1.CustomResource, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.CustomResource)) - }) - return ret, err -} - -// Get retrieves the CustomResource from the index for a given name. -func (s *customResourceLister) Get(name string) (*v1alpha1.CustomResource, error) { - key := &v1alpha1.CustomResource{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("customresource"), name) - } - return obj.(*v1alpha1.CustomResource), nil -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresourcedefinition.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresourcedefinition.go new file mode 100644 index 00000000000..128e6175a9f --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/customresourcedefinition.go @@ -0,0 +1,67 @@ +/* +Copyright 2017 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. +*/ + +// This file was automatically generated by lister-gen + +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/api/errors" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + v1alpha1 "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1" +) + +// CustomResourceDefinitionLister helps list CustomResourceDefinitions. +type CustomResourceDefinitionLister interface { + // List lists all CustomResourceDefinitions in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.CustomResourceDefinition, err error) + // Get retrieves the CustomResourceDefinition from the index for a given name. + Get(name string) (*v1alpha1.CustomResourceDefinition, error) + CustomResourceDefinitionListerExpansion +} + +// customResourceDefinitionLister implements the CustomResourceDefinitionLister interface. +type customResourceDefinitionLister struct { + indexer cache.Indexer +} + +// NewCustomResourceDefinitionLister returns a new CustomResourceDefinitionLister. +func NewCustomResourceDefinitionLister(indexer cache.Indexer) CustomResourceDefinitionLister { + return &customResourceDefinitionLister{indexer: indexer} +} + +// List lists all CustomResourceDefinitions in the indexer. +func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []*v1alpha1.CustomResourceDefinition, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.CustomResourceDefinition)) + }) + return ret, err +} + +// Get retrieves the CustomResourceDefinition from the index for a given name. +func (s *customResourceDefinitionLister) Get(name string) (*v1alpha1.CustomResourceDefinition, error) { + key := &v1alpha1.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} + obj, exists, err := s.indexer.Get(key) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("customresourcedefinition"), name) + } + return obj.(*v1alpha1.CustomResourceDefinition), nil +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/expansion_generated.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/expansion_generated.go index f97fa4aa5cf..e1a2d1573a5 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/expansion_generated.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/v1alpha1/expansion_generated.go @@ -18,6 +18,6 @@ limitations under the License. package v1alpha1 -// CustomResourceListerExpansion allows custom methods to be added to -// CustomResourceLister. -type CustomResourceListerExpansion interface{} +// CustomResourceDefinitionListerExpansion allows custom methods to be added to +// CustomResourceDefinitionLister. +type CustomResourceDefinitionListerExpansion interface{} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/cmd/server/start.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/cmd/server/start.go index c01762aafa7..183337136bb 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/cmd/server/start.go @@ -32,15 +32,15 @@ import ( const defaultEtcdPathPrefix = "/registry/apiextensions.kubernetes.io" -type CustomResourcesServerOptions struct { +type CustomResourceDefinitionsServerOptions struct { RecommendedOptions *genericoptions.RecommendedOptions StdOut io.Writer StdErr io.Writer } -func NewCustomResourcesServerOptions(out, errOut io.Writer) *CustomResourcesServerOptions { - o := &CustomResourcesServerOptions{ +func NewCustomResourceDefinitionsServerOptions(out, errOut io.Writer) *CustomResourceDefinitionsServerOptions { + o := &CustomResourceDefinitionsServerOptions{ RecommendedOptions: genericoptions.NewRecommendedOptions(defaultEtcdPathPrefix, apiserver.Scheme, apiserver.Codecs.LegacyCodec(v1alpha1.SchemeGroupVersion)), StdOut: out, @@ -50,8 +50,8 @@ func NewCustomResourcesServerOptions(out, errOut io.Writer) *CustomResourcesServ return o } -func NewCommandStartCustomResourcesServer(out, errOut io.Writer, stopCh <-chan struct{}) *cobra.Command { - o := NewCustomResourcesServerOptions(out, errOut) +func NewCommandStartCustomResourceDefinitionsServer(out, errOut io.Writer, stopCh <-chan struct{}) *cobra.Command { + o := NewCustomResourceDefinitionsServerOptions(out, errOut) cmd := &cobra.Command{ Short: "Launch an API extensions API server", @@ -63,7 +63,7 @@ func NewCommandStartCustomResourcesServer(out, errOut io.Writer, stopCh <-chan s if err := o.Validate(args); err != nil { return err } - if err := o.RunCustomResourcesServer(stopCh); err != nil { + if err := o.RunCustomResourceDefinitionsServer(stopCh); err != nil { return err } return nil @@ -76,15 +76,15 @@ func NewCommandStartCustomResourcesServer(out, errOut io.Writer, stopCh <-chan s return cmd } -func (o CustomResourcesServerOptions) Validate(args []string) error { +func (o CustomResourceDefinitionsServerOptions) Validate(args []string) error { return nil } -func (o *CustomResourcesServerOptions) Complete() error { +func (o *CustomResourceDefinitionsServerOptions) Complete() error { return nil } -func (o CustomResourcesServerOptions) Config() (*apiserver.Config, error) { +func (o CustomResourceDefinitionsServerOptions) Config() (*apiserver.Config, error) { // TODO have a "real" external address if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) @@ -95,7 +95,7 @@ func (o CustomResourcesServerOptions) Config() (*apiserver.Config, error) { return nil, err } - customResourceRESTOptionsGetter := apiserver.CustomResourceRESTOptionsGetter{ + customResourceDefinitionRESTOptionsGetter := apiserver.CustomResourceDefinitionRESTOptionsGetter{ StorageConfig: o.RecommendedOptions.Etcd.StorageConfig, StoragePrefix: o.RecommendedOptions.Etcd.StorageConfig.Prefix, EnableWatchCache: o.RecommendedOptions.Etcd.EnableWatchCache, @@ -103,17 +103,17 @@ func (o CustomResourcesServerOptions) Config() (*apiserver.Config, error) { EnableGarbageCollection: o.RecommendedOptions.Etcd.EnableGarbageCollection, DeleteCollectionWorkers: o.RecommendedOptions.Etcd.DeleteCollectionWorkers, } - customResourceRESTOptionsGetter.StorageConfig.Codec = unstructured.UnstructuredJSONScheme - customResourceRESTOptionsGetter.StorageConfig.Copier = apiserver.UnstructuredCopier{} + customResourceDefinitionRESTOptionsGetter.StorageConfig.Codec = unstructured.UnstructuredJSONScheme + customResourceDefinitionRESTOptionsGetter.StorageConfig.Copier = apiserver.UnstructuredCopier{} config := &apiserver.Config{ - GenericConfig: serverConfig, - CustomResourceRESTOptionsGetter: customResourceRESTOptionsGetter, + GenericConfig: serverConfig, + CustomResourceDefinitionRESTOptionsGetter: customResourceDefinitionRESTOptionsGetter, } return config, nil } -func (o CustomResourcesServerOptions) RunCustomResourcesServer(stopCh <-chan struct{}) error { +func (o CustomResourceDefinitionsServerOptions) RunCustomResourceDefinitionsServer(stopCh <-chan struct{}) error { config, err := o.Config() if err != nil { return err diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/BUILD index 9ab5ce3118e..52914354950 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/BUILD @@ -15,16 +15,19 @@ go_library( ], tags = ["automanaged"], deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", - "//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library", - "//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation:go_default_library", ], ) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/etcd.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/etcd.go index a4fcdc4a14a..0cdb2dbaa12 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/etcd.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/etcd.go @@ -17,10 +17,12 @@ limitations under the License. package customresource import ( + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" - "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" ) // rest implements a RESTStorage for API services against etcd @@ -29,24 +31,31 @@ type REST struct { } // NewREST returns a RESTStorage object that will work against API services. -func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST { - strategy := NewStrategy(scheme) - +func NewREST(resource schema.GroupResource, listKind schema.GroupVersionKind, copier runtime.ObjectCopier, strategy CustomResourceDefinitionStorageStrategy, optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &apiextensions.CustomResource{} }, - NewListFunc: func() runtime.Object { return &apiextensions.CustomResourceList{} }, - ObjectNameFunc: func(obj runtime.Object) (string, error) { - return obj.(*apiextensions.CustomResource).Name, nil + Copier: copier, + NewFunc: func() runtime.Object { return &unstructured.Unstructured{} }, + NewListFunc: func() runtime.Object { + // lists are never stored, only manufactured, so stomp in the right kind + ret := &unstructured.UnstructuredList{} + ret.SetGroupVersionKind(listKind) + return ret }, - PredicateFunc: MatchCustomResource, - QualifiedResource: apiextensions.Resource("customresources"), + ObjectNameFunc: func(obj runtime.Object) (string, error) { + accessor, err := meta.Accessor(obj) + if err != nil { + return "", err + } + return accessor.GetName(), nil + }, + PredicateFunc: strategy.MatchCustomResourceDefinitionStorage, + QualifiedResource: resource, CreateStrategy: strategy, UpdateStrategy: strategy, DeleteStrategy: strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: strategy.GetAttrs} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/strategy.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/strategy.go index 4e66f2080d9..a2e4b6b6729 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/strategy.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresource/strategy.go @@ -17,78 +17,99 @@ limitations under the License. package customresource import ( - "fmt" - + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/validation" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - - "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" - "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation" ) -type apiServerStrategy struct { +type CustomResourceDefinitionStorageStrategy struct { runtime.ObjectTyper names.NameGenerator + + namespaceScoped bool } -func NewStrategy(typer runtime.ObjectTyper) apiServerStrategy { - return apiServerStrategy{typer, names.SimpleNameGenerator} +func NewStrategy(typer runtime.ObjectTyper, namespaceScoped bool) CustomResourceDefinitionStorageStrategy { + return CustomResourceDefinitionStorageStrategy{typer, names.SimpleNameGenerator, namespaceScoped} } -func (apiServerStrategy) NamespaceScoped() bool { - return false +func (a CustomResourceDefinitionStorageStrategy) NamespaceScoped() bool { + return a.namespaceScoped } -func (apiServerStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { +func (CustomResourceDefinitionStorageStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { } -func (apiServerStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { +func (CustomResourceDefinitionStorageStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { } -func (apiServerStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { - return validation.ValidateCustomResource(obj.(*apiextensions.CustomResource)) -} - -func (apiServerStrategy) AllowCreateOnUpdate() bool { - return false -} - -func (apiServerStrategy) AllowUnconditionalUpdate() bool { - return false -} - -func (apiServerStrategy) Canonicalize(obj runtime.Object) { -} - -func (apiServerStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { - return validation.ValidateCustomResourceUpdate(obj.(*apiextensions.CustomResource), old.(*apiextensions.CustomResource)) -} - -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { - apiserver, ok := obj.(*apiextensions.CustomResource) - if !ok { - return nil, nil, fmt.Errorf("given object is not a CustomResource.") +func (a CustomResourceDefinitionStorageStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { + accessor, err := meta.Accessor(obj) + if err != nil { + return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} } - return labels.Set(apiserver.ObjectMeta.Labels), CustomResourceToSelectableFields(apiserver), nil + + return validation.ValidateObjectMetaAccessor(accessor, a.namespaceScoped, validation.NameIsDNSSubdomain, field.NewPath("metadata")) } -// MatchCustomResource is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func MatchCustomResource(label labels.Selector, field fields.Selector) storage.SelectionPredicate { +func (CustomResourceDefinitionStorageStrategy) AllowCreateOnUpdate() bool { + return false +} + +func (CustomResourceDefinitionStorageStrategy) AllowUnconditionalUpdate() bool { + return false +} + +func (CustomResourceDefinitionStorageStrategy) Canonicalize(obj runtime.Object) { +} + +func (CustomResourceDefinitionStorageStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { + objAccessor, err := meta.Accessor(obj) + if err != nil { + return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} + } + oldAccessor, err := meta.Accessor(old) + if err != nil { + return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} + } + + return validation.ValidateObjectMetaAccessorUpdate(objAccessor, oldAccessor, field.NewPath("metadata")) + + return field.ErrorList{} +} + +func (a CustomResourceDefinitionStorageStrategy) GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, nil, err + } + return labels.Set(accessor.GetLabels()), objectMetaFieldsSet(accessor, a.namespaceScoped), nil +} + +// objectMetaFieldsSet returns a fields that represent the ObjectMeta. +func objectMetaFieldsSet(objectMeta metav1.Object, namespaceScoped bool) fields.Set { + if namespaceScoped { + return fields.Set{ + "metadata.name": objectMeta.GetName(), + "metadata.namespace": objectMeta.GetNamespace(), + } + } + return fields.Set{ + "metadata.name": objectMeta.GetName(), + } +} + +func (a CustomResourceDefinitionStorageStrategy) MatchCustomResourceDefinitionStorage(label labels.Selector, field fields.Selector) storage.SelectionPredicate { return storage.SelectionPredicate{ Label: label, Field: field, - GetAttrs: GetAttrs, + GetAttrs: a.GetAttrs, } } - -// CustomResourceToSelectableFields returns a field set that represents the object. -func CustomResourceToSelectableFields(obj *apiextensions.CustomResource) fields.Set { - return generic.ObjectMetaFieldsSet(&obj.ObjectMeta, true) -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/BUILD b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/BUILD similarity index 71% rename from staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/BUILD rename to staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/BUILD index 52914354950..9ab5ce3118e 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/BUILD +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/BUILD @@ -15,19 +15,16 @@ go_library( ], tags = ["automanaged"], deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", + "//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library", + "//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation:go_default_library", ], ) diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/etcd.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/etcd.go similarity index 59% rename from staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/etcd.go rename to staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/etcd.go index 45bab909af5..4d1e56687ec 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/etcd.go +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/etcd.go @@ -14,15 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -package customresourcestorage +package customresourcedefinition import ( - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" ) // rest implements a RESTStorage for API services against etcd @@ -31,31 +29,24 @@ type REST struct { } // NewREST returns a RESTStorage object that will work against API services. -func NewREST(resource schema.GroupResource, listKind schema.GroupVersionKind, copier runtime.ObjectCopier, strategy CustomResourceStorageStrategy, optsGetter generic.RESTOptionsGetter) *REST { +func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST { + strategy := NewStrategy(scheme) + store := &genericregistry.Store{ - Copier: copier, - NewFunc: func() runtime.Object { return &unstructured.Unstructured{} }, - NewListFunc: func() runtime.Object { - // lists are never stored, only manufactured, so stomp in the right kind - ret := &unstructured.UnstructuredList{} - ret.SetGroupVersionKind(listKind) - return ret - }, + Copier: scheme, + NewFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinition{} }, + NewListFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinitionList{} }, ObjectNameFunc: func(obj runtime.Object) (string, error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return "", err - } - return accessor.GetName(), nil + return obj.(*apiextensions.CustomResourceDefinition).Name, nil }, - PredicateFunc: strategy.MatchCustomResourceStorage, - QualifiedResource: resource, + PredicateFunc: MatchCustomResourceDefinition, + QualifiedResource: apiextensions.Resource("customresourcedefinitions"), CreateStrategy: strategy, UpdateStrategy: strategy, DeleteStrategy: strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: strategy.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/strategy.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/strategy.go new file mode 100644 index 00000000000..cee33421138 --- /dev/null +++ b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/strategy.go @@ -0,0 +1,94 @@ +/* +Copyright 2017 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. +*/ + +package customresourcedefinition + +import ( + "fmt" + + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" + + "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions" + "k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation" +) + +type apiServerStrategy struct { + runtime.ObjectTyper + names.NameGenerator +} + +func NewStrategy(typer runtime.ObjectTyper) apiServerStrategy { + return apiServerStrategy{typer, names.SimpleNameGenerator} +} + +func (apiServerStrategy) NamespaceScoped() bool { + return false +} + +func (apiServerStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { +} + +func (apiServerStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { +} + +func (apiServerStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { + return validation.ValidateCustomResourceDefinition(obj.(*apiextensions.CustomResourceDefinition)) +} + +func (apiServerStrategy) AllowCreateOnUpdate() bool { + return false +} + +func (apiServerStrategy) AllowUnconditionalUpdate() bool { + return false +} + +func (apiServerStrategy) Canonicalize(obj runtime.Object) { +} + +func (apiServerStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { + return validation.ValidateCustomResourceDefinitionUpdate(obj.(*apiextensions.CustomResourceDefinition), old.(*apiextensions.CustomResourceDefinition)) +} + +func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { + apiserver, ok := obj.(*apiextensions.CustomResourceDefinition) + if !ok { + return nil, nil, fmt.Errorf("given object is not a CustomResourceDefinition.") + } + return labels.Set(apiserver.ObjectMeta.Labels), CustomResourceDefinitionToSelectableFields(apiserver), nil +} + +// MatchCustomResourceDefinition is the filter used by the generic etcd backend to watch events +// from etcd to clients of the apiserver only interested in specific labels/fields. +func MatchCustomResourceDefinition(label labels.Selector, field fields.Selector) storage.SelectionPredicate { + return storage.SelectionPredicate{ + Label: label, + Field: field, + GetAttrs: GetAttrs, + } +} + +// CustomResourceDefinitionToSelectableFields returns a field set that represents the object. +func CustomResourceDefinitionToSelectableFields(obj *apiextensions.CustomResourceDefinition) fields.Set { + return generic.ObjectMetaFieldsSet(&obj.ObjectMeta, true) +} diff --git a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/strategy.go b/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/strategy.go deleted file mode 100644 index 95acc070f45..00000000000 --- a/staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcestorage/strategy.go +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright 2017 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. -*/ - -package customresourcestorage - -import ( - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/api/validation" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/storage" - "k8s.io/apiserver/pkg/storage/names" -) - -type CustomResourceStorageStrategy struct { - runtime.ObjectTyper - names.NameGenerator - - namespaceScoped bool -} - -func NewStrategy(typer runtime.ObjectTyper, namespaceScoped bool) CustomResourceStorageStrategy { - return CustomResourceStorageStrategy{typer, names.SimpleNameGenerator, namespaceScoped} -} - -func (a CustomResourceStorageStrategy) NamespaceScoped() bool { - return a.namespaceScoped -} - -func (CustomResourceStorageStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { -} - -func (CustomResourceStorageStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { -} - -func (a CustomResourceStorageStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { - accessor, err := meta.Accessor(obj) - if err != nil { - return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} - } - - return validation.ValidateObjectMetaAccessor(accessor, a.namespaceScoped, validation.NameIsDNSSubdomain, field.NewPath("metadata")) -} - -func (CustomResourceStorageStrategy) AllowCreateOnUpdate() bool { - return false -} - -func (CustomResourceStorageStrategy) AllowUnconditionalUpdate() bool { - return false -} - -func (CustomResourceStorageStrategy) Canonicalize(obj runtime.Object) { -} - -func (CustomResourceStorageStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { - objAccessor, err := meta.Accessor(obj) - if err != nil { - return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} - } - oldAccessor, err := meta.Accessor(old) - if err != nil { - return field.ErrorList{field.Invalid(field.NewPath("metadata"), nil, err.Error())} - } - - return validation.ValidateObjectMetaAccessorUpdate(objAccessor, oldAccessor, field.NewPath("metadata")) - - return field.ErrorList{} -} - -func (a CustomResourceStorageStrategy) GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return nil, nil, err - } - return labels.Set(accessor.GetLabels()), objectMetaFieldsSet(accessor, a.namespaceScoped), nil -} - -// objectMetaFieldsSet returns a fields that represent the ObjectMeta. -func objectMetaFieldsSet(objectMeta metav1.Object, namespaceScoped bool) fields.Set { - if namespaceScoped { - return fields.Set{ - "metadata.name": objectMeta.GetName(), - "metadata.namespace": objectMeta.GetNamespace(), - } - } - return fields.Set{ - "metadata.name": objectMeta.GetName(), - } -} - -func (a CustomResourceStorageStrategy) MatchCustomResourceStorage(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: a.GetAttrs, - } -} diff --git a/staging/src/k8s.io/kube-apiextensions-server/test/integration/registration_test.go b/staging/src/k8s.io/kube-apiextensions-server/test/integration/registration_test.go index 2c56ee59335..4beb870c342 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/test/integration/registration_test.go +++ b/staging/src/k8s.io/kube-apiextensions-server/test/integration/registration_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/kube-apiextensions-server/test/integration/testserver" ) -func instantiateCustomResource(t *testing.T, instanceToCreate *unstructured.Unstructured, client *dynamic.ResourceClient, definition *apiextensionsv1alpha1.CustomResource) (*unstructured.Unstructured, error) { +func instantiateCustomResource(t *testing.T, instanceToCreate *unstructured.Unstructured, client *dynamic.ResourceClient, definition *apiextensionsv1alpha1.CustomResourceDefinition) (*unstructured.Unstructured, error) { createdInstance, err := client.Create(instanceToCreate) if err != nil { t.Logf("%#v", createdInstance) @@ -57,7 +57,7 @@ func instantiateCustomResource(t *testing.T, instanceToCreate *unstructured.Unst return createdInstance, nil } -func NewNamespacedCustomResourceClient(ns string, client *dynamic.Client, definition *apiextensionsv1alpha1.CustomResource) *dynamic.ResourceClient { +func NewNamespacedCustomResourceClient(ns string, client *dynamic.Client, definition *apiextensionsv1alpha1.CustomResourceDefinition) *dynamic.ResourceClient { return client.Resource(&metav1.APIResource{ Name: definition.Spec.Names.Plural, Namespaced: definition.Spec.Scope == apiextensionsv1alpha1.NamespaceScoped, diff --git a/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/resources.go b/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/resources.go index 9a7e0e800ec..849b59f1919 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/resources.go +++ b/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/resources.go @@ -28,13 +28,13 @@ import ( "k8s.io/kube-apiextensions-server/pkg/client/clientset/clientset" ) -func NewNoxuCustomResourceDefinition() *apiextensionsv1alpha1.CustomResource { - return &apiextensionsv1alpha1.CustomResource{ +func NewNoxuCustomResourceDefinition() *apiextensionsv1alpha1.CustomResourceDefinition { + return &apiextensionsv1alpha1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "noxus.mygroup.example.com"}, - Spec: apiextensionsv1alpha1.CustomResourceSpec{ + Spec: apiextensionsv1alpha1.CustomResourceDefinitionSpec{ Group: "mygroup.example.com", Version: "v1alpha1", - Names: apiextensionsv1alpha1.CustomResourceNames{ + Names: apiextensionsv1alpha1.CustomResourceDefinitionNames{ Plural: "noxus", Singular: "nonenglishnoxu", Kind: "WishIHadChosenNoxu", @@ -61,13 +61,13 @@ func NewNoxuInstance(namespace, name string) *unstructured.Unstructured { } } -func NewCurletCustomResourceDefinition() *apiextensionsv1alpha1.CustomResource { - return &apiextensionsv1alpha1.CustomResource{ +func NewCurletCustomResourceDefinition() *apiextensionsv1alpha1.CustomResourceDefinition { + return &apiextensionsv1alpha1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "curlets.mygroup.example.com"}, - Spec: apiextensionsv1alpha1.CustomResourceSpec{ + Spec: apiextensionsv1alpha1.CustomResourceDefinitionSpec{ Group: "mygroup.example.com", Version: "v1alpha1", - Names: apiextensionsv1alpha1.CustomResourceNames{ + Names: apiextensionsv1alpha1.CustomResourceDefinitionNames{ Plural: "curlets", Singular: "curlet", Kind: "Curlet", @@ -94,20 +94,20 @@ func NewCurletInstance(namespace, name string) *unstructured.Unstructured { } } -func CreateNewCustomResourceDefinition(customResource *apiextensionsv1alpha1.CustomResource, apiExtensionsClient clientset.Interface, clientPool dynamic.ClientPool) (*dynamic.Client, error) { - _, err := apiExtensionsClient.Apiextensions().CustomResources().Create(customResource) +func CreateNewCustomResourceDefinition(customResourceDefinition *apiextensionsv1alpha1.CustomResourceDefinition, apiExtensionsClient clientset.Interface, clientPool dynamic.ClientPool) (*dynamic.Client, error) { + _, err := apiExtensionsClient.Apiextensions().CustomResourceDefinitions().Create(customResourceDefinition) if err != nil { return nil, err } // wait until the resource appears in discovery err = wait.PollImmediate(30*time.Millisecond, 30*time.Second, func() (bool, error) { - resourceList, err := apiExtensionsClient.Discovery().ServerResourcesForGroupVersion(customResource.Spec.Group + "/" + customResource.Spec.Version) + resourceList, err := apiExtensionsClient.Discovery().ServerResourcesForGroupVersion(customResourceDefinition.Spec.Group + "/" + customResourceDefinition.Spec.Version) if err != nil { return false, nil } for _, resource := range resourceList.APIResources { - if resource.Name == customResource.Spec.Names.Plural { + if resource.Name == customResourceDefinition.Spec.Names.Plural { return true, nil } } @@ -117,7 +117,7 @@ func CreateNewCustomResourceDefinition(customResource *apiextensionsv1alpha1.Cus return nil, err } - dynamicClient, err := clientPool.ClientForGroupVersionResource(schema.GroupVersionResource{Group: customResource.Spec.Group, Version: customResource.Spec.Version, Resource: customResource.Spec.Names.Plural}) + dynamicClient, err := clientPool.ClientForGroupVersionResource(schema.GroupVersionResource{Group: customResourceDefinition.Spec.Group, Version: customResourceDefinition.Spec.Version, Resource: customResourceDefinition.Spec.Names.Plural}) if err != nil { return nil, err } diff --git a/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/start.go b/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/start.go index f0747098bc2..b1f94ce02a1 100644 --- a/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/start.go +++ b/staging/src/k8s.io/kube-apiextensions-server/test/integration/testserver/start.go @@ -41,7 +41,7 @@ func DefaultServerConfig() (*extensionsapiserver.Config, error) { return nil, err } - options := server.NewCustomResourcesServerOptions(os.Stdout, os.Stderr) + options := server.NewCustomResourceDefinitionsServerOptions(os.Stdout, os.Stderr) options.RecommendedOptions.Audit.Path = "-" options.RecommendedOptions.SecureServing.BindPort = port options.RecommendedOptions.Authentication.SkipInClusterLookup = true @@ -76,7 +76,7 @@ func DefaultServerConfig() (*extensionsapiserver.Config, error) { return nil, err } - customResourceRESTOptionsGetter := extensionsapiserver.CustomResourceRESTOptionsGetter{ + customResourceDefinitionRESTOptionsGetter := extensionsapiserver.CustomResourceDefinitionRESTOptionsGetter{ StorageConfig: options.RecommendedOptions.Etcd.StorageConfig, StoragePrefix: options.RecommendedOptions.Etcd.StorageConfig.Prefix, EnableWatchCache: options.RecommendedOptions.Etcd.EnableWatchCache, @@ -84,12 +84,12 @@ func DefaultServerConfig() (*extensionsapiserver.Config, error) { EnableGarbageCollection: options.RecommendedOptions.Etcd.EnableGarbageCollection, DeleteCollectionWorkers: options.RecommendedOptions.Etcd.DeleteCollectionWorkers, } - customResourceRESTOptionsGetter.StorageConfig.Codec = unstructured.UnstructuredJSONScheme - customResourceRESTOptionsGetter.StorageConfig.Copier = extensionsapiserver.UnstructuredCopier{} + customResourceDefinitionRESTOptionsGetter.StorageConfig.Codec = unstructured.UnstructuredJSONScheme + customResourceDefinitionRESTOptionsGetter.StorageConfig.Copier = extensionsapiserver.UnstructuredCopier{} config := &extensionsapiserver.Config{ - GenericConfig: genericConfig, - CustomResourceRESTOptionsGetter: customResourceRESTOptionsGetter, + GenericConfig: genericConfig, + CustomResourceDefinitionRESTOptionsGetter: customResourceDefinitionRESTOptionsGetter, } return config, nil