From ad116026d9fefe70bbc37f30b9d299ca3af6e43c Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Fri, 10 Mar 2017 16:03:07 -0500 Subject: [PATCH] Remove vestiges of defaulting from conversion path, switch to top-level default registration only --- .../app/apis/kubeadm/v1alpha1/defaults.go | 6 +- federation/apis/core/v1/defaults.go | 7 +-- .../apis/federation/v1beta1/defaults.go | 2 +- .../null-propagation/deployment-l2.yaml | 1 + hack/update-codegen.sh | 1 + hack/verify-codegen.sh | 1 + pkg/api/BUILD | 1 - pkg/api/defaulting_test.go | 4 ++ pkg/api/register.go | 2 +- pkg/api/v1/conversion_test.go | 7 ++- pkg/api/v1/defaults.go | 32 +---------- pkg/apis/abac/v1beta1/register.go | 2 +- pkg/apis/apps/v1beta1/defaults.go | 6 +- pkg/apis/authentication/v1/defaults.go | 2 +- pkg/apis/authentication/v1beta1/defaults.go | 2 +- pkg/apis/authorization/v1/defaults.go | 2 +- pkg/apis/authorization/v1beta1/defaults.go | 2 +- pkg/apis/autoscaling/v1/defaults.go | 5 +- pkg/apis/autoscaling/v2alpha1/BUILD | 1 + pkg/apis/autoscaling/v2alpha1/defaults.go | 4 +- pkg/apis/autoscaling/v2alpha1/doc.go | 1 + .../v2alpha1/zz_generated.defaults.go | 47 ++++++++++++++++ pkg/apis/batch/v1/defaults.go | 5 +- pkg/apis/batch/v2alpha1/defaults.go | 5 +- pkg/apis/certificates/v1beta1/defaults.go | 5 +- pkg/apis/componentconfig/v1alpha1/defaults.go | 8 +-- pkg/apis/extensions/v1beta1/defaults.go | 8 +-- pkg/apis/imagepolicy/v1alpha1/register.go | 2 +- pkg/apis/policy/v1alpha1/BUILD | 1 + pkg/apis/policy/v1alpha1/doc.go | 2 + pkg/apis/policy/v1alpha1/register.go | 2 +- .../policy/v1alpha1/zz_generated.defaults.go | 32 +++++++++++ pkg/apis/policy/v1beta1/BUILD | 1 + pkg/apis/policy/v1beta1/doc.go | 1 + pkg/apis/policy/v1beta1/register.go | 2 +- .../policy/v1beta1/zz_generated.defaults.go} | 28 ++++------ pkg/apis/rbac/v1alpha1/defaults.go | 7 +-- pkg/apis/rbac/v1beta1/defaults.go | 7 +-- pkg/apis/settings/v1alpha1/register.go | 2 +- pkg/apis/storage/v1/register.go | 2 +- pkg/apis/storage/v1beta1/register.go | 2 +- .../v1alpha1/defaults.go | 7 +-- .../v1alpha1/zz_generated.defaults.go | 5 -- .../apis/resourcequota/v1alpha1/defaults.go | 5 +- .../apimachinery/pkg/conversion/converter.go | 55 ------------------- .../k8s.io/apimachinery/pkg/runtime/scheme.go | 23 -------- .../pkg/apis/apiserver/v1alpha1/doc.go | 1 + .../apiserver/pkg/apis/example/v1/defaults.go | 1 + .../src/k8s.io/client-go/pkg/api/register.go | 2 +- .../k8s.io/client-go/pkg/api/v1/defaults.go | 32 +---------- .../pkg/apis/apps/v1beta1/defaults.go | 6 +- .../pkg/apis/authentication/v1/defaults.go | 2 +- .../apis/authentication/v1beta1/defaults.go | 2 +- .../pkg/apis/authorization/v1/defaults.go | 2 +- .../apis/authorization/v1beta1/defaults.go | 2 +- .../pkg/apis/autoscaling/v1/defaults.go | 5 +- .../pkg/apis/autoscaling/v2alpha1/defaults.go | 4 +- .../v2alpha1/zz_generated.defaults.go | 47 ++++++++++++++++ .../client-go/pkg/apis/batch/v1/defaults.go | 5 +- .../pkg/apis/batch/v2alpha1/defaults.go | 5 +- .../pkg/apis/certificates/v1beta1/defaults.go | 5 +- .../pkg/apis/extensions/v1beta1/defaults.go | 8 +-- .../pkg/apis/policy/v1beta1/register.go | 2 +- .../policy/v1beta1/zz_generated.defaults.go} | 28 ++++------ .../pkg/apis/rbac/v1alpha1/defaults.go | 7 +-- .../pkg/apis/rbac/v1beta1/defaults.go | 7 +-- .../pkg/apis/settings/v1alpha1/register.go | 2 +- .../client-go/pkg/apis/storage/v1/register.go | 2 +- .../pkg/apis/storage/v1beta1/register.go | 2 +- .../sample-apiserver/hack/update-codegen.sh | 4 +- .../sample-apiserver/hack/verify-codegen.sh | 50 +++++++++++++++++ vendor/BUILD | 3 +- 72 files changed, 273 insertions(+), 318 deletions(-) create mode 100644 pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go create mode 100644 pkg/apis/policy/v1alpha1/zz_generated.defaults.go rename pkg/{api/defaults.go => apis/policy/v1beta1/zz_generated.defaults.go} (54%) create mode 100644 staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go rename staging/src/k8s.io/client-go/pkg/{api/defaults.go => apis/policy/v1beta1/zz_generated.defaults.go} (54%) create mode 100755 staging/src/k8s.io/sample-apiserver/hack/verify-codegen.sh diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index abca4add18..4ec4a29bf8 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -35,11 +35,7 @@ const ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_MasterConfiguration, - SetDefaults_NodeConfiguration, - ) + return RegisterDefaults(scheme) } func SetDefaults_MasterConfiguration(obj *MasterConfiguration) { diff --git a/federation/apis/core/v1/defaults.go b/federation/apis/core/v1/defaults.go index 3f6d81af52..48a5b2581a 100644 --- a/federation/apis/core/v1/defaults.go +++ b/federation/apis/core/v1/defaults.go @@ -22,10 +22,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - v1.RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - v1.SetDefaults_Secret, - v1.SetDefaults_ServiceSpec, - v1.SetDefaults_NamespaceStatus, - ) + return v1.RegisterDefaults(scheme) } diff --git a/federation/apis/federation/v1beta1/defaults.go b/federation/apis/federation/v1beta1/defaults.go index 61533aed60..37abb53bd2 100644 --- a/federation/apis/federation/v1beta1/defaults.go +++ b/federation/apis/federation/v1beta1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return nil + return RegisterDefaults(scheme) } diff --git a/hack/testdata/null-propagation/deployment-l2.yaml b/hack/testdata/null-propagation/deployment-l2.yaml index 6bef22f881..ffcbcc099b 100644 --- a/hack/testdata/null-propagation/deployment-l2.yaml +++ b/hack/testdata/null-propagation/deployment-l2.yaml @@ -15,3 +15,4 @@ spec: containers: - name: nginx image: gcr.io/google-containers/nginx:1.7.9 + terminationMessagePolicy: null diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 9bf1b35de0..210ed527ce 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -102,3 +102,4 @@ ${informergen} \ # call generation on sub-project for now vendor/k8s.io/kube-aggregator/hack/update-codegen.sh +vendor/k8s.io/sample-apiserver/hack/update-codegen.sh diff --git a/hack/verify-codegen.sh b/hack/verify-codegen.sh index 80910243dc..2721e31292 100755 --- a/hack/verify-codegen.sh +++ b/hack/verify-codegen.sh @@ -25,6 +25,7 @@ kube::golang::setup_env # call verify on sub-project for now vendor/k8s.io/kube-aggregator/hack/verify-codegen.sh +vendor/k8s.io/sample-apiserver/hack/verify-codegen.sh "${KUBE_ROOT}/hack/update-codegen.sh" --verify-only diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 71bf4f8e11..28500fc875 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -12,7 +12,6 @@ go_library( name = "go_default_library", srcs = [ "annotation_key_constants.go", - "defaults.go", "doc.go", "field_constants.go", "json.go", diff --git a/pkg/api/defaulting_test.go b/pkg/api/defaulting_test.go index b145548bf0..8572e8dda5 100644 --- a/pkg/api/defaulting_test.go +++ b/pkg/api/defaulting_test.go @@ -83,6 +83,8 @@ func TestDefaulting(t *testing.T) { {Group: "apps", Version: "v1beta1", Kind: "StatefulSetList"}: {}, {Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscaler"}: {}, {Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscalerList"}: {}, + {Group: "autoscaling", Version: "v2alpha1", Kind: "HorizontalPodAutoscaler"}: {}, + {Group: "autoscaling", Version: "v2alpha1", Kind: "HorizontalPodAutoscalerList"}: {}, {Group: "batch", Version: "v1", Kind: "Job"}: {}, {Group: "batch", Version: "v1", Kind: "JobList"}: {}, {Group: "batch", Version: "v2alpha1", Kind: "CronJob"}: {}, @@ -117,6 +119,8 @@ func TestDefaulting(t *testing.T) { {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBindingList"}: {}, {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBinding"}: {}, {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBindingList"}: {}, + {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPreset"}: {}, + {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPresetList"}: {}, } f := fuzz.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1)) diff --git a/pkg/api/register.go b/pkg/api/register.go index bd842b182e..23cfaabdbe 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -68,7 +68,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addDefaultingFuncs) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/api/v1/conversion_test.go b/pkg/api/v1/conversion_test.go index ca4e5bb065..ae428c64dc 100644 --- a/pkg/api/v1/conversion_test.go +++ b/pkg/api/v1/conversion_test.go @@ -207,12 +207,17 @@ func TestResourceListConversion(t *testing.T) { for i, test := range tests { output := api.ResourceList{} + + // defaulting is a separate step from conversion that is applied when reading from the API or from etcd. + // perform that step explicitly. + v1.SetDefaults_ResourceList(&test.input) + err := api.Scheme.Convert(&test.input, &output, nil) if err != nil { t.Fatalf("unexpected error for case %d: %v", i, err) } if !apiequality.Semantic.DeepEqual(test.expected, output) { - t.Errorf("unexpected conversion for case %d: Expected %+v; Got %+v", i, test.expected, output) + t.Errorf("unexpected conversion for case %d: Expected\n%+v;\nGot\n%+v", i, test.expected, output) } } } diff --git a/pkg/api/v1/defaults.go b/pkg/api/v1/defaults.go index 9146ce51d4..701031cc14 100644 --- a/pkg/api/v1/defaults.go +++ b/pkg/api/v1/defaults.go @@ -24,37 +24,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_PodExecOptions, - SetDefaults_PodAttachOptions, - SetDefaults_ReplicationController, - SetDefaults_Volume, - SetDefaults_ContainerPort, - SetDefaults_Container, - SetDefaults_ServiceSpec, - SetDefaults_Pod, - SetDefaults_PodSpec, - SetDefaults_Probe, - SetDefaults_SecretVolumeSource, - SetDefaults_ConfigMapVolumeSource, - SetDefaults_DownwardAPIVolumeSource, - SetDefaults_ProjectedVolumeSource, - SetDefaults_Secret, - SetDefaults_PersistentVolume, - SetDefaults_PersistentVolumeClaim, - SetDefaults_ISCSIVolumeSource, - SetDefaults_Endpoints, - SetDefaults_HTTPGetAction, - SetDefaults_NamespaceStatus, - SetDefaults_Node, - SetDefaults_NodeStatus, - SetDefaults_ObjectFieldSelector, - SetDefaults_LimitRangeItem, - SetDefaults_ConfigMap, - SetDefaults_RBDVolumeSource, - SetDefaults_ResourceList, - ) + return RegisterDefaults(scheme) } func SetDefaults_ResourceList(obj *ResourceList) { diff --git a/pkg/apis/abac/v1beta1/register.go b/pkg/apis/abac/v1beta1/register.go index 5c07408b07..44199de6a9 100644 --- a/pkg/apis/abac/v1beta1/register.go +++ b/pkg/apis/abac/v1beta1/register.go @@ -40,7 +40,7 @@ func init() { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/apis/apps/v1beta1/defaults.go b/pkg/apis/apps/v1beta1/defaults.go index 004cecd3f0..def2bab711 100644 --- a/pkg/apis/apps/v1beta1/defaults.go +++ b/pkg/apis/apps/v1beta1/defaults.go @@ -23,11 +23,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_StatefulSet, - SetDefaults_Deployment, - ) + return RegisterDefaults(scheme) } func SetDefaults_StatefulSet(obj *StatefulSet) { diff --git a/pkg/apis/authentication/v1/defaults.go b/pkg/apis/authentication/v1/defaults.go index d63d917543..074e15baed 100644 --- a/pkg/apis/authentication/v1/defaults.go +++ b/pkg/apis/authentication/v1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/pkg/apis/authentication/v1beta1/defaults.go b/pkg/apis/authentication/v1beta1/defaults.go index 1a4566479f..37abb53bd2 100644 --- a/pkg/apis/authentication/v1beta1/defaults.go +++ b/pkg/apis/authentication/v1beta1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/pkg/apis/authorization/v1/defaults.go b/pkg/apis/authorization/v1/defaults.go index d63d917543..074e15baed 100644 --- a/pkg/apis/authorization/v1/defaults.go +++ b/pkg/apis/authorization/v1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/pkg/apis/authorization/v1beta1/defaults.go b/pkg/apis/authorization/v1beta1/defaults.go index cb49b06ac2..7d689a4cc8 100644 --- a/pkg/apis/authorization/v1beta1/defaults.go +++ b/pkg/apis/authorization/v1beta1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/pkg/apis/autoscaling/v1/defaults.go b/pkg/apis/autoscaling/v1/defaults.go index d423ad1253..aeece5b81b 100644 --- a/pkg/apis/autoscaling/v1/defaults.go +++ b/pkg/apis/autoscaling/v1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_HorizontalPodAutoscaler, - ) + return RegisterDefaults(scheme) } func SetDefaults_HorizontalPodAutoscaler(obj *HorizontalPodAutoscaler) { diff --git a/pkg/apis/autoscaling/v2alpha1/BUILD b/pkg/apis/autoscaling/v2alpha1/BUILD index 98d475a295..4229a80553 100644 --- a/pkg/apis/autoscaling/v2alpha1/BUILD +++ b/pkg/apis/autoscaling/v2alpha1/BUILD @@ -19,6 +19,7 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.conversion.go", "zz_generated.deepcopy.go", + "zz_generated.defaults.go", ], tags = ["automanaged"], deps = [ diff --git a/pkg/apis/autoscaling/v2alpha1/defaults.go b/pkg/apis/autoscaling/v2alpha1/defaults.go index 8764a9f42c..3d75ca299e 100644 --- a/pkg/apis/autoscaling/v2alpha1/defaults.go +++ b/pkg/apis/autoscaling/v2alpha1/defaults.go @@ -23,9 +23,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs( - SetDefaults_HorizontalPodAutoscaler, - ) + return RegisterDefaults(scheme) } func SetDefaults_HorizontalPodAutoscaler(obj *HorizontalPodAutoscaler) { diff --git a/pkg/apis/autoscaling/v2alpha1/doc.go b/pkg/apis/autoscaling/v2alpha1/doc.go index 7c20d6dc11..21ffc415eb 100644 --- a/pkg/apis/autoscaling/v2alpha1/doc.go +++ b/pkg/apis/autoscaling/v2alpha1/doc.go @@ -17,5 +17,6 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta package v2alpha1 // import "k8s.io/kubernetes/pkg/apis/autoscaling/v2alpha1" diff --git a/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go b/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go new file mode 100644 index 0000000000..eb20be97c7 --- /dev/null +++ b/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go @@ -0,0 +1,47 @@ +// +build !ignore_autogenerated + +/* +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 autogenerated by defaulter-gen. Do not edit it manually! + +package v2alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&HorizontalPodAutoscaler{}, func(obj interface{}) { SetObjectDefaults_HorizontalPodAutoscaler(obj.(*HorizontalPodAutoscaler)) }) + scheme.AddTypeDefaultingFunc(&HorizontalPodAutoscalerList{}, func(obj interface{}) { + SetObjectDefaults_HorizontalPodAutoscalerList(obj.(*HorizontalPodAutoscalerList)) + }) + return nil +} + +func SetObjectDefaults_HorizontalPodAutoscaler(in *HorizontalPodAutoscaler) { + SetDefaults_HorizontalPodAutoscaler(in) +} + +func SetObjectDefaults_HorizontalPodAutoscalerList(in *HorizontalPodAutoscalerList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_HorizontalPodAutoscaler(a) + } +} diff --git a/pkg/apis/batch/v1/defaults.go b/pkg/apis/batch/v1/defaults.go index 3603247f24..9c246a594c 100644 --- a/pkg/apis/batch/v1/defaults.go +++ b/pkg/apis/batch/v1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_Job, - ) + return RegisterDefaults(scheme) } func SetDefaults_Job(obj *Job) { diff --git a/pkg/apis/batch/v2alpha1/defaults.go b/pkg/apis/batch/v2alpha1/defaults.go index 6da07cc7d2..292f8886e2 100644 --- a/pkg/apis/batch/v2alpha1/defaults.go +++ b/pkg/apis/batch/v2alpha1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_CronJob, - ) + return RegisterDefaults(scheme) } func SetDefaults_CronJob(obj *CronJob) { diff --git a/pkg/apis/certificates/v1beta1/defaults.go b/pkg/apis/certificates/v1beta1/defaults.go index cd6a29d339..e18af02f61 100644 --- a/pkg/apis/certificates/v1beta1/defaults.go +++ b/pkg/apis/certificates/v1beta1/defaults.go @@ -19,10 +19,7 @@ package v1beta1 import "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_CertificateSigningRequestSpec, - ) + return RegisterDefaults(scheme) } func SetDefaults_CertificateSigningRequestSpec(obj *CertificateSigningRequestSpec) { if obj.Usages == nil { diff --git a/pkg/apis/componentconfig/v1alpha1/defaults.go b/pkg/apis/componentconfig/v1alpha1/defaults.go index 6a5137f92b..63812f59a3 100644 --- a/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -55,13 +55,7 @@ var ( ) func addDefaultingFuncs(scheme *kruntime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_KubeProxyConfiguration, - SetDefaults_KubeSchedulerConfiguration, - SetDefaults_LeaderElectionConfiguration, - SetDefaults_KubeletConfiguration, - ) + return RegisterDefaults(scheme) } func SetDefaults_KubeProxyConfiguration(obj *KubeProxyConfiguration) { diff --git a/pkg/apis/extensions/v1beta1/defaults.go b/pkg/apis/extensions/v1beta1/defaults.go index cebb54ac8b..0618665233 100644 --- a/pkg/apis/extensions/v1beta1/defaults.go +++ b/pkg/apis/extensions/v1beta1/defaults.go @@ -24,13 +24,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_DaemonSet, - SetDefaults_Deployment, - SetDefaults_ReplicaSet, - SetDefaults_NetworkPolicy, - ) + return RegisterDefaults(scheme) } func SetDefaults_DaemonSet(obj *DaemonSet) { diff --git a/pkg/apis/imagepolicy/v1alpha1/register.go b/pkg/apis/imagepolicy/v1alpha1/register.go index 81ac79a8a9..3f323a851f 100644 --- a/pkg/apis/imagepolicy/v1alpha1/register.go +++ b/pkg/apis/imagepolicy/v1alpha1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/apis/policy/v1alpha1/BUILD b/pkg/apis/policy/v1alpha1/BUILD index ec13378d8d..090ad5d719 100644 --- a/pkg/apis/policy/v1alpha1/BUILD +++ b/pkg/apis/policy/v1alpha1/BUILD @@ -13,6 +13,7 @@ go_library( "doc.go", "register.go", "types.go", + "zz_generated.defaults.go", ], tags = ["automanaged"], deps = [ diff --git a/pkg/apis/policy/v1alpha1/doc.go b/pkg/apis/policy/v1alpha1/doc.go index 5afe42a12b..652f9f9eaf 100644 --- a/pkg/apis/policy/v1alpha1/doc.go +++ b/pkg/apis/policy/v1alpha1/doc.go @@ -14,6 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// +k8s:defaulter-gen=TypeMeta + // Package policy is for any kind of policy object. Suitable examples, even if // they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, // NetworkPolicy, etc. diff --git a/pkg/apis/policy/v1alpha1/register.go b/pkg/apis/policy/v1alpha1/register.go index 6f515361da..45be842a2c 100644 --- a/pkg/apis/policy/v1alpha1/register.go +++ b/pkg/apis/policy/v1alpha1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/apis/policy/v1alpha1/zz_generated.defaults.go b/pkg/apis/policy/v1alpha1/zz_generated.defaults.go new file mode 100644 index 0000000000..7e6df29d4a --- /dev/null +++ b/pkg/apis/policy/v1alpha1/zz_generated.defaults.go @@ -0,0 +1,32 @@ +// +build !ignore_autogenerated + +/* +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 autogenerated by defaulter-gen. Do not edit it manually! + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil +} diff --git a/pkg/apis/policy/v1beta1/BUILD b/pkg/apis/policy/v1beta1/BUILD index 47990f1c8d..d152f9beeb 100644 --- a/pkg/apis/policy/v1beta1/BUILD +++ b/pkg/apis/policy/v1beta1/BUILD @@ -18,6 +18,7 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.conversion.go", "zz_generated.deepcopy.go", + "zz_generated.defaults.go", ], tags = ["automanaged"], deps = [ diff --git a/pkg/apis/policy/v1beta1/doc.go b/pkg/apis/policy/v1beta1/doc.go index 62d5118a50..d867ebf232 100644 --- a/pkg/apis/policy/v1beta1/doc.go +++ b/pkg/apis/policy/v1beta1/doc.go @@ -16,6 +16,7 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/policy +// +k8s:defaulter-gen=TypeMeta // Package policy is for any kind of policy object. Suitable examples, even if // they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, diff --git a/pkg/apis/policy/v1beta1/register.go b/pkg/apis/policy/v1beta1/register.go index 52bd65c8ba..75f9f7eb5e 100644 --- a/pkg/apis/policy/v1beta1/register.go +++ b/pkg/apis/policy/v1beta1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/api/defaults.go b/pkg/apis/policy/v1beta1/zz_generated.defaults.go similarity index 54% rename from pkg/api/defaults.go rename to pkg/apis/policy/v1beta1/zz_generated.defaults.go index baa49a8d7e..e24e70be38 100644 --- a/pkg/api/defaults.go +++ b/pkg/apis/policy/v1beta1/zz_generated.defaults.go @@ -1,5 +1,7 @@ +// +build !ignore_autogenerated + /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,23 +16,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +// This file was autogenerated by defaulter-gen. Do not edit it manually! + +package v1beta1 import ( - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) -func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs( - func(obj *ListOptions) { - if obj.LabelSelector == nil { - obj.LabelSelector = labels.Everything() - } - if obj.FieldSelector == nil { - obj.FieldSelector = fields.Everything() - } - }, - ) +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil } diff --git a/pkg/apis/rbac/v1alpha1/defaults.go b/pkg/apis/rbac/v1alpha1/defaults.go index 49e934916e..daa86a0e16 100644 --- a/pkg/apis/rbac/v1alpha1/defaults.go +++ b/pkg/apis/rbac/v1alpha1/defaults.go @@ -21,12 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_ClusterRoleBinding, - SetDefaults_RoleBinding, - SetDefaults_Subject, - ) + return RegisterDefaults(scheme) } func SetDefaults_ClusterRoleBinding(obj *ClusterRoleBinding) { diff --git a/pkg/apis/rbac/v1beta1/defaults.go b/pkg/apis/rbac/v1beta1/defaults.go index 6c29ae500e..c1cf8c23c1 100644 --- a/pkg/apis/rbac/v1beta1/defaults.go +++ b/pkg/apis/rbac/v1beta1/defaults.go @@ -21,12 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_ClusterRoleBinding, - SetDefaults_RoleBinding, - SetDefaults_Subject, - ) + return RegisterDefaults(scheme) } func SetDefaults_ClusterRoleBinding(obj *ClusterRoleBinding) { diff --git a/pkg/apis/settings/v1alpha1/register.go b/pkg/apis/settings/v1alpha1/register.go index 45afb50ca9..205fed92e2 100644 --- a/pkg/apis/settings/v1alpha1/register.go +++ b/pkg/apis/settings/v1alpha1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/apis/storage/v1/register.go b/pkg/apis/storage/v1/register.go index 24d6bfa7d3..b8dbd7b878 100644 --- a/pkg/apis/storage/v1/register.go +++ b/pkg/apis/storage/v1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/pkg/apis/storage/v1beta1/register.go b/pkg/apis/storage/v1beta1/register.go index 70087f3797..9f3f55b1d9 100644 --- a/pkg/apis/storage/v1beta1/register.go +++ b/pkg/apis/storage/v1beta1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/defaults.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/defaults.go index c4c5a0e9b7..a4733c3db6 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/defaults.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/defaults.go @@ -19,10 +19,5 @@ package v1alpha1 import "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_Configuration, - ) + return RegisterDefaults(scheme) } - -func SetDefaults_Configuration(obj *Configuration) {} diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go index 53f9cb92ef..7e6df29d4a 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go @@ -28,10 +28,5 @@ import ( // Public to allow building arbitrary schemes. // All generated defaulters are covering - they call all nested defaulters. func RegisterDefaults(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&Configuration{}, func(obj interface{}) { SetObjectDefaults_Configuration(obj.(*Configuration)) }) return nil } - -func SetObjectDefaults_Configuration(in *Configuration) { - SetDefaults_Configuration(in) -} diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/defaults.go b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/defaults.go index 9c417c91c5..ebade2de23 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/defaults.go +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/defaults.go @@ -19,10 +19,7 @@ package v1alpha1 import kruntime "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *kruntime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_Configuration, - ) + return RegisterDefaults(scheme) } func SetDefaults_Configuration(obj *Configuration) {} diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go b/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go index 9ab468ebe2..7854c207c7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go @@ -66,12 +66,6 @@ type Converter struct { // source field name and type to look for. structFieldSources map[typeNamePair][]typeNamePair - // Map from a type to a function which applies defaults. - defaultingFuncs map[reflect.Type]reflect.Value - - // Similar to above, but function is stored as interface{}. - defaultingInterfaces map[reflect.Type]interface{} - // Map from an input type to a function which can apply a key name mapping inputFieldMappingFuncs map[reflect.Type]FieldMappingFunc @@ -93,8 +87,6 @@ func NewConverter(nameFn NameFunc) *Converter { conversionFuncs: NewConversionFuncs(), generatedConversionFuncs: NewConversionFuncs(), ignoredConversions: make(map[typePair]struct{}), - defaultingFuncs: make(map[reflect.Type]reflect.Value), - defaultingInterfaces: make(map[reflect.Type]interface{}), nameFunc: nameFn, structFieldDests: make(map[typeNamePair][]typeNamePair), structFieldSources: make(map[typeNamePair][]typeNamePair), @@ -152,10 +144,6 @@ type Scope interface { // on the current stack frame. This makes it safe to call from a conversion func. DefaultConvert(src, dest interface{}, flags FieldMatchingFlags) error - // If registered, returns a function applying defaults for objects of a given type. - // Used for automatically generating conversion functions. - DefaultingInterface(inType reflect.Type) (interface{}, bool) - // SrcTags and DestTags contain the struct tags that src and dest had, respectively. // If the enclosing object was not a struct, then these will contain no tags, of course. SrcTag() reflect.StructTag @@ -269,11 +257,6 @@ func (s scopeStack) describe() string { return desc } -func (s *scope) DefaultingInterface(inType reflect.Type) (interface{}, bool) { - value, found := s.converter.defaultingInterfaces[inType] - return value, found -} - // Formats src & dest as indices for printing. func (s *scope) setIndices(src, dest int) { s.srcStack.top().key = fmt.Sprintf("[%v]", src) @@ -430,35 +413,6 @@ func (c *Converter) SetStructFieldCopy(srcFieldType interface{}, srcFieldName st return nil } -// RegisterDefaultingFunc registers a value-defaulting func with the Converter. -// defaultingFunc must take one parameter: a pointer to the input type. -// -// Example: -// c.RegisterDefaultingFunc( -// func(in *v1.Pod) { -// // defaulting logic... -// }) -func (c *Converter) RegisterDefaultingFunc(defaultingFunc interface{}) error { - fv := reflect.ValueOf(defaultingFunc) - ft := fv.Type() - if ft.Kind() != reflect.Func { - return fmt.Errorf("expected func, got: %v", ft) - } - if ft.NumIn() != 1 { - return fmt.Errorf("expected one 'in' param, got: %v", ft) - } - if ft.NumOut() != 0 { - return fmt.Errorf("expected zero 'out' params, got: %v", ft) - } - if ft.In(0).Kind() != reflect.Ptr { - return fmt.Errorf("expected pointer arg for 'in' param 0, got: %v", ft) - } - inType := ft.In(0).Elem() - c.defaultingFuncs[inType] = fv - c.defaultingInterfaces[inType] = defaultingFunc - return nil -} - // RegisterInputDefaults registers a field name mapping function, used when converting // from maps to structs. Inputs to the conversion methods are checked for this type and a mapping // applied automatically if the input matches in. A set of default flags for the input conversion @@ -596,15 +550,6 @@ func (c *Converter) callCustom(sv, dv, custom reflect.Value, scope *scope) error // one is registered. func (c *Converter) convert(sv, dv reflect.Value, scope *scope) error { dt, st := dv.Type(), sv.Type() - // Apply default values. - if fv, ok := c.defaultingFuncs[st]; ok { - if c.Debug != nil { - c.Debug.Logf("Applying defaults for '%v'", st) - } - args := []reflect.Value{sv.Addr()} - fv.Call(args) - } - pair := typePair{st, dt} // ignore conversions of this type diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go b/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go index fbec6ad9bc..e5d3d37470 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go @@ -404,29 +404,6 @@ func (s *Scheme) RegisterInputDefaults(in interface{}, fn conversion.FieldMappin return s.converter.RegisterInputDefaults(in, fn, defaultFlags) } -// AddDefaultingFuncs adds functions to the list of default-value functions. -// Each of the given functions is responsible for applying default values -// when converting an instance of a versioned API object into an internal -// API object. These functions do not need to handle sub-objects. We deduce -// how to call these functions from the types of their two parameters. -// -// s.AddDefaultingFuncs( -// func(obj *v1.Pod) { -// if obj.OptionalField == "" { -// obj.OptionalField = "DefaultValue" -// } -// }, -// ) -func (s *Scheme) AddDefaultingFuncs(defaultingFuncs ...interface{}) error { - for _, f := range defaultingFuncs { - err := s.converter.RegisterDefaultingFunc(f) - if err != nil { - return err - } - } - return nil -} - // AddTypeDefaultingFuncs registers a function that is passed a pointer to an // object and can default fields on the object. These functions will be invoked // when Default() is called. The function will never be called unless the diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go index 1d7a52d669..c18a62f1f9 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go @@ -16,6 +16,7 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/apis/apiserver +// +k8s:defaulter-gen=TypeMeta // Package v1alpha1 is the v1alpha1 version of the API. // +groupName=apiserver.k8s.io diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/defaults.go index fa9baa0987..436ccde296 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/defaults.go @@ -21,5 +21,6 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { + // return RegisterDefaults(scheme) return nil } diff --git a/staging/src/k8s.io/client-go/pkg/api/register.go b/staging/src/k8s.io/client-go/pkg/api/register.go index bd842b182e..23cfaabdbe 100644 --- a/staging/src/k8s.io/client-go/pkg/api/register.go +++ b/staging/src/k8s.io/client-go/pkg/api/register.go @@ -68,7 +68,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addDefaultingFuncs) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go index 17b0deb01f..8324ebd50a 100644 --- a/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go @@ -24,37 +24,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_PodExecOptions, - SetDefaults_PodAttachOptions, - SetDefaults_ReplicationController, - SetDefaults_Volume, - SetDefaults_ContainerPort, - SetDefaults_Container, - SetDefaults_ServiceSpec, - SetDefaults_Pod, - SetDefaults_PodSpec, - SetDefaults_Probe, - SetDefaults_SecretVolumeSource, - SetDefaults_ConfigMapVolumeSource, - SetDefaults_DownwardAPIVolumeSource, - SetDefaults_ProjectedVolumeSource, - SetDefaults_Secret, - SetDefaults_PersistentVolume, - SetDefaults_PersistentVolumeClaim, - SetDefaults_ISCSIVolumeSource, - SetDefaults_Endpoints, - SetDefaults_HTTPGetAction, - SetDefaults_NamespaceStatus, - SetDefaults_Node, - SetDefaults_NodeStatus, - SetDefaults_ObjectFieldSelector, - SetDefaults_LimitRangeItem, - SetDefaults_ConfigMap, - SetDefaults_RBDVolumeSource, - SetDefaults_ResourceList, - ) + return RegisterDefaults(scheme) } func SetDefaults_ResourceList(obj *ResourceList) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go index 004cecd3f0..def2bab711 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go @@ -23,11 +23,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_StatefulSet, - SetDefaults_Deployment, - ) + return RegisterDefaults(scheme) } func SetDefaults_StatefulSet(obj *StatefulSet) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/authentication/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/authentication/v1/defaults.go index d63d917543..074e15baed 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/authentication/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/authentication/v1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/staging/src/k8s.io/client-go/pkg/apis/authentication/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/authentication/v1beta1/defaults.go index 1a4566479f..37abb53bd2 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/authentication/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/authentication/v1beta1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/staging/src/k8s.io/client-go/pkg/apis/authorization/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/authorization/v1/defaults.go index d63d917543..074e15baed 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/authorization/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/authorization/v1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/staging/src/k8s.io/client-go/pkg/apis/authorization/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/authorization/v1beta1/defaults.go index cb49b06ac2..7d689a4cc8 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/authorization/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/authorization/v1beta1/defaults.go @@ -21,5 +21,5 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs() + return RegisterDefaults(scheme) } diff --git a/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v1/defaults.go index d423ad1253..aeece5b81b 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_HorizontalPodAutoscaler, - ) + return RegisterDefaults(scheme) } func SetDefaults_HorizontalPodAutoscaler(obj *HorizontalPodAutoscaler) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/defaults.go index 6cc60d298a..7533cc4a36 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/defaults.go @@ -23,9 +23,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs( - SetDefaults_HorizontalPodAutoscaler, - ) + return RegisterDefaults(scheme) } func SetDefaults_HorizontalPodAutoscaler(obj *HorizontalPodAutoscaler) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go new file mode 100644 index 0000000000..eb20be97c7 --- /dev/null +++ b/staging/src/k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go @@ -0,0 +1,47 @@ +// +build !ignore_autogenerated + +/* +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 autogenerated by defaulter-gen. Do not edit it manually! + +package v2alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&HorizontalPodAutoscaler{}, func(obj interface{}) { SetObjectDefaults_HorizontalPodAutoscaler(obj.(*HorizontalPodAutoscaler)) }) + scheme.AddTypeDefaultingFunc(&HorizontalPodAutoscalerList{}, func(obj interface{}) { + SetObjectDefaults_HorizontalPodAutoscalerList(obj.(*HorizontalPodAutoscalerList)) + }) + return nil +} + +func SetObjectDefaults_HorizontalPodAutoscaler(in *HorizontalPodAutoscaler) { + SetDefaults_HorizontalPodAutoscaler(in) +} + +func SetObjectDefaults_HorizontalPodAutoscalerList(in *HorizontalPodAutoscalerList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_HorizontalPodAutoscaler(a) + } +} diff --git a/staging/src/k8s.io/client-go/pkg/apis/batch/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/batch/v1/defaults.go index 3603247f24..9c246a594c 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/batch/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/batch/v1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_Job, - ) + return RegisterDefaults(scheme) } func SetDefaults_Job(obj *Job) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/batch/v2alpha1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/batch/v2alpha1/defaults.go index 6da07cc7d2..292f8886e2 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/batch/v2alpha1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/batch/v2alpha1/defaults.go @@ -21,10 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_CronJob, - ) + return RegisterDefaults(scheme) } func SetDefaults_CronJob(obj *CronJob) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/certificates/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/certificates/v1beta1/defaults.go index cd6a29d339..e18af02f61 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/certificates/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/certificates/v1beta1/defaults.go @@ -19,10 +19,7 @@ package v1beta1 import "k8s.io/apimachinery/pkg/runtime" func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_CertificateSigningRequestSpec, - ) + return RegisterDefaults(scheme) } func SetDefaults_CertificateSigningRequestSpec(obj *CertificateSigningRequestSpec) { if obj.Usages == nil { diff --git a/staging/src/k8s.io/client-go/pkg/apis/extensions/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/extensions/v1beta1/defaults.go index 3bc57b7fc4..561917721c 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/extensions/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/extensions/v1beta1/defaults.go @@ -24,13 +24,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_DaemonSet, - SetDefaults_Deployment, - SetDefaults_ReplicaSet, - SetDefaults_NetworkPolicy, - ) + return RegisterDefaults(scheme) } func SetDefaults_DaemonSet(obj *DaemonSet) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/register.go b/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/register.go index 52bd65c8ba..75f9f7eb5e 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/register.go +++ b/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/staging/src/k8s.io/client-go/pkg/api/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.defaults.go similarity index 54% rename from staging/src/k8s.io/client-go/pkg/api/defaults.go rename to staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.defaults.go index baa49a8d7e..e24e70be38 100644 --- a/staging/src/k8s.io/client-go/pkg/api/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.defaults.go @@ -1,5 +1,7 @@ +// +build !ignore_autogenerated + /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,23 +16,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +// This file was autogenerated by defaulter-gen. Do not edit it manually! + +package v1beta1 import ( - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) -func addDefaultingFuncs(scheme *runtime.Scheme) error { - return scheme.AddDefaultingFuncs( - func(obj *ListOptions) { - if obj.LabelSelector == nil { - obj.LabelSelector = labels.Everything() - } - if obj.FieldSelector == nil { - obj.FieldSelector = fields.Everything() - } - }, - ) +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil } diff --git a/staging/src/k8s.io/client-go/pkg/apis/rbac/v1alpha1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/rbac/v1alpha1/defaults.go index 49e934916e..daa86a0e16 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/rbac/v1alpha1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/rbac/v1alpha1/defaults.go @@ -21,12 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_ClusterRoleBinding, - SetDefaults_RoleBinding, - SetDefaults_Subject, - ) + return RegisterDefaults(scheme) } func SetDefaults_ClusterRoleBinding(obj *ClusterRoleBinding) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/rbac/v1beta1/defaults.go b/staging/src/k8s.io/client-go/pkg/apis/rbac/v1beta1/defaults.go index 6c29ae500e..c1cf8c23c1 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/rbac/v1beta1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/rbac/v1beta1/defaults.go @@ -21,12 +21,7 @@ import ( ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - RegisterDefaults(scheme) - return scheme.AddDefaultingFuncs( - SetDefaults_ClusterRoleBinding, - SetDefaults_RoleBinding, - SetDefaults_Subject, - ) + return RegisterDefaults(scheme) } func SetDefaults_ClusterRoleBinding(obj *ClusterRoleBinding) { diff --git a/staging/src/k8s.io/client-go/pkg/apis/settings/v1alpha1/register.go b/staging/src/k8s.io/client-go/pkg/apis/settings/v1alpha1/register.go index 45afb50ca9..205fed92e2 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/settings/v1alpha1/register.go +++ b/staging/src/k8s.io/client-go/pkg/apis/settings/v1alpha1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/staging/src/k8s.io/client-go/pkg/apis/storage/v1/register.go b/staging/src/k8s.io/client-go/pkg/apis/storage/v1/register.go index 24d6bfa7d3..b8dbd7b878 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/storage/v1/register.go +++ b/staging/src/k8s.io/client-go/pkg/apis/storage/v1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/staging/src/k8s.io/client-go/pkg/apis/storage/v1beta1/register.go b/staging/src/k8s.io/client-go/pkg/apis/storage/v1beta1/register.go index 70087f3797..9f3f55b1d9 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/storage/v1beta1/register.go +++ b/staging/src/k8s.io/client-go/pkg/apis/storage/v1beta1/register.go @@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource { } var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, RegisterDefaults) AddToScheme = SchemeBuilder.AddToScheme ) diff --git a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh index 0bcf8082ef..8de8bef398 100755 --- a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh +++ b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh @@ -18,8 +18,8 @@ set -o errexit set -o nounset set -o pipefail -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../../.. -APIFEDERATOR_ROOT=$(dirname "${BASH_SOURCE}")/.. +KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../../../../.. +EXAMPLE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" # Register function to be called on EXIT to remove generated binary. diff --git a/staging/src/k8s.io/sample-apiserver/hack/verify-codegen.sh b/staging/src/k8s.io/sample-apiserver/hack/verify-codegen.sh new file mode 100755 index 0000000000..0ca0c01018 --- /dev/null +++ b/staging/src/k8s.io/sample-apiserver/hack/verify-codegen.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../../../../.. +EXAMPLE_ROOT=$(dirname "${BASH_SOURCE}")/.. +source "${KUBE_ROOT}/hack/lib/init.sh" + +DIFFROOT="${EXAMPLE_ROOT}/pkg" +TMP_DIFFROOT="${EXAMPLE_ROOT}/_tmp/pkg" +_tmp="${EXAMPLE_ROOT}/_tmp" + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +mkdir -p "${TMP_DIFFROOT}" +cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}" + +"${EXAMPLE_ROOT}/hack/update-codegen.sh" +echo "diffing ${DIFFROOT} against freshly generated codegen" +ret=0 +diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? +cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}" +if [[ $ret -eq 0 ]] +then + echo "${DIFFROOT} up to date." +else + echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh" + exit 1 +fi diff --git a/vendor/BUILD b/vendor/BUILD index e2c324931d..9c85c27ad1 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -13899,7 +13899,6 @@ go_library( name = "k8s.io/client-go/pkg/api", srcs = [ "k8s.io/client-go/pkg/api/annotation_key_constants.go", - "k8s.io/client-go/pkg/api/defaults.go", "k8s.io/client-go/pkg/api/doc.go", "k8s.io/client-go/pkg/api/field_constants.go", "k8s.io/client-go/pkg/api/json.go", @@ -14312,6 +14311,7 @@ go_library( "k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/types_swagger_doc_generated.go", "k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.conversion.go", "k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.deepcopy.go", + "k8s.io/client-go/pkg/apis/autoscaling/v2alpha1/zz_generated.defaults.go", ], tags = ["automanaged"], deps = [ @@ -14602,6 +14602,7 @@ go_library( "k8s.io/client-go/pkg/apis/policy/v1beta1/types_swagger_doc_generated.go", "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.conversion.go", "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.deepcopy.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.defaults.go", ], tags = ["automanaged"], deps = [