Skip to content

Commit e9e8993

Browse files
committed
Use CRD annotation to get the inferencePool BundleVersion for ConformanceReport.
1 parent 1ea9959 commit e9e8993

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

conformance/conformance.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,6 @@ func DefaultOptions(t *testing.T) confsuite.ConformanceOptions {
157157
*confflags.ImplementationContact,
158158
)
159159

160-
// Inference Extension Specific Report Fields
161-
inferenceExtensionVersion := "v0.3.0"
162-
_ = inferenceExtensionVersion // Avoid unused variable error until implemented
163-
164160
baseManifestsValue := "resources/manifests/manifests.yaml"
165161

166162
opts := confsuite.ConformanceOptions{
@@ -189,7 +185,6 @@ func DefaultOptions(t *testing.T) confsuite.ConformanceOptions {
189185
// TODO: Add the inference extension specific fields to ConformanceOptions struct if needed,
190186
// or handle them during report generation.
191187
// GatewayAPIInferenceExtensionChannel: inferenceExtensionChannel,
192-
// GatewayAPIInferenceExtensionVersion: inferenceExtensionVersion,
193188
}
194189

195190
// Populate SupportedFeatures based on the GatewayLayerProfile.
@@ -232,19 +227,28 @@ func RunConformanceWithOptions(t *testing.T, opts confsuite.ConformanceOptions)
232227
cSuite, err := confsuite.NewConformanceTestSuite(opts)
233228
require.NoError(t, err, "error initializing conformance suite")
234229

230+
installedCRDs := &apiextensionsv1.CustomResourceDefinitionList{}
231+
err = opts.Client.List(context.TODO(), installedCRDs)
232+
require.NoError(t, err, "error getting installedCRDs")
233+
apiVersion, err := getGatewayInferenceExtentionVersion(installedCRDs.Items)
234+
if err != nil {
235+
if opts.AllowCRDsMismatch {
236+
apiVersion = "UNDEFINED"
237+
} else {
238+
require.NoError(t, err, "error getting the gateway ineference extension version")
239+
}
240+
}
235241
SetupConformanceTestSuite(t, cSuite, opts, tests.ConformanceTests)
236-
237242
t.Log("Running Inference Extension conformance tests against all registered tests")
238243
err = cSuite.Run(t, tests.ConformanceTests)
239244
require.NoError(t, err, "error running conformance tests")
240245

241-
// Generate and write the report if requested.
242246
if opts.ReportOutputPath != "" {
243247
t.Log("Generating Inference Extension conformance report")
244248
report, err := cSuite.Report() // Use the existing report generation logic.
245249
require.NoError(t, err, "error generating conformance report")
246250
inferenceReport := GatewayAPIInferenceExtensionConformanceReport{
247-
GatewayAPIInferenceExtensionVersion: version.BundleVersion,
251+
GatewayAPIInferenceExtensionVersion: apiVersion,
248252
ConformanceReport: *report,
249253
}
250254
err = inferenceReport.WriteReport(t.Logf, opts.ReportOutputPath)
@@ -284,6 +288,24 @@ func SetupConformanceTestSuite(t *testing.T, suite *confsuite.ConformanceTestSui
284288
ensureGatewayAvailableAndReady(t, suite.Client, opts, secondaryGatewayNN)
285289
}
286290

291+
func getGatewayInferenceExtentionVersion(crds []apiextensionsv1.CustomResourceDefinition) (string, error) {
292+
var inferenceVersion string
293+
for _, crd := range crds {
294+
v, okv := crd.Annotations[version.BundleVersionAnnotation]
295+
if !okv {
296+
continue
297+
}
298+
if inferenceVersion != "" && v != inferenceVersion {
299+
return "", errors.New("multiple gateway api inference extension CRDs versions detected")
300+
}
301+
inferenceVersion = v
302+
}
303+
if inferenceVersion == "" {
304+
return "", errors.New("no gateway api inference extension CRDs with the proper annotations found in the cluster")
305+
}
306+
return inferenceVersion, nil
307+
}
308+
287309
// ensureGatewayAvailableAndReady polls for the specified Gateway to exist and become ready
288310
// with an address and programmed condition.
289311
func ensureGatewayAvailableAndReady(t *testing.T, k8sClient client.Client, opts confsuite.ConformanceOptions, gatewayNN types.NamespacedName) {

0 commit comments

Comments
 (0)