move name generation to generic api server storage helpers

This commit is contained in:
deads2k 2017-01-13 14:56:52 -05:00
parent 8686d67c80
commit a3e71b2cef
83 changed files with 177 additions and 95 deletions

View File

@ -22,6 +22,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
kapi "k8s.io/kubernetes/pkg/api" kapi "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
@ -34,10 +35,10 @@ import (
type apiServerStrategy struct { type apiServerStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
kapi.NameGenerator names.NameGenerator
} }
var Strategy = apiServerStrategy{kapi.Scheme, kapi.SimpleNameGenerator} var Strategy = apiServerStrategy{kapi.Scheme, names.SimpleNameGenerator}
func (apiServerStrategy) NamespaceScoped() bool { func (apiServerStrategy) NamespaceScoped() bool {
return false return false

View File

@ -22,6 +22,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup" "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -61,7 +62,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
type fakeStrategy struct { type fakeStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
func (*fakeStrategy) NamespaceScoped() bool { return false } func (*fakeStrategy) NamespaceScoped() bool { return false }
@ -71,7 +72,7 @@ func (*fakeStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object)
} }
func (*fakeStrategy) Canonicalize(obj runtime.Object) {} func (*fakeStrategy) Canonicalize(obj runtime.Object) {}
var strategy = &fakeStrategy{api.Scheme, api.SimpleNameGenerator} var strategy = &fakeStrategy{api.Scheme, names.SimpleNameGenerator}
func getAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { func getAttrs(obj runtime.Object) (labels.Set, fields.Set, error) {
testType, ok := obj.(*testgroup.TestType) testType, ok := obj.(*testgroup.TestType)

View File

@ -29,6 +29,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/federation/apis/federation" "k8s.io/kubernetes/federation/apis/federation"
"k8s.io/kubernetes/federation/apis/federation/validation" "k8s.io/kubernetes/federation/apis/federation/validation"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
@ -33,10 +34,10 @@ import (
type clusterStrategy struct { type clusterStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
var Strategy = clusterStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = clusterStrategy{api.Scheme, names.SimpleNameGenerator}
func (clusterStrategy) NamespaceScoped() bool { func (clusterStrategy) NamespaceScoped() bool {
return false return false

View File

@ -265,6 +265,7 @@ pkg/util/logs
pkg/util/maps pkg/util/maps
pkg/util/metrics pkg/util/metrics
pkg/util/netsh pkg/util/netsh
pkg/util/rand
pkg/util/ratelimit pkg/util/ratelimit
pkg/util/replicaset pkg/util/replicaset
pkg/util/restoptions pkg/util/restoptions

View File

@ -15,7 +15,6 @@ go_library(
"defaults.go", "defaults.go",
"doc.go", "doc.go",
"field_constants.go", "field_constants.go",
"generate.go",
"helpers.go", "helpers.go",
"mapper.go", "mapper.go",
"meta.go", "meta.go",
@ -42,7 +41,6 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/runtime/serializer",
"//vendor:k8s.io/apimachinery/pkg/selection", "//vendor:k8s.io/apimachinery/pkg/selection",
"//vendor:k8s.io/apimachinery/pkg/types", "//vendor:k8s.io/apimachinery/pkg/types",
"//vendor:k8s.io/apimachinery/pkg/util/rand",
"//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
], ],
@ -51,7 +49,6 @@ go_library(
go_test( go_test(
name = "go_default_test", name = "go_default_test",
srcs = [ srcs = [
"generate_test.go",
"helpers_test.go", "helpers_test.go",
"ref_test.go", "ref_test.go",
"resource_helpers_test.go", "resource_helpers_test.go",

View File

@ -34,6 +34,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -22,6 +22,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation/genericvalidation" "k8s.io/kubernetes/pkg/api/validation/genericvalidation"
"k8s.io/kubernetes/pkg/api/validation/path" "k8s.io/kubernetes/pkg/api/validation/path"
@ -34,7 +35,7 @@ type RESTCreateStrategy interface {
runtime.ObjectTyper runtime.ObjectTyper
// The name generate is used when the standard GenerateName field is set. // The name generate is used when the standard GenerateName field is set.
// The NameGenerator will be invoked prior to validation. // The NameGenerator will be invoked prior to validation.
api.NameGenerator names.NameGenerator
// NamespaceScoped returns true if the object must be within a namespace. // NamespaceScoped returns true if the object must be within a namespace.
NamespaceScoped() bool NamespaceScoped() bool
@ -71,7 +72,9 @@ func BeforeCreate(strategy RESTCreateStrategy, ctx genericapirequest.Context, ob
objectMeta.DeletionGracePeriodSeconds = nil objectMeta.DeletionGracePeriodSeconds = nil
strategy.PrepareForCreate(ctx, obj) strategy.PrepareForCreate(ctx, obj)
FillObjectMetaSystemFields(ctx, objectMeta) FillObjectMetaSystemFields(ctx, objectMeta)
api.GenerateName(strategy, objectMeta) if len(objectMeta.GenerateName) > 0 && len(objectMeta.Name) == 0 {
objectMeta.Name = strategy.GenerateName(objectMeta.GenerateName)
}
// ClusterName is ignored and should not be saved // ClusterName is ignored and should not be saved
objectMeta.ClusterName = "" objectMeta.ClusterName = ""

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps"
"k8s.io/kubernetes/pkg/apis/apps/validation" "k8s.io/kubernetes/pkg/apis/apps/validation"
@ -35,11 +36,11 @@ import (
// statefulSetStrategy implements verification logic for Replication StatefulSets. // statefulSetStrategy implements verification logic for Replication StatefulSets.
type statefulSetStrategy struct { type statefulSetStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Replication StatefulSet objects. // Strategy is the default logic that applies when creating and updating Replication StatefulSet objects.
var Strategy = statefulSetStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = statefulSetStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all StatefulSet' need to be within a namespace. // NamespaceScoped returns true because all StatefulSet' need to be within a namespace.
func (statefulSetStrategy) NamespaceScoped() bool { func (statefulSetStrategy) NamespaceScoped() bool {

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/autoscaling"
"k8s.io/kubernetes/pkg/apis/autoscaling/validation" "k8s.io/kubernetes/pkg/apis/autoscaling/validation"
@ -33,12 +34,12 @@ import (
// autoscalerStrategy implements behavior for HorizontalPodAutoscalers // autoscalerStrategy implements behavior for HorizontalPodAutoscalers
type autoscalerStrategy struct { type autoscalerStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating HorizontalPodAutoscaler // Strategy is the default logic that applies when creating and updating HorizontalPodAutoscaler
// objects via the REST API. // objects via the REST API.
var Strategy = autoscalerStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = autoscalerStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for autoscaler. // NamespaceScoped is true for autoscaler.
func (autoscalerStrategy) NamespaceScoped() bool { func (autoscalerStrategy) NamespaceScoped() bool {

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/batch/validation" "k8s.io/kubernetes/pkg/apis/batch/validation"
@ -34,11 +35,11 @@ import (
// scheduledJobStrategy implements verification logic for Replication Controllers. // scheduledJobStrategy implements verification logic for Replication Controllers.
type scheduledJobStrategy struct { type scheduledJobStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating CronJob objects. // Strategy is the default logic that applies when creating and updating CronJob objects.
var Strategy = scheduledJobStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = scheduledJobStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all scheduled jobs need to be within a namespace. // NamespaceScoped returns true because all scheduled jobs need to be within a namespace.
func (scheduledJobStrategy) NamespaceScoped() bool { func (scheduledJobStrategy) NamespaceScoped() bool {

View File

@ -27,6 +27,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -25,6 +25,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/batch/validation" "k8s.io/kubernetes/pkg/apis/batch/validation"
@ -36,11 +37,11 @@ import (
// jobStrategy implements verification logic for Replication Controllers. // jobStrategy implements verification logic for Replication Controllers.
type jobStrategy struct { type jobStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Replication Controller objects. // Strategy is the default logic that applies when creating and updating Replication Controller objects.
var Strategy = jobStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = jobStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all jobs need to be within a namespace. // NamespaceScoped returns true because all jobs need to be within a namespace.
func (jobStrategy) NamespaceScoped() bool { func (jobStrategy) NamespaceScoped() bool {

View File

@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/certificates"
"k8s.io/kubernetes/pkg/apis/certificates/validation" "k8s.io/kubernetes/pkg/apis/certificates/validation"
@ -34,12 +35,12 @@ import (
// csrStrategy implements behavior for CSRs // csrStrategy implements behavior for CSRs
type csrStrategy struct { type csrStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// csrStrategy is the default logic that applies when creating and updating // csrStrategy is the default logic that applies when creating and updating
// CSR objects. // CSR objects.
var Strategy = csrStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = csrStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for CSRs. // NamespaceScoped is true for CSRs.
func (csrStrategy) NamespaceScoped() bool { func (csrStrategy) NamespaceScoped() bool {

View File

@ -29,6 +29,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for ConfigMap objects // strategy implements behavior for ConfigMap objects
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating ConfigMap // Strategy is the default logic that applies when creating and updating ConfigMap
// objects via the REST API. // objects via the REST API.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
// Strategy should implement rest.RESTCreateStrategy // Strategy should implement rest.RESTCreateStrategy
var _ rest.RESTCreateStrategy = Strategy var _ rest.RESTCreateStrategy = Strategy

View File

@ -29,6 +29,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -27,6 +27,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
@ -38,11 +39,11 @@ import (
// rcStrategy implements verification logic for Replication Controllers. // rcStrategy implements verification logic for Replication Controllers.
type rcStrategy struct { type rcStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Replication Controller objects. // Strategy is the default logic that applies when creating and updating Replication Controller objects.
var Strategy = rcStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = rcStrategy{api.Scheme, names.SimpleNameGenerator}
// DefaultGarbageCollectionPolicy returns Orphan because that was the default // DefaultGarbageCollectionPolicy returns Orphan because that was the default
// behavior before the server-side garbage collection was implemented. // behavior before the server-side garbage collection was implemented.

View File

@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
endptspkg "k8s.io/kubernetes/pkg/api/endpoints" endptspkg "k8s.io/kubernetes/pkg/api/endpoints"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
@ -34,12 +35,12 @@ import (
// endpointsStrategy implements behavior for Endpoints // endpointsStrategy implements behavior for Endpoints
type endpointsStrategy struct { type endpointsStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Endpoint // Strategy is the default logic that applies when creating and updating Endpoint
// objects via the REST API. // objects via the REST API.
var Strategy = endpointsStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = endpointsStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for endpoints. // NamespaceScoped is true for endpoints.
func (endpointsStrategy) NamespaceScoped() bool { func (endpointsStrategy) NamespaceScoped() bool {

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -32,12 +33,12 @@ import (
type eventStrategy struct { type eventStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that pplies when creating and updating // Strategy is the default logic that pplies when creating and updating
// Event objects via the REST API. // Event objects via the REST API.
var Strategy = eventStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = eventStrategy{api.Scheme, names.SimpleNameGenerator}
func (eventStrategy) NamespaceScoped() bool { func (eventStrategy) NamespaceScoped() bool {
return true return true

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -32,12 +33,12 @@ import (
type limitrangeStrategy struct { type limitrangeStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating // Strategy is the default logic that applies when creating and updating
// LimitRange objects via the REST API. // LimitRange objects via the REST API.
var Strategy = limitrangeStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = limitrangeStrategy{api.Scheme, names.SimpleNameGenerator}
func (limitrangeStrategy) NamespaceScoped() bool { func (limitrangeStrategy) NamespaceScoped() bool {
return true return true

View File

@ -29,6 +29,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// namespaceStrategy implements behavior for Namespaces // namespaceStrategy implements behavior for Namespaces
type namespaceStrategy struct { type namespaceStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Namespace // Strategy is the default logic that applies when creating and updating Namespace
// objects via the REST API. // objects via the REST API.
var Strategy = namespaceStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = namespaceStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is false for namespaces. // NamespaceScoped is false for namespaces.
func (namespaceStrategy) NamespaceScoped() bool { func (namespaceStrategy) NamespaceScoped() bool {

View File

@ -33,6 +33,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -30,6 +30,7 @@ import (
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -41,12 +42,12 @@ import (
// nodeStrategy implements behavior for nodes // nodeStrategy implements behavior for nodes
type nodeStrategy struct { type nodeStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Nodes is the default logic that applies when creating and updating Node // Nodes is the default logic that applies when creating and updating Node
// objects. // objects.
var Strategy = nodeStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = nodeStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is false for nodes. // NamespaceScoped is false for nodes.
func (nodeStrategy) NamespaceScoped() bool { func (nodeStrategy) NamespaceScoped() bool {

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// persistentvolumeStrategy implements behavior for PersistentVolume objects // persistentvolumeStrategy implements behavior for PersistentVolume objects
type persistentvolumeStrategy struct { type persistentvolumeStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating PersistentVolume // Strategy is the default logic that applies when creating and updating PersistentVolume
// objects via the REST API. // objects via the REST API.
var Strategy = persistentvolumeStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = persistentvolumeStrategy{api.Scheme, names.SimpleNameGenerator}
func (persistentvolumeStrategy) NamespaceScoped() bool { func (persistentvolumeStrategy) NamespaceScoped() bool {
return false return false

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// persistentvolumeclaimStrategy implements behavior for PersistentVolumeClaim objects // persistentvolumeclaimStrategy implements behavior for PersistentVolumeClaim objects
type persistentvolumeclaimStrategy struct { type persistentvolumeclaimStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating PersistentVolumeClaim // Strategy is the default logic that applies when creating and updating PersistentVolumeClaim
// objects via the REST API. // objects via the REST API.
var Strategy = persistentvolumeclaimStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = persistentvolumeclaimStrategy{api.Scheme, names.SimpleNameGenerator}
func (persistentvolumeclaimStrategy) NamespaceScoped() bool { func (persistentvolumeclaimStrategy) NamespaceScoped() bool {
return true return true

View File

@ -31,6 +31,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/net", "//vendor:k8s.io/apimachinery/pkg/util/net",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -33,6 +33,7 @@ import (
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -45,12 +46,12 @@ import (
// podStrategy implements behavior for Pods // podStrategy implements behavior for Pods
type podStrategy struct { type podStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Pod // Strategy is the default logic that applies when creating and updating Pod
// objects via the REST API. // objects via the REST API.
var Strategy = podStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = podStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for pods. // NamespaceScoped is true for pods.
func (podStrategy) NamespaceScoped() bool { func (podStrategy) NamespaceScoped() bool {

View File

@ -24,6 +24,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -32,12 +33,12 @@ import (
// podTemplateStrategy implements behavior for PodTemplates // podTemplateStrategy implements behavior for PodTemplates
type podTemplateStrategy struct { type podTemplateStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating PodTemplate // Strategy is the default logic that applies when creating and updating PodTemplate
// objects via the REST API. // objects via the REST API.
var Strategy = podTemplateStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = podTemplateStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for pod templates. // NamespaceScoped is true for pod templates.
func (podTemplateStrategy) NamespaceScoped() bool { func (podTemplateStrategy) NamespaceScoped() bool {

View File

@ -25,6 +25,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// resourcequotaStrategy implements behavior for ResourceQuota objects // resourcequotaStrategy implements behavior for ResourceQuota objects
type resourcequotaStrategy struct { type resourcequotaStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating ResourceQuota // Strategy is the default logic that applies when creating and updating ResourceQuota
// objects via the REST API. // objects via the REST API.
var Strategy = resourcequotaStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = resourcequotaStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for resourcequotas. // NamespaceScoped is true for resourcequotas.
func (resourcequotaStrategy) NamespaceScoped() bool { func (resourcequotaStrategy) NamespaceScoped() bool {

View File

@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
@ -35,12 +36,12 @@ import (
// strategy implements behavior for Secret objects // strategy implements behavior for Secret objects
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Secret // Strategy is the default logic that applies when creating and updating Secret
// objects via the REST API. // objects via the REST API.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
var _ = rest.RESTCreateStrategy(Strategy) var _ = rest.RESTCreateStrategy(Strategy)

View File

@ -42,6 +42,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// svcStrategy implements behavior for Services // svcStrategy implements behavior for Services
type svcStrategy struct { type svcStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Services is the default logic that applies when creating and updating Service // Services is the default logic that applies when creating and updating Service
// objects. // objects.
var Strategy = svcStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = svcStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped is true for services. // NamespaceScoped is true for services.
func (svcStrategy) NamespaceScoped() bool { func (svcStrategy) NamespaceScoped() bool {

View File

@ -29,6 +29,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
@ -33,12 +34,12 @@ import (
// strategy implements behavior for ServiceAccount objects // strategy implements behavior for ServiceAccount objects
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating ServiceAccount // Strategy is the default logic that applies when creating and updating ServiceAccount
// objects via the REST API. // objects via the REST API.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
func (strategy) NamespaceScoped() bool { func (strategy) NamespaceScoped() bool {
return true return true

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/apis/extensions/validation"
@ -35,11 +36,11 @@ import (
// daemonSetStrategy implements verification logic for daemon sets. // daemonSetStrategy implements verification logic for daemon sets.
type daemonSetStrategy struct { type daemonSetStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating DaemonSet objects. // Strategy is the default logic that applies when creating and updating DaemonSet objects.
var Strategy = daemonSetStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = daemonSetStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all DaemonSets need to be within a namespace. // NamespaceScoped returns true because all DaemonSets need to be within a namespace.
func (daemonSetStrategy) NamespaceScoped() bool { func (daemonSetStrategy) NamespaceScoped() bool {

View File

@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -26,6 +26,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
@ -39,12 +40,12 @@ import (
// deploymentStrategy implements behavior for Deployments. // deploymentStrategy implements behavior for Deployments.
type deploymentStrategy struct { type deploymentStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Deployment // Strategy is the default logic that applies when creating and updating Deployment
// objects via the REST API. // objects via the REST API.
var Strategy = deploymentStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = deploymentStrategy{api.Scheme, names.SimpleNameGenerator}
// DefaultGarbageCollectionPolicy returns Orphan because that's the default // DefaultGarbageCollectionPolicy returns Orphan because that's the default
// behavior before the server-side garbage collection is implemented. // behavior before the server-side garbage collection is implemented.

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/apis/extensions/validation"
@ -35,11 +36,11 @@ import (
// ingressStrategy implements verification logic for Replication Ingresss. // ingressStrategy implements verification logic for Replication Ingresss.
type ingressStrategy struct { type ingressStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating Replication Ingress objects. // Strategy is the default logic that applies when creating and updating Replication Ingress objects.
var Strategy = ingressStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = ingressStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all Ingress' need to be within a namespace. // NamespaceScoped returns true because all Ingress' need to be within a namespace.
func (ingressStrategy) NamespaceScoped() bool { func (ingressStrategy) NamespaceScoped() bool {

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/apis/extensions/validation"
@ -35,11 +36,11 @@ import (
// networkPolicyStrategy implements verification logic for NetworkPolicys. // networkPolicyStrategy implements verification logic for NetworkPolicys.
type networkPolicyStrategy struct { type networkPolicyStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating NetworkPolicy objects. // Strategy is the default logic that applies when creating and updating NetworkPolicy objects.
var Strategy = networkPolicyStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = networkPolicyStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all NetworkPolicys need to be within a namespace. // NamespaceScoped returns true because all NetworkPolicys need to be within a namespace.
func (networkPolicyStrategy) NamespaceScoped() bool { func (networkPolicyStrategy) NamespaceScoped() bool {

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
@ -35,12 +36,12 @@ import (
// strategy implements behavior for PodSecurityPolicy objects // strategy implements behavior for PodSecurityPolicy objects
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating PodSecurityPolicy // Strategy is the default logic that applies when creating and updating PodSecurityPolicy
// objects via the REST API. // objects via the REST API.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
var _ = rest.RESTCreateStrategy(Strategy) var _ = rest.RESTCreateStrategy(Strategy)

View File

@ -30,6 +30,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -27,6 +27,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
@ -39,11 +40,11 @@ import (
// rsStrategy implements verification logic for ReplicaSets. // rsStrategy implements verification logic for ReplicaSets.
type rsStrategy struct { type rsStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating ReplicaSet objects. // Strategy is the default logic that applies when creating and updating ReplicaSet objects.
var Strategy = rsStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = rsStrategy{api.Scheme, names.SimpleNameGenerator}
// DefaultGarbageCollectionPolicy returns Orphan because that's the default // DefaultGarbageCollectionPolicy returns Orphan because that's the default
// behavior before the server-side garbage collection is implemented. // behavior before the server-side garbage collection is implemented.

View File

@ -37,6 +37,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/yaml", "//vendor:k8s.io/apimachinery/pkg/util/yaml",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for ThirdPartyResource objects // strategy implements behavior for ThirdPartyResource objects
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating ThirdPartyResource // Strategy is the default logic that applies when creating and updating ThirdPartyResource
// objects via the REST API. // objects via the REST API.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
var _ = rest.RESTCreateStrategy(Strategy) var _ = rest.RESTCreateStrategy(Strategy)

View File

@ -74,6 +74,7 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/util/wait", "//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -35,6 +35,7 @@ import (
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
@ -68,7 +69,7 @@ func (t *testOrphanDeleteStrategy) DefaultGarbageCollectionPolicy() rest.Garbage
type testRESTStrategy struct { type testRESTStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
namespaceScoped bool namespaceScoped bool
allowCreateOnUpdate bool allowCreateOnUpdate bool
allowUnconditionalUpdate bool allowUnconditionalUpdate bool
@ -640,7 +641,7 @@ func TestGracefulStoreCanDeleteIfExistingGracePeriodZero(t *testing.T) {
testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test") testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test")
destroyFunc, registry := NewTestGenericStoreRegistry(t) destroyFunc, registry := NewTestGenericStoreRegistry(t)
registry.EnableGarbageCollection = false registry.EnableGarbageCollection = false
defaultDeleteStrategy := testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} defaultDeleteStrategy := testRESTStrategy{api.Scheme, names.SimpleNameGenerator, true, false, true}
registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy} registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy}
defer destroyFunc() defer destroyFunc()
@ -666,7 +667,7 @@ func TestGracefulStoreHandleFinalizers(t *testing.T) {
testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test") testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test")
destroyFunc, registry := NewTestGenericStoreRegistry(t) destroyFunc, registry := NewTestGenericStoreRegistry(t)
registry.EnableGarbageCollection = true registry.EnableGarbageCollection = true
defaultDeleteStrategy := testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} defaultDeleteStrategy := testRESTStrategy{api.Scheme, names.SimpleNameGenerator, true, false, true}
registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy} registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy}
defer destroyFunc() defer destroyFunc()
// create pod // create pod
@ -823,7 +824,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
nilOrphanOptions := &api.DeleteOptions{} nilOrphanOptions := &api.DeleteOptions{}
// defaultDeleteStrategy doesn't implement rest.GarbageCollectionDeleteStrategy. // defaultDeleteStrategy doesn't implement rest.GarbageCollectionDeleteStrategy.
defaultDeleteStrategy := &testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} defaultDeleteStrategy := &testRESTStrategy{api.Scheme, names.SimpleNameGenerator, true, false, true}
// orphanDeleteStrategy indicates the default garbage collection policy is // orphanDeleteStrategy indicates the default garbage collection policy is
// to orphan dependentes. // to orphan dependentes.
orphanDeleteStrategy := &testOrphanDeleteStrategy{defaultDeleteStrategy} orphanDeleteStrategy := &testOrphanDeleteStrategy{defaultDeleteStrategy}
@ -1233,7 +1234,7 @@ func TestStoreWatch(t *testing.T) {
func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.DestroyFunc, *Store) { func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.DestroyFunc, *Store) {
podPrefix := "/pods" podPrefix := "/pods"
server, sc := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) server, sc := etcdtesting.NewUnsecuredEtcd3TestClientServer(t)
strategy := &testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} strategy := &testRESTStrategy{api.Scheme, names.SimpleNameGenerator, true, false, true}
sc.Codec = testapi.Default.StorageCodec() sc.Codec = testapi.Default.StorageCodec()
s, dFunc, err := factory.Create(*sc) s, dFunc, err := factory.Create(*sc)

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/policy"
"k8s.io/kubernetes/pkg/apis/policy/validation" "k8s.io/kubernetes/pkg/apis/policy/validation"
@ -35,11 +36,11 @@ import (
// podDisruptionBudgetStrategy implements verification logic for PodDisruptionBudgets. // podDisruptionBudgetStrategy implements verification logic for PodDisruptionBudgets.
type podDisruptionBudgetStrategy struct { type podDisruptionBudgetStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating PodDisruptionBudget objects. // Strategy is the default logic that applies when creating and updating PodDisruptionBudget objects.
var Strategy = podDisruptionBudgetStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = podDisruptionBudgetStrategy{api.Scheme, names.SimpleNameGenerator}
// NamespaceScoped returns true because all PodDisruptionBudget' need to be within a namespace. // NamespaceScoped returns true because all PodDisruptionBudget' need to be within a namespace.
func (podDisruptionBudgetStrategy) NamespaceScoped() bool { func (podDisruptionBudgetStrategy) NamespaceScoped() bool {

View File

@ -28,6 +28,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for ClusterRoles // strategy implements behavior for ClusterRoles
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// strategy is the default logic that applies when creating and updating // strategy is the default logic that applies when creating and updating
// ClusterRole objects. // ClusterRole objects.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
// Strategy should implement rest.RESTCreateStrategy // Strategy should implement rest.RESTCreateStrategy
var _ rest.RESTCreateStrategy = Strategy var _ rest.RESTCreateStrategy = Strategy

View File

@ -28,6 +28,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for ClusterRoleBindings // strategy implements behavior for ClusterRoleBindings
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// strategy is the default logic that applies when creating and updating // strategy is the default logic that applies when creating and updating
// ClusterRoleBinding objects. // ClusterRoleBinding objects.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
// Strategy should implement rest.RESTCreateStrategy // Strategy should implement rest.RESTCreateStrategy
var _ rest.RESTCreateStrategy = Strategy var _ rest.RESTCreateStrategy = Strategy

View File

@ -28,6 +28,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for Roles // strategy implements behavior for Roles
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// strategy is the default logic that applies when creating and updating // strategy is the default logic that applies when creating and updating
// Role objects. // Role objects.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
// Strategy should implement rest.RESTCreateStrategy // Strategy should implement rest.RESTCreateStrategy
var _ rest.RESTCreateStrategy = Strategy var _ rest.RESTCreateStrategy = Strategy

View File

@ -28,6 +28,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac"
@ -34,12 +35,12 @@ import (
// strategy implements behavior for RoleBindings // strategy implements behavior for RoleBindings
type strategy struct { type strategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// strategy is the default logic that applies when creating and updating // strategy is the default logic that applies when creating and updating
// RoleBinding objects. // RoleBinding objects.
var Strategy = strategy{api.Scheme, api.SimpleNameGenerator} var Strategy = strategy{api.Scheme, names.SimpleNameGenerator}
// Strategy should implement rest.RESTCreateStrategy // Strategy should implement rest.RESTCreateStrategy
var _ rest.RESTCreateStrategy = Strategy var _ rest.RESTCreateStrategy = Strategy

View File

@ -26,6 +26,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apiserver/pkg/request", "//vendor:k8s.io/apiserver/pkg/request",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -23,6 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/validation/field"
genericapirequest "k8s.io/apiserver/pkg/request" genericapirequest "k8s.io/apiserver/pkg/request"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/apis/storage"
"k8s.io/kubernetes/pkg/apis/storage/validation" "k8s.io/kubernetes/pkg/apis/storage/validation"
@ -34,12 +35,12 @@ import (
// storageClassStrategy implements behavior for StorageClass objects // storageClassStrategy implements behavior for StorageClass objects
type storageClassStrategy struct { type storageClassStrategy struct {
runtime.ObjectTyper runtime.ObjectTyper
api.NameGenerator names.NameGenerator
} }
// Strategy is the default logic that applies when creating and updating // Strategy is the default logic that applies when creating and updating
// StorageClass objects via the REST API. // StorageClass objects via the REST API.
var Strategy = storageClassStrategy{api.Scheme, api.SimpleNameGenerator} var Strategy = storageClassStrategy{api.Scheme, names.SimpleNameGenerator}
func (storageClassStrategy) NamespaceScoped() bool { func (storageClassStrategy) NamespaceScoped() bool {
return false return false

View File

@ -31,6 +31,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/runtime/schema",
"//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/storage/names",
], ],
) )

View File

@ -29,6 +29,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/watch"
"k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/admission" "k8s.io/kubernetes/pkg/admission"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
@ -428,7 +429,7 @@ func (s *serviceAccount) mountServiceAccountToken(serviceAccount *api.ServiceAcc
// Try naming the volume the same as the serviceAccountToken, and uniquify if needed // Try naming the volume the same as the serviceAccountToken, and uniquify if needed
tokenVolumeName = serviceAccountToken tokenVolumeName = serviceAccountToken
if allVolumeNames.Has(tokenVolumeName) { if allVolumeNames.Has(tokenVolumeName) {
tokenVolumeName = api.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", serviceAccountToken)) tokenVolumeName = names.SimpleNameGenerator.GenerateName(fmt.Sprintf("%s-", serviceAccountToken))
} }
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package api package names
import ( import (
"fmt" "fmt"
@ -31,16 +31,6 @@ type NameGenerator interface {
GenerateName(base string) string GenerateName(base string) string
} }
// GenerateName will resolve the object name of the provided ObjectMeta to a generated version if
// necessary. It expects that validation for ObjectMeta has already completed (that Base is a
// valid name) and that the NameGenerator generates a name that is also valid.
func GenerateName(u NameGenerator, meta *ObjectMeta) {
if len(meta.GenerateName) == 0 || len(meta.Name) != 0 {
return
}
meta.Name = u.GenerateName(meta.GenerateName)
}
// simpleNameGenerator generates random names. // simpleNameGenerator generates random names.
type simpleNameGenerator struct{} type simpleNameGenerator struct{}

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package api package names
import ( import (
"strings" "strings"

14
vendor/BUILD vendored
View File

@ -13354,3 +13354,17 @@ go_library(
srcs = ["k8s.io/apimachinery/pkg/util/rand/rand.go"], srcs = ["k8s.io/apimachinery/pkg/util/rand/rand.go"],
tags = ["automanaged"], tags = ["automanaged"],
) )
go_test(
name = "k8s.io/apiserver/pkg/storage/names_test",
srcs = ["k8s.io/apiserver/pkg/storage/names/generate_test.go"],
library = ":k8s.io/apiserver/pkg/storage/names",
tags = ["automanaged"],
)
go_library(
name = "k8s.io/apiserver/pkg/storage/names",
srcs = ["k8s.io/apiserver/pkg/storage/names/generate.go"],
tags = ["automanaged"],
deps = ["//vendor:k8s.io/apimachinery/pkg/util/rand"],
)