Skip to content

Commit e6f3796

Browse files
committed
Fix admission-controller panic
When applying a regular VPA, this panis. ``` 2026/04/10 15:33:35 http: panic serving 172.18.0.2:33326: runtime error: invalid memory address or nil pointer dereference goroutine 196 [running]: net/http.(*conn).serve.func1() /usr/local/go/src/net/http/server.go:1907 +0xac panic({0xe0ffc0?, 0x1b88340?}) /usr/local/go/src/runtime/panic.go:860 +0x12c k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/resource/vpa.validatePerVPAFeatureFlag(0x5288459fab00) /workspace/pkg/admission-controller/resource/vpa/handler.go:268 +0x58 k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/resource/vpa.ValidateVPA(0x5288459fab00, 0x1) /workspace/pkg/admission-controller/resource/vpa/handler.go:112 +0x2c k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/resource/vpa.(*resourceHandler).GetPatches(0x528845bdabb0, {0x528845e1e7e0?, 0x528845fc9880?}, 0xfee800?) /workspace/pkg/admission-controller/resource/vpa/handler.go:82 +0x9c k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/logic.(*AdmissionServer).admit(0x52884591aa08, {0x116b770, 0x528845cd4550}, {0x528845e79b00, 0x8e5, 0x900}) /workspace/pkg/admission-controller/logic/server.go:125 +0x114 k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/logic.(*AdmissionServer).Serve(0x52884591aa08, {0x1169a00, 0x528845f841e0}, 0x528845b1c8c0) /workspace/pkg/admission-controller/logic/server.go:196 +0x254 main.main.func1({0x1169a00?, 0x528845f841e0?}, 0x528845fbbb18?) /workspace/pkg/admission-controller/main.go:119 +0x3c net/http.HandlerFunc.ServeHTTP(0x1baffa0?, {0x1169a00?, 0x528845f841e0?}, 0x528845fbbb00?) /usr/local/go/src/net/http/server.go:2286 +0x38 net/http.(*ServeMux).ServeHTTP(0x10?, {0x1169a00, 0x528845f841e0}, 0x528845b1c8c0) /usr/local/go/src/net/http/server.go:2828 +0x190 net/http.serverHandler.ServeHTTP({0x11632b8?}, {0x1169a00?, 0x528845f841e0?}, 0x1?) /usr/local/go/src/net/http/server.go:3311 +0xb0 net/http.(*conn).serve(0x528845c22ab0, {0x116b738, 0x528845e1ec60}) /usr/local/go/src/net/http/server.go:2073 +0x51c created by net/http.(*Server).Serve in goroutine 1 /usr/local/go/src/net/http/server.go:3464 +0x37c ```
1 parent e6433b9 commit e6f3796

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

  • vertical-pod-autoscaler/pkg/admission-controller/resource/vpa

vertical-pod-autoscaler/pkg/admission-controller/resource/vpa/handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ func validateMemoryResolution(val apires.Quantity) error {
265265

266266
func validatePerVPAFeatureFlag(vpa *vpa_types.VerticalPodAutoscaler) error {
267267
featureFlagOn := features.Enabled(features.PerVPAConfig)
268-
if !featureFlagOn && vpa.Spec.UpdatePolicy.EvictAfterOOMSeconds != nil {
268+
if !featureFlagOn && vpa.Spec.UpdatePolicy != nil && vpa.Spec.UpdatePolicy.EvictAfterOOMSeconds != nil {
269269
return fmt.Errorf("EvictAfterOOMSeconds is not supported when feature flag %s is disabled", features.PerVPAConfig)
270270
}
271271

0 commit comments

Comments
 (0)