Skip to content

Commit 50d0b42

Browse files
pohlyk8s-publishing-bot
authored andcommitted
dynamic resource allocation: avoid apiserver complaint about list content
This fixes the following warning (error?) in the apiserver: E0126 18:10:38.665239 16370 fieldmanager.go:210] "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (test/claim-84; resource.k8s.io/v1alpha1, Kind=ResourceClaim) to smd typed: .status.reservedFor: element 0: associative list without keys has an element that's a map type" VersionKind="/, Kind=" namespace="test" name="claim-84" The root cause is the same as in e50e8a0c919c0e02dc9a0ffaebb685d5348027b4: nothing in Kubernetes outright complains about a list of items where the item type is comparable in Go, but not a simple type. This nonetheless isn't supposed to be done in the API and can causes problems elsewhere. For the ReservedFor field, everything seems to work okay except for the warning. However, it's better to follow conventions and use a map. This is possible in this case because UID is guaranteed to be a unique key. Validation is now stricter than before, which is a good thing: previously, two entries with the same UID were allowed as long as some other field was different, which wasn't a situation that should have been allowed. Kubernetes-commit: b10dce49c3cb782404e09f50547120a736c03969
1 parent 1c6bd70 commit 50d0b42

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

Diff for: resource/v1alpha1/generated.proto

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: resource/v1alpha1/types.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ type ResourceClaimStatus struct {
112112
// There can be at most 32 such reservations. This may get increased in
113113
// the future, but not reduced.
114114
//
115-
// +listType=set
115+
// +listType=map
116+
// +listMapKey=uid
116117
// +optional
117118
ReservedFor []ResourceClaimConsumerReference `json:"reservedFor,omitempty" protobuf:"bytes,3,opt,name=reservedFor"`
118119

0 commit comments

Comments
 (0)