Skip to content

Commit 01d7000

Browse files
committed
Revert removal of AAA
1 parent 5ec685d commit 01d7000

File tree

17 files changed

+166
-27
lines changed

17 files changed

+166
-27
lines changed

packages/cypress/cypress/pages/modelServing.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,6 +1204,10 @@ class ModelServingWizard extends Wizard {
12041204
return cy.findByTestId(`env-var-value-${value}`);
12051205
}
12061206

1207+
findSaveAiAssetCheckbox() {
1208+
return cy.findByTestId('save-as-ai-asset-checkbox');
1209+
}
1210+
12071211
findSaveAsMaaSCheckbox() {
12081212
return cy.findByTestId('save-as-maas-checkbox');
12091213
}

packages/cypress/cypress/tests/e2e/gen-ai/testGenAi.cy.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ describe('[Product Bug: RHOAIENG-41634] Verify Gen AI Namespace - Creation and C
228228
modelServingWizard.findGlobalScopedLabel().should('be.visible');
229229

230230
modelServingWizard.findNextButton().click();
231+
232+
cy.step('Enable AI asset endpoint');
233+
modelServingWizard.findSaveAiAssetCheckbox().click();
234+
231235
modelServingWizard.findNextButton().click();
232236

233237
cy.step('Wait for Review step to load');

packages/cypress/cypress/tests/mocked/modelServing/modelServingDeploy.cy.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,15 @@ describe('Model Serving Deploy Wizard', () => {
384384
// Step 3: Advanced Options
385385
// Model access & Token authentication
386386
modelServingWizard.findAdvancedOptionsStep().should('be.enabled');
387+
// AI Asset
388+
modelServingWizard.findSaveAiAssetCheckbox().should('exist');
389+
modelServingWizard.findSaveAiAssetCheckbox().should('not.be.checked');
390+
modelServingWizard.findUseCaseInput().should('not.exist');
391+
modelServingWizard.findSaveAiAssetCheckbox().click();
392+
modelServingWizard.findUseCaseInput().should('exist');
393+
modelServingWizard.findUseCaseInput().should('be.enabled');
394+
modelServingWizard.findUseCaseInput().type('test');
395+
387396
modelServingWizard.findExternalRouteCheckbox().click();
388397
modelServingWizard.findTokenAuthenticationCheckbox().should('be.checked');
389398
modelServingWizard.findTokenAuthenticationCheckbox().click();
@@ -414,6 +423,7 @@ describe('Model Serving Deploy Wizard', () => {
414423
namespace: 'test-project',
415424
labels: {
416425
'opendatahub.io/dashboard': 'true',
426+
'opendatahub.io/genai-asset': 'true',
417427
'networking.kserve.io/visibility': 'exposed',
418428
},
419429
annotations: {
@@ -423,6 +433,7 @@ describe('Model Serving Deploy Wizard', () => {
423433
'opendatahub.io/hardware-profile-name': 'small-profile',
424434
'opendatahub.io/model-type': 'generative',
425435
'security.opendatahub.io/enable-auth': 'true',
436+
'opendatahub.io/genai-use-case': 'test',
426437
},
427438
},
428439
spec: {
@@ -664,6 +675,9 @@ describe('Model Serving Deploy Wizard', () => {
664675
// Model access & Token authentication
665676
modelServingWizard.findAdvancedOptionsStep().should('be.enabled');
666677

678+
modelServingWizard.findSaveAiAssetCheckbox().should('not.exist');
679+
modelServingWizard.findUseCaseInput().should('not.exist');
680+
667681
modelServingWizard.findExternalRouteCheckbox().click();
668682
modelServingWizard.findTokenAuthenticationCheckbox().should('be.checked');
669683
modelServingWizard.findTokenAuthenticationCheckbox().click();

packages/kserve/src/aiAssets.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ export const extractModelAvailabilityData = (
55
kserveDeployment: KServeDeployment,
66
): ModelAvailabilityFieldsData => {
77
return {
8+
saveAsAiAsset:
9+
kserveDeployment.model.metadata.labels?.['opendatahub.io/genai-asset'] === 'true',
810
useCase: kserveDeployment.model.metadata.annotations?.['opendatahub.io/genai-use-case'] || '',
911
};
1012
};

packages/kserve/src/deployModel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ const assembleInferenceService = (
135135
inferenceService = applyAiAvailableAssetAnnotations(
136136
inferenceService,
137137
modelAvailability ?? {
138+
saveAsAiAsset: false,
138139
useCase: '',
139140
},
140141
);

packages/kserve/src/deployUtils.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,22 @@ export const applyAiAvailableAssetAnnotations = (
214214
aiAvailableAsset: ModelAvailabilityFieldsData,
215215
): InferenceServiceKind => {
216216
const result = structuredClone(inferenceService);
217+
result.metadata.labels = {
218+
...result.metadata.labels,
219+
'opendatahub.io/genai-asset': aiAvailableAsset.saveAsAiAsset ? 'true' : 'false',
220+
};
221+
if (!aiAvailableAsset.saveAsAiAsset) {
222+
delete result.metadata.labels['opendatahub.io/genai-asset'];
223+
}
217224

218225
result.metadata.annotations = {
219226
...result.metadata.annotations,
227+
...(aiAvailableAsset.saveAsAiAsset &&
228+
aiAvailableAsset.useCase && {
229+
'opendatahub.io/genai-use-case': aiAvailableAsset.useCase,
230+
}),
220231
};
221-
if (!aiAvailableAsset.useCase) {
232+
if (!aiAvailableAsset.saveAsAiAsset || !aiAvailableAsset.useCase) {
222233
delete result.metadata.annotations['opendatahub.io/genai-use-case'];
223234
}
224235
return result;

packages/kserve/src/hardware.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ export const extractEnvironmentVariables = (
6363
};
6464
};
6565

66+
export const extractAiAssetData = (
67+
kserveDeployment: KServeDeployment,
68+
): { saveAsAiAsset: boolean; useCase: string } => {
69+
return {
70+
saveAsAiAsset:
71+
kserveDeployment.model.metadata.annotations?.['opendatahub.io/genai-asset'] === 'true',
72+
useCase: kserveDeployment.model.metadata.annotations?.['opendatahub.io/genai-use-case'] || '',
73+
};
74+
};
75+
6676
export const applyReplicas = (
6777
inferenceService: InferenceServiceKind,
6878
numReplicas: number,

packages/llmd-serving/src/wizardFields/modelAvailability.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const extractModelAvailabilityData = (
2929
deployment: LLMdDeployment,
3030
): WizardFormData['state']['modelAvailability']['data'] => {
3131
return {
32+
saveAsAiAsset: deployment.model.metadata.labels?.['opendatahub.io/genai-asset'] === 'true',
3233
saveAsMaaS: !!deployment.model.metadata.annotations?.[MAAS_TIERS_ANNOTATION],
3334
useCase: deployment.model.metadata.annotations?.['opendatahub.io/genai-use-case'],
3435
};
@@ -45,6 +46,7 @@ export const applyModelAvailabilityData = (
4546
result.metadata.annotations?.[MAAS_TIERS_ANNOTATION] || DEFAULT_MAAS_TIERS_VALUE;
4647
const gatewayRefs = result.spec.router?.gateway?.refs ?? [DEFAULT_MAAS_GATEWAY_REF];
4748

49+
delete result.metadata.labels?.['opendatahub.io/genai-asset'];
4850
delete result.metadata.annotations?.['opendatahub.io/genai-use-case'];
4951
delete result.metadata.annotations?.[MAAS_TIERS_ANNOTATION];
5052

@@ -54,10 +56,16 @@ export const applyModelAvailabilityData = (
5456
[MAAS_TIERS_ANNOTATION]: maasTiersValue,
5557
}),
5658
...(modelAvailability?.useCase &&
57-
modelAvailability.saveAsMaaS && {
59+
(modelAvailability.saveAsAiAsset || modelAvailability.saveAsMaaS) && {
5860
'opendatahub.io/genai-use-case': modelAvailability.useCase,
5961
}),
6062
};
63+
result.metadata.labels = {
64+
...result.metadata.labels,
65+
...(modelAvailability?.saveAsAiAsset && {
66+
'opendatahub.io/genai-asset': 'true',
67+
}),
68+
};
6169

6270
delete result.spec.router?.gateway?.refs;
6371
if (modelAvailability?.saveAsMaaS) {

packages/model-serving/extension-points/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export type ModelServingDeploymentFormDataExtension<D extends Deployment = Deplo
154154
(deployment: D) => { enabled: boolean; variables: { name: string; value: string }[] } | null
155155
>;
156156
extractModelAvailabilityData: CodeRef<
157-
(deployment: D) => { saveAsMaaS?: boolean; useCase?: string } | null
157+
(deployment: D) => { saveAsAiAsset: boolean; saveAsMaaS?: boolean; useCase?: string } | null
158158
>;
159159
extractModelLocationData: CodeRef<(deployment: D) => ModelLocationData | null>;
160160
extractDeploymentStrategy?: CodeRef<

packages/model-serving/src/__tests__/mockUtils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ export const mockDeploymentWizardState = (
209209
},
210210
modelAvailability: {
211211
data: {
212+
saveAsAiAsset: false,
212213
useCase: '',
213214
},
214215
setData: jest.fn(),

0 commit comments

Comments
 (0)