From e71dcff2e6c3a9df18e85301eeaef1870c2f1ce0 Mon Sep 17 00:00:00 2001 From: pallavi jaini Date: Sun, 31 Aug 2025 20:53:24 +0000 Subject: [PATCH 1/4] Added logic to handle the prefill port Signed-off-by: pallavi jaini --- pkg/plugins/pre-request/pd_prerequest.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/plugins/pre-request/pd_prerequest.go b/pkg/plugins/pre-request/pd_prerequest.go index 43ecca42..93c37a4f 100644 --- a/pkg/plugins/pre-request/pd_prerequest.go +++ b/pkg/plugins/pre-request/pd_prerequest.go @@ -24,22 +24,25 @@ const ( type prefillHeaderHandlerParameters struct { PrefillProfile string `json:"prefillProfile"` + PrefillTargetPort int `json:"prefillTargetPort,omitempty"` // ← Optional field } // compile-time type assertion var _ requestcontrol.PreRequest = &PrefillHeaderHandler{} +// PrefillHeaderHandlerFactory defines the factory function for the PrefillHeaderHandler // PrefillHeaderHandlerFactory defines the factory function for the PrefillHeaderHandler func PrefillHeaderHandlerFactory(name string, rawParameters json.RawMessage, _ plugins.Handle) (plugins.Plugin, error) { parameters := prefillHeaderHandlerParameters{ PrefillProfile: defaultPrefillProfile, + PrefillTargetPort: 0, } if rawParameters != nil { if err := json.Unmarshal(rawParameters, ¶meters); err != nil { return nil, fmt.Errorf("failed to parse the parameters of the '%s' pre-request plugin - %w", PrefillHeaderHandlerType, err) } } - return NewPrefillHeaderHandler(parameters.PrefillProfile).WithName(name), nil + return NewPrefillHeaderHandler(parameters.PrefillProfile, parameters.PrefillTargetPort).WithName(name), nil } // NewPrefillHeaderHandler initializes a new PrefillHeaderHandler and returns its pointer. @@ -47,6 +50,7 @@ func NewPrefillHeaderHandler(prefillProfile string) *PrefillHeaderHandler { return &PrefillHeaderHandler{ typedName: plugins.TypedName{Type: PrefillHeaderHandlerType}, prefillProfile: prefillProfile, + prefillTargetPort: prefillTargetPort, } } @@ -54,6 +58,7 @@ func NewPrefillHeaderHandler(prefillProfile string) *PrefillHeaderHandler { type PrefillHeaderHandler struct { typedName plugins.TypedName prefillProfile string + prefillTargetPort int // ← 0 means "not configured" } // TypedName returns the typed name of the plugin. @@ -78,6 +83,11 @@ func (p *PrefillHeaderHandler) PreRequest(_ context.Context, request *types.LLMR return // prefill profile failed to run or we chose not to run it, no-op in this case } - prefillHostPort := net.JoinHostPort(prefillProfileRunResult.TargetPods[0].GetPod().Address, strconv.Itoa(targetPort)) + portToUse := targetPort // ← Default: use existing behavior + if p.prefillTargetPort > 0 { // ← Only override if configured + portToUse = p.prefillTargetPort + } + + prefillHostPort := net.JoinHostPort(prefillProfileRunResult.TargetPods[0].GetPod().Address, strconv.Itoa(portToUse)) request.Headers[prefillPodHeader] = prefillHostPort // in the form of } From 197299b20f31fd5909039143f5db72708e50d131 Mon Sep 17 00:00:00 2001 From: pallavi jaini Date: Sun, 31 Aug 2025 21:00:25 +0000 Subject: [PATCH 2/4] Added logic to handle the prefill port - Fixed compilation issues Signed-off-by: pallavi jaini --- pkg/plugins/pre-request/pd_prerequest.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/plugins/pre-request/pd_prerequest.go b/pkg/plugins/pre-request/pd_prerequest.go index 93c37a4f..bb723b1d 100644 --- a/pkg/plugins/pre-request/pd_prerequest.go +++ b/pkg/plugins/pre-request/pd_prerequest.go @@ -30,7 +30,6 @@ type prefillHeaderHandlerParameters struct { // compile-time type assertion var _ requestcontrol.PreRequest = &PrefillHeaderHandler{} -// PrefillHeaderHandlerFactory defines the factory function for the PrefillHeaderHandler // PrefillHeaderHandlerFactory defines the factory function for the PrefillHeaderHandler func PrefillHeaderHandlerFactory(name string, rawParameters json.RawMessage, _ plugins.Handle) (plugins.Plugin, error) { parameters := prefillHeaderHandlerParameters{ @@ -46,7 +45,7 @@ func PrefillHeaderHandlerFactory(name string, rawParameters json.RawMessage, _ p } // NewPrefillHeaderHandler initializes a new PrefillHeaderHandler and returns its pointer. -func NewPrefillHeaderHandler(prefillProfile string) *PrefillHeaderHandler { +func NewPrefillHeaderHandler(prefillProfile string, prefillTargetPort int) *PrefillHeaderHandler { return &PrefillHeaderHandler{ typedName: plugins.TypedName{Type: PrefillHeaderHandlerType}, prefillProfile: prefillProfile, From d51298c782cb65030c2c668fd07ada0f4f260c2c Mon Sep 17 00:00:00 2001 From: pallavi jaini Date: Tue, 2 Sep 2025 23:46:09 +0000 Subject: [PATCH 3/4] Edited the comments Signed-off-by: pallavi jaini --- pkg/plugins/pre-request/pd_prerequest.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pkg/plugins/pre-request/pd_prerequest.go b/pkg/plugins/pre-request/pd_prerequest.go index bb723b1d..8959aeb6 100644 --- a/pkg/plugins/pre-request/pd_prerequest.go +++ b/pkg/plugins/pre-request/pd_prerequest.go @@ -24,7 +24,7 @@ const ( type prefillHeaderHandlerParameters struct { PrefillProfile string `json:"prefillProfile"` - PrefillTargetPort int `json:"prefillTargetPort,omitempty"` // ← Optional field + PrefillTargetPort int `json:"prefillTargetPort,omitempty"` // Optional field } // compile-time type assertion @@ -57,7 +57,7 @@ func NewPrefillHeaderHandler(prefillProfile string, prefillTargetPort int) *Pref type PrefillHeaderHandler struct { typedName plugins.TypedName prefillProfile string - prefillTargetPort int // ← 0 means "not configured" + prefillTargetPort int // 0 means "not configured" } // TypedName returns the typed name of the plugin. @@ -82,11 +82,10 @@ func (p *PrefillHeaderHandler) PreRequest(_ context.Context, request *types.LLMR return // prefill profile failed to run or we chose not to run it, no-op in this case } - portToUse := targetPort // ← Default: use existing behavior - if p.prefillTargetPort > 0 { // ← Only override if configured + portToUse := targetPort // Default: use existing behavior + if p.prefillTargetPort > 0 { // Only override if configured portToUse = p.prefillTargetPort - } - + } prefillHostPort := net.JoinHostPort(prefillProfileRunResult.TargetPods[0].GetPod().Address, strconv.Itoa(portToUse)) request.Headers[prefillPodHeader] = prefillHostPort // in the form of } From bbfa2453b350f6fac76bfa21fbd4a5899206603a Mon Sep 17 00:00:00 2001 From: Pallavi Jaini Date: Mon, 20 Oct 2025 10:02:51 -0700 Subject: [PATCH 4/4] Fixed the lint issues Signed-off-by: Pallavi Jaini --- pkg/plugins/pre-request/pd_prerequest.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/plugins/pre-request/pd_prerequest.go b/pkg/plugins/pre-request/pd_prerequest.go index 8959aeb6..a9e340ce 100644 --- a/pkg/plugins/pre-request/pd_prerequest.go +++ b/pkg/plugins/pre-request/pd_prerequest.go @@ -23,8 +23,8 @@ const ( ) type prefillHeaderHandlerParameters struct { - PrefillProfile string `json:"prefillProfile"` - PrefillTargetPort int `json:"prefillTargetPort,omitempty"` // Optional field + PrefillProfile string `json:"prefillProfile"` + PrefillTargetPort int `json:"prefillTargetPort,omitempty"` // Optional field } // compile-time type assertion @@ -33,7 +33,7 @@ var _ requestcontrol.PreRequest = &PrefillHeaderHandler{} // PrefillHeaderHandlerFactory defines the factory function for the PrefillHeaderHandler func PrefillHeaderHandlerFactory(name string, rawParameters json.RawMessage, _ plugins.Handle) (plugins.Plugin, error) { parameters := prefillHeaderHandlerParameters{ - PrefillProfile: defaultPrefillProfile, + PrefillProfile: defaultPrefillProfile, PrefillTargetPort: 0, } if rawParameters != nil { @@ -47,16 +47,16 @@ func PrefillHeaderHandlerFactory(name string, rawParameters json.RawMessage, _ p // NewPrefillHeaderHandler initializes a new PrefillHeaderHandler and returns its pointer. func NewPrefillHeaderHandler(prefillProfile string, prefillTargetPort int) *PrefillHeaderHandler { return &PrefillHeaderHandler{ - typedName: plugins.TypedName{Type: PrefillHeaderHandlerType}, - prefillProfile: prefillProfile, + typedName: plugins.TypedName{Type: PrefillHeaderHandlerType}, + prefillProfile: prefillProfile, prefillTargetPort: prefillTargetPort, } } // PrefillHeaderHandler PreRequest plugin type PrefillHeaderHandler struct { - typedName plugins.TypedName - prefillProfile string + typedName plugins.TypedName + prefillProfile string prefillTargetPort int // 0 means "not configured" } @@ -82,8 +82,8 @@ func (p *PrefillHeaderHandler) PreRequest(_ context.Context, request *types.LLMR return // prefill profile failed to run or we chose not to run it, no-op in this case } - portToUse := targetPort // Default: use existing behavior - if p.prefillTargetPort > 0 { // Only override if configured + portToUse := targetPort // Default: use existing behavior + if p.prefillTargetPort > 0 { // Only override if configured portToUse = p.prefillTargetPort } prefillHostPort := net.JoinHostPort(prefillProfileRunResult.TargetPods[0].GetPod().Address, strconv.Itoa(portToUse))