diff --git a/pkg/bundler/testdata/stock_render_golden.yaml b/pkg/bundler/testdata/stock_render_golden.yaml index 19b30e81c..63dd4d548 100644 --- a/pkg/bundler/testdata/stock_render_golden.yaml +++ b/pkg/bundler/testdata/stock_render_golden.yaml @@ -39,6 +39,7 @@ h100-kind-training-slurm: 616ad96fa233767945883935c2ac5ca71f47b56a5f338c4e4d5a9f h200-any: f9014deebe671f04b376b79848c6bedc23f603306e5cd1b199e32f94279e6b28 h200-eks-inference: 638d96aea0b45a916eac6cbd1311d4a7aa76de781d221e34b0c7e268e75221d9 h200-eks-training: 55a97efb5818c25775801b65691e9be1065eb799c1c4dbdae9b8e9b9cdbf9f9a +l40-any: 5a4827225ab700de660b1d612f72ed5465aa3dd52a9d4b19b4d347ebc0d2a10e l40s-any: 401c86beef896b571de151e139f939c9dcea34cda58015bbabee936e632bff21 l40s-oke-inference: 79c9fdc18720d96bd2c4f54d779e5d3087703cea39262b1168a80ba4b9664d5e l40s-oke-training: 357e29252b607132e3fdfcaae3787c633fcda3440e0440077175aa5c27c0be56 diff --git a/pkg/recipe/testdata/catalog_parity_golden.yaml b/pkg/recipe/testdata/catalog_parity_golden.yaml index 5922e7cf1..de95ba01a 100644 --- a/pkg/recipe/testdata/catalog_parity_golden.yaml +++ b/pkg/recipe/testdata/catalog_parity_golden.yaml @@ -39,6 +39,7 @@ h100-kind-training-slurm: 0245c786638ade1023ba4dc49e0f2efd56d2f789bdf447e946bbc3 h200-any: acf1986d76037dddd025125eaa34eb7ecf3d31fe62cb80e7dc89dd042ebb42f5 h200-eks-inference: d1ff148001722e9d5e23606bd7770f8120506f08c10f0c132e0c379f535609c5 h200-eks-training: 98d04b3c81a059a0321451a39772af8d0d3310ad1fb861837f87d82dd997c4a1 +l40-any: 25fb99252d727b8ca9459503a4ee5f6c5c4520e7ea4407b05a067cc72659d26c l40s-any: 89210ba5815f93ce3d7b1a2a78f7ba75d083556e940603a1bc812eac9aeccd0a l40s-oke-inference: 6c75ef93e86fb21dbdf73ac97089b894ca8da832164dc807e94592493ab7f7cc l40s-oke-training: 2a35011bd59cf3c727cea158d504c51bd59cba069620d3d6a4988d68972dee74 diff --git a/pkg/recipe/testdata/coverage_golden.yaml b/pkg/recipe/testdata/coverage_golden.yaml index d01038108..d661554a4 100644 --- a/pkg/recipe/testdata/coverage_golden.yaml +++ b/pkg/recipe/testdata/coverage_golden.yaml @@ -2068,6 +2068,8 @@ criteria(service=, accelerator=l40s, intent=training, os=ol, platform=): - service=oke os: - service=oke +criteria(service=, accelerator=l40, intent=, os=, platform=): + outcome: success criteria(service=, accelerator=rtx-pro-6000, intent=, os=, platform=): outcome: success criteria(service=, accelerator=rtx-pro-6000, intent=, os=, platform=dynamo): diff --git a/recipes/overlays/l40-any.yaml b/recipes/overlays/l40-any.yaml new file mode 100644 index 000000000..5fed818d3 --- /dev/null +++ b/recipes/overlays/l40-any.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Cross-cutting overlay applied via criteria-wildcard matching. +# +# Carries the deployment-phase floor (the 4 standard checks plus the +# gpu-operator version pin) and applies to every L40 query regardless +# of service or intent, so every concrete L40 leaf (training or +# inference, any service) inherits the version pin. +# +# Per-field union merge (see pkg/recipe/metadata.go) means concrete leaves +# that declare their own `deployment:` block add to or override this floor +# without dropping its inherited checks — same-name constraints from the +# leaf win, additional checks are appended. +# +# See docs/contributor/recipe.md#criteria-wildcard-overlays for details. + +kind: RecipeMetadata +apiVersion: aicr.run/v1alpha2 +metadata: + name: l40-any + +spec: + base: base + + criteria: + service: any + accelerator: l40 + + validation: + deployment: + checks: + - operator-health + - expected-resources + - gpu-operator-version + - check-nvidia-smi + constraints: + # L40 is the same Ada Lovelace generation as L40S, so it tracks the + # same gpu-operator support timeline. Floor at v24.6.0 to match the + # A100/H100/H200/L40S family baseline; concrete leaves can tighten + # if they pin to a later working version. + - name: Deployment.gpu-operator.version + value: ">= v24.6.0"