mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #44779 from enj/enj/r/etcd_default_name_copy
Automatic merge from submit-queue (batch tested with PRs 44837, 44779, 44492) Default ObjectNameFunc for all REST Stores All `Store`s in Kubernetes follow the same logic for determining the name of an object. This change makes it so that `CompleteWithOptions` defaults the `ObjectNameFunc` if it is not specified. Thus a user does not need to remember to use `ObjectMeta.Name`. Using the wrong field as the name can lead to an object which has a name that bypasses normal object name validation. Signed-off-by: Monis Khan <mkhan@redhat.com> cc @liggitt @soltysh for review **Release note**: ``` NONE ```
This commit is contained in:
commit
c90faa8071
@ -48,12 +48,9 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
||||
// NewREST returns a RESTStorage object that will work against clusters.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
||||
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*federation.Cluster).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
||||
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
||||
PredicateFunc: cluster.MatchCluster,
|
||||
QualifiedResource: federation.Resource("clusters"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusters"),
|
||||
|
@ -37,12 +37,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
||||
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*appsapi.StatefulSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
||||
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
||||
PredicateFunc: petset.MatchStatefulSet,
|
||||
QualifiedResource: appsapi.Resource("statefulsets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"),
|
||||
|
@ -36,12 +36,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
||||
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*autoscaling.HorizontalPodAutoscaler).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
||||
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
||||
PredicateFunc: horizontalpodautoscaler.MatchAutoscaler,
|
||||
QualifiedResource: autoscaling.Resource("horizontalpodautoscalers"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"),
|
||||
|
@ -37,12 +37,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against CronJobs.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*batch.CronJob).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
||||
PredicateFunc: cronjob.MatchCronJob,
|
||||
QualifiedResource: batch.Resource("cronjobs"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("cronjobs"),
|
||||
|
@ -52,12 +52,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against Jobs.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.Job{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*batch.Job).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.Job{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
||||
PredicateFunc: job.MatchJob,
|
||||
QualifiedResource: batch.Resource("jobs"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("jobs"),
|
||||
|
@ -36,12 +36,9 @@ type REST struct {
|
||||
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *ApprovalREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
||||
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*certificates.CertificateSigningRequest).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
||||
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
||||
PredicateFunc: csrregistry.Matcher,
|
||||
QualifiedResource: certificates.Resource("certificatesigningrequests"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ConfigMap).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
||||
PredicateFunc: configmap.MatchConfigMap,
|
||||
QualifiedResource: api.Resource("configmaps"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"),
|
||||
|
@ -33,12 +33,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against endpoints.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Endpoints).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
||||
PredicateFunc: endpoint.MatchEndpoints,
|
||||
QualifiedResource: api.Resource("endpoints"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"),
|
||||
|
@ -43,12 +43,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
|
||||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Event{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Event).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Event{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
||||
PredicateFunc: event.MatchEvent,
|
||||
TTLFunc: func(runtime.Object, uint64, bool) (uint64, error) {
|
||||
return ttl, nil
|
||||
|
@ -33,12 +33,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
||||
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.LimitRange).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
||||
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
||||
PredicateFunc: limitrange.MatchLimitRange,
|
||||
QualifiedResource: api.Resource("limitranges"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"),
|
||||
|
@ -52,12 +52,9 @@ type FinalizeREST struct {
|
||||
// NewREST returns a RESTStorage object that will work against namespaces.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *FinalizeREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Namespace).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
||||
PredicateFunc: namespace.MatchNamespace,
|
||||
QualifiedResource: api.Resource("namespaces"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("namespaces"),
|
||||
|
@ -72,12 +72,9 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
||||
// NewStorage returns a NodeStorage object that will work against nodes.
|
||||
func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client.KubeletClientConfig, proxyTransport http.RoundTripper) (*NodeStorage, error) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Node{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Node).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Node{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
||||
PredicateFunc: node.MatchNode,
|
||||
QualifiedResource: api.Resource("nodes"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("nodes"),
|
||||
|
@ -35,12 +35,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PersistentVolume).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
||||
PredicateFunc: persistentvolume.MatchPersistentVolumes,
|
||||
QualifiedResource: api.Resource("persistentvolumes"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumes"),
|
||||
|
@ -35,12 +35,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against persistent volume claims.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PersistentVolumeClaim).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
||||
PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim,
|
||||
QualifiedResource: api.Resource("persistentvolumeclaims"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumeclaims"),
|
||||
|
@ -62,12 +62,9 @@ type REST struct {
|
||||
// NewStorage returns a RESTStorage object that will work against pods.
|
||||
func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGetter, proxyTransport http.RoundTripper, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) PodStorage {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Pod).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||
PredicateFunc: pod.MatchPod,
|
||||
QualifiedResource: api.Resource("pods"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("pods"),
|
||||
|
@ -32,12 +32,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against pod templates.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PodTemplate).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
||||
PredicateFunc: podtemplate.MatchPodTemplate,
|
||||
QualifiedResource: api.Resource("podtemplates"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"),
|
||||
|
@ -61,12 +61,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ReplicationController).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
||||
PredicateFunc: replicationcontroller.MatchController,
|
||||
QualifiedResource: api.Resource("replicationcontrollers"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicationcontrollers"),
|
||||
|
@ -35,12 +35,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against resource quotas.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ResourceQuota).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
||||
PredicateFunc: resourcequota.MatchResourceQuota,
|
||||
QualifiedResource: api.Resource("resourcequotas"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"),
|
||||
|
@ -32,12 +32,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against secrets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Secret{} },
|
||||
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Secret).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Secret{} },
|
||||
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
||||
PredicateFunc: secret.Matcher,
|
||||
QualifiedResource: api.Resource("secrets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("secrets"),
|
||||
|
@ -35,12 +35,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against services.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Service{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Service).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Service{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
||||
PredicateFunc: service.MatchServices,
|
||||
QualifiedResource: api.Resource("services"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"),
|
||||
|
@ -33,12 +33,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against service accounts.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ServiceAccount).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
||||
PredicateFunc: serviceaccount.Matcher,
|
||||
QualifiedResource: api.Resource("serviceaccounts"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"),
|
||||
|
@ -37,12 +37,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against DaemonSets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.DaemonSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
||||
PredicateFunc: daemonset.MatchDaemonSet,
|
||||
QualifiedResource: extensions.Resource("daemonsets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"),
|
||||
|
@ -63,12 +63,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against deployments.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *RollbackREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.Deployment).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
||||
PredicateFunc: deployment.MatchDeployment,
|
||||
QualifiedResource: extensions.Resource("deployments"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"),
|
||||
|
@ -37,12 +37,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.Ingress).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
||||
PredicateFunc: ingress.MatchIngress,
|
||||
QualifiedResource: extensions.Resource("ingresses"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against network policies.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensionsapi.NetworkPolicy).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
||||
PredicateFunc: networkpolicy.MatchNetworkPolicy,
|
||||
QualifiedResource: extensionsapi.Resource("networkpolicies"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.PodSecurityPolicy).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
||||
PredicateFunc: podsecuritypolicy.MatchPodSecurityPolicy,
|
||||
QualifiedResource: extensions.Resource("podsecuritypolicies"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podsecuritypolicies"),
|
||||
|
@ -60,12 +60,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against ReplicaSet.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ReplicaSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
||||
PredicateFunc: replicaset.MatchReplicaSet,
|
||||
QualifiedResource: extensions.Resource("replicasets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicasets"),
|
||||
|
@ -43,12 +43,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ThirdPartyResource).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
||||
PredicateFunc: thirdpartyresource.Matcher,
|
||||
QualifiedResource: resource,
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource),
|
||||
|
@ -47,12 +47,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter, group, kind string) *REST {
|
||||
opts.ResourcePrefix = "/ThirdPartyResourceData/" + group + "/" + strings.ToLower(kind) + "s"
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ThirdPartyResourceData).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
||||
PredicateFunc: thirdpartyresourcedata.Matcher,
|
||||
QualifiedResource: resource,
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource),
|
||||
|
@ -37,12 +37,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
||||
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*policyapi.PodDisruptionBudget).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
||||
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
||||
PredicateFunc: poddisruptionbudget.MatchPodDisruptionBudget,
|
||||
QualifiedResource: policyapi.Resource("poddisruptionbudgets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("poddisruptionbudgets"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.ClusterRole).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
||||
PredicateFunc: clusterrole.Matcher,
|
||||
QualifiedResource: rbac.Resource("clusterroles"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterroles"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.ClusterRoleBinding).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
||||
PredicateFunc: clusterrolebinding.Matcher,
|
||||
QualifiedResource: rbac.Resource("clusterrolebindings"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterrolebindings"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against Role objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.Role).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
||||
PredicateFunc: role.Matcher,
|
||||
QualifiedResource: rbac.Resource("roles"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("roles"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.RoleBinding).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
||||
PredicateFunc: rolebinding.Matcher,
|
||||
QualifiedResource: rbac.Resource("rolebindings"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("rolebindings"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} },
|
||||
NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*settingsapi.PodPreset).GetName(), nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} },
|
||||
NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} },
|
||||
PredicateFunc: podpreset.Matcher,
|
||||
QualifiedResource: settingsapi.Resource("podpresets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podpresets"),
|
||||
|
@ -34,12 +34,9 @@ type REST struct {
|
||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
||||
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*storageapi.StorageClass).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
||||
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
||||
PredicateFunc: storageclass.MatchStorageClasses,
|
||||
QualifiedResource: storageapi.Resource("storageclasses"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("storageclass"),
|
||||
|
@ -1194,6 +1194,16 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error {
|
||||
|
||||
e.EnableGarbageCollection = opts.EnableGarbageCollection
|
||||
|
||||
if e.ObjectNameFunc == nil {
|
||||
e.ObjectNameFunc = func(obj runtime.Object) (string, error) {
|
||||
accessor, err := meta.Accessor(obj)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return accessor.GetName(), nil
|
||||
}
|
||||
}
|
||||
|
||||
if e.Storage == nil {
|
||||
capacity := DefaultWatchCacheSize
|
||||
if e.WatchCacheSize != 0 {
|
||||
|
@ -33,12 +33,9 @@ type REST struct {
|
||||
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST {
|
||||
strategy := apiservice.NewStrategy(scheme)
|
||||
store := &genericregistry.Store{
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
||||
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*apiregistration.APIService).Name, nil
|
||||
},
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
||||
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
||||
PredicateFunc: apiservice.MatchAPIService,
|
||||
QualifiedResource: apiregistration.Resource("apiservices"),
|
||||
WatchCacheSize: 100,
|
||||
|
@ -33,12 +33,9 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST
|
||||
strategy := NewStrategy(scheme)
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &wardle.Flunder{} },
|
||||
NewListFunc: func() runtime.Object { return &wardle.FlunderList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*wardle.Flunder).Name, nil
|
||||
},
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &wardle.Flunder{} },
|
||||
NewListFunc: func() runtime.Object { return &wardle.FlunderList{} },
|
||||
PredicateFunc: MatchFlunder,
|
||||
QualifiedResource: wardle.Resource("flunders"),
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user