@@ -831,18 +831,29 @@ func dropDisabledPodStatusFields(podStatus, oldPodStatus *api.PodStatus, podSpec
831
831
}
832
832
833
833
if ! utilfeature .DefaultFeatureGate .Enabled (features .InPlacePodVerticalScaling ) && ! inPlacePodVerticalScalingInUse (oldPodSpec ) {
834
- // Drop Resize, AllocatedResources, and Resources fields
835
- dropResourcesFields := func (csl []api.ContainerStatus ) {
834
+ // Drop Resize and Resources fields
835
+ dropResourcesField := func (csl []api.ContainerStatus ) {
836
836
for i := range csl {
837
- csl [i ].AllocatedResources = nil
838
837
csl [i ].Resources = nil
839
838
}
840
839
}
841
- dropResourcesFields (podStatus .ContainerStatuses )
842
- dropResourcesFields (podStatus .InitContainerStatuses )
843
- dropResourcesFields (podStatus .EphemeralContainerStatuses )
840
+ dropResourcesField (podStatus .ContainerStatuses )
841
+ dropResourcesField (podStatus .InitContainerStatuses )
842
+ dropResourcesField (podStatus .EphemeralContainerStatuses )
844
843
podStatus .Resize = ""
845
844
}
845
+ if ! utilfeature .DefaultFeatureGate .Enabled (features .InPlacePodVerticalScaling ) ||
846
+ ! utilfeature .DefaultFeatureGate .Enabled (features .InPlacePodVerticalScalingAllocatedStatus ) {
847
+ // Drop AllocatedResources field
848
+ dropAllocatedResourcesField := func (csl []api.ContainerStatus ) {
849
+ for i := range csl {
850
+ csl [i ].AllocatedResources = nil
851
+ }
852
+ }
853
+ dropAllocatedResourcesField (podStatus .ContainerStatuses )
854
+ dropAllocatedResourcesField (podStatus .InitContainerStatuses )
855
+ dropAllocatedResourcesField (podStatus .EphemeralContainerStatuses )
856
+ }
846
857
847
858
if ! utilfeature .DefaultFeatureGate .Enabled (features .DynamicResourceAllocation ) && ! dynamicResourceAllocationInUse (oldPodSpec ) {
848
859
podStatus .ResourceClaimStatuses = nil
@@ -1289,26 +1300,17 @@ func MarkPodProposedForResize(oldPod, newPod *api.Pod) {
1289
1300
}
1290
1301
1291
1302
for i , c := range newPod .Spec .Containers {
1303
+ if c .Name != oldPod .Spec .Containers [i ].Name {
1304
+ return // Update is invalid (container mismatch): let validation handle it.
1305
+ }
1292
1306
if c .Resources .Requests == nil {
1293
1307
continue
1294
1308
}
1295
1309
if cmp .Equal (oldPod .Spec .Containers [i ].Resources , c .Resources ) {
1296
1310
continue
1297
1311
}
1298
- findContainerStatus := func (css []api.ContainerStatus , cName string ) (api.ContainerStatus , bool ) {
1299
- for i := range css {
1300
- if css [i ].Name == cName {
1301
- return css [i ], true
1302
- }
1303
- }
1304
- return api.ContainerStatus {}, false
1305
- }
1306
- if cs , ok := findContainerStatus (newPod .Status .ContainerStatuses , c .Name ); ok {
1307
- if ! cmp .Equal (c .Resources .Requests , cs .AllocatedResources ) {
1308
- newPod .Status .Resize = api .PodResizeStatusProposed
1309
- break
1310
- }
1311
- }
1312
+ newPod .Status .Resize = api .PodResizeStatusProposed
1313
+ return
1312
1314
}
1313
1315
}
1314
1316
0 commit comments