mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #87459 from deads2k/object-ref-warning
add warning on ObjectReference
This commit is contained in:
commit
5918208fa5
@ -2463,6 +2463,20 @@ message ObjectFieldSelector {
|
||||
}
|
||||
|
||||
// ObjectReference contains enough information to let you inspect or modify the referred object.
|
||||
// ---
|
||||
// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
|
||||
// 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
|
||||
// 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular
|
||||
// restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
|
||||
// Those cannot be well described when embedded.
|
||||
// 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
|
||||
// 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity
|
||||
// during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple
|
||||
// and the version of the actual struct is irrelevant.
|
||||
// 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type
|
||||
// will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.
|
||||
// Instead of using this type, create a locally provided and used type that is well-focused on your reference.
|
||||
// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
message ObjectReference {
|
||||
// Kind of the referent.
|
||||
|
@ -4981,6 +4981,20 @@ type ServiceProxyOptions struct {
|
||||
}
|
||||
|
||||
// ObjectReference contains enough information to let you inspect or modify the referred object.
|
||||
// ---
|
||||
// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
|
||||
// 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
|
||||
// 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular
|
||||
// restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
|
||||
// Those cannot be well described when embedded.
|
||||
// 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
|
||||
// 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity
|
||||
// during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple
|
||||
// and the version of the actual struct is irrelevant.
|
||||
// 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type
|
||||
// will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.
|
||||
// Instead of using this type, create a locally provided and used type that is well-focused on your reference.
|
||||
// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
type ObjectReference struct {
|
||||
// Kind of the referent.
|
||||
|
Loading…
Reference in New Issue
Block a user