Skip to content

Commit 6a0937a

Browse files
committed
dynamic resource allocation: update ReservedFor API
The implementation already moved to a separate type. OwnerReference had several fields that were not needed. The maximum size needs to be a constant because various consumers of the API will need to check it.
1 parent a705dc7 commit 6a0937a

File tree

1 file changed

+23
-2
lines changed
  • keps/sig-node/3063-dynamic-resource-allocation

1 file changed

+23
-2
lines changed

keps/sig-node/3063-dynamic-resource-allocation/README.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,9 +1266,10 @@ type ResourceClaimStatus struct {
12661266
// doesn't support dynamic resource allocation or the feature was
12671267
// disabled.
12681268
//
1269-
// The maximum size is 32. This is an artificial limit to prevent
1269+
// The maximum size is 32 (= [ReservedForMaxSize]).
1270+
// This is an artificial limit to prevent
12701271
// a completely unbounded field in the API.
1271-
ReservedFor []metav1.OwnerReference
1272+
ReservedFor []ResourceClaimUserReference
12721273
12731274
<<[UNRESOLVED pohly]>>
12741275
We will have to discuss use cases and real resource drivers that
@@ -1281,6 +1282,10 @@ type ResourceClaimStatus struct {
12811282
<<[/UNRESOLVED]>>
12821283
}
12831284
1285+
// ReservedForMaxSize is maximum number of entries in
1286+
// [ResourceClaimStatus.ReservedFor].
1287+
const ResourceClaimReservedForMaxSize = 32
1288+
12841289
// AllocationResult contains attributed of an allocated resource.
12851290
type AllocationResult struct {
12861291
// ResourceHandle contains arbitrary data returned by the driver after a
@@ -1579,6 +1584,22 @@ type ResourceClaimParametersReference struct {
15791584
// Name is the name of resource being referenced
15801585
Name string
15811586
}
1587+
1588+
// ResourceClaimParametersReference contains enough information to let you
1589+
// locate the user of a ResourceClaim. The user must be a resource in the same
1590+
// namespace as the ResourceClaim.
1591+
type ResourceClaimUserReference struct {
1592+
// APIGroup is the API group for the resource being referenced.
1593+
// If Group is empty, the specified Kind must be in the core API group.
1594+
// For any other third-party types, APIGroup is required.
1595+
APIGroup string
1596+
// Resource is the type of resource being referenced, for example "pods".
1597+
Resource string
1598+
// Name is the name of resource being referenced.
1599+
Name string
1600+
// UID identifies exactly one incarnation of the resource.
1601+
UID types.UID
1602+
}
15821603
```
15831604

15841605
### kube-controller-manager

0 commit comments

Comments
 (0)