diff --git a/api/v1/inferencepool_types.go b/api/v1/inferencepool_types.go index f53781675..c9025bf87 100644 --- a/api/v1/inferencepool_types.go +++ b/api/v1/inferencepool_types.go @@ -130,7 +130,8 @@ type EndpointPickerRef struct { // // +optional // +kubebuilder:default="FailClose" - FailureMode ExtensionFailureMode `json:"failureMode,omitempty"` + //nolint:kubeapilinter // ignore kubeapilinter here as we want to use pointer here for optional struct. + FailureMode *ExtensionFailureMode `json:"failureMode,omitempty"` } // ExtensionFailureMode defines the options for how the gateway handles the case when the extension is not diff --git a/api/v1/zz_generated.deepcopy.go b/api/v1/zz_generated.deepcopy.go index 9e90d369f..ffb355bb9 100644 --- a/api/v1/zz_generated.deepcopy.go +++ b/api/v1/zz_generated.deepcopy.go @@ -38,6 +38,11 @@ func (in *EndpointPickerRef) DeepCopyInto(out *EndpointPickerRef) { *out = new(PortNumber) **out = **in } + if in.FailureMode != nil { + in, out := &in.FailureMode, &out.FailureMode + *out = new(ExtensionFailureMode) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPickerRef. diff --git a/apix/v1alpha2/inferencepool_conversion.go b/apix/v1alpha2/inferencepool_conversion.go index b817c47d5..40a89d620 100644 --- a/apix/v1alpha2/inferencepool_conversion.go +++ b/apix/v1alpha2/inferencepool_conversion.go @@ -120,7 +120,8 @@ func convertExtensionRefToV1(src *Extension) (v1.EndpointPickerRef, error) { endpointPickerRef.PortNumber = &v1PortNumber } if src.FailureMode != nil { - endpointPickerRef.FailureMode = v1.ExtensionFailureMode(*src.FailureMode) + v1FailureMode := v1.ExtensionFailureMode(*src.FailureMode) + endpointPickerRef.FailureMode = &v1FailureMode } return endpointPickerRef, nil @@ -144,8 +145,8 @@ func convertEndpointPickerRefFromV1(src *v1.EndpointPickerRef) (Extension, error portNumber := PortNumber(*src.PortNumber) extension.PortNumber = &portNumber } - if src.FailureMode != "" { - extensionFailureMode := ExtensionFailureMode(src.FailureMode) + if src.FailureMode != nil { + extensionFailureMode := ExtensionFailureMode(*src.FailureMode) extension.FailureMode = &extensionFailureMode } return extension, nil diff --git a/apix/v1alpha2/inferencepool_conversion_test.go b/apix/v1alpha2/inferencepool_conversion_test.go index 2c59fc632..5da8b4eb6 100644 --- a/apix/v1alpha2/inferencepool_conversion_test.go +++ b/apix/v1alpha2/inferencepool_conversion_test.go @@ -105,7 +105,7 @@ func TestInferencePoolConvertTo(t *testing.T) { Kind: v1Kind, Name: "my-epp-service", PortNumber: &v1PortNumber, - FailureMode: v1FailureMode, + FailureMode: &v1FailureMode, }, }, Status: v1.InferencePoolStatus{ @@ -240,7 +240,7 @@ func TestInferencePoolConvertFrom(t *testing.T) { Kind: v1Kind, Name: "my-epp-service", PortNumber: &v1PortNumber, - FailureMode: v1FailureMode, + FailureMode: &v1FailureMode, }, }, Status: v1.InferencePoolStatus{