Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
1542b39
Remove email field from async copy job form (#2336)
mturley Mar 9, 2026
b74f4e5
Fix broken link for create version intent,missing display name (#2312)
ppadti Mar 9, 2026
f85cb8d
Add MCP Catalog landing page and route (#2314)
Philip-Carneiro Mar 9, 2026
52a835f
Fix contract test: resolve OpenAPI spec gaps and align test fixtures …
manaswinidas Mar 9, 2026
fc8abf6
build(deps): bump sigs.k8s.io/controller-runtime from 0.22.4 to 0.23.…
dependabot[bot] Mar 9, 2026
326a64f
UX fixes for catalog performance filters (#2329)
manaswinidas Mar 9, 2026
1bda219
fix: show all user-accessible namespaces in register-and-store form a…
mturley Mar 9, 2026
7bc0702
build(deps): bump k8s.io/apimachinery from 0.34.4 to 0.35.2 (#2349)
dependabot[bot] Mar 9, 2026
4492bb4
build(deps): bump aquasecurity/trivy-action from 0.34.2 to 0.35.0 (#2…
dependabot[bot] Mar 9, 2026
be366c0
build(deps): bump docker/setup-buildx-action from 3 to 4 (#2341)
dependabot[bot] Mar 9, 2026
e2dc02d
build(deps): bump docker/login-action from 3 to 4 (#2342)
dependabot[bot] Mar 9, 2026
68aca7c
build(deps): bump docker/setup-qemu-action from 3 to 4 (#2343)
dependabot[bot] Mar 9, 2026
5da1f52
prepend source id to model name in catalog db (#2333)
adysenrothman Mar 9, 2026
f961e2d
build(deps): bump docker/build-push-action from 6 to 7 (#2344)
dependabot[bot] Mar 9, 2026
a73b209
MCP Details Page+ README section (#2361)
YuliaKrimerman Mar 9, 2026
60db4ab
Merge pull request #1628 from kubeflow/main
openshift-merge-bot[bot] Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-async-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ jobs:
uses: actions/checkout@v6

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.REGISTRY_USER }}
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:

- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ./jobs/async-upload
platforms: ${{ env.PLATFORMS }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-controller-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ jobs:
# checkout branch
- uses: actions/checkout@v6
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
Expand All @@ -59,7 +59,7 @@ jobs:
echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
# docker login
- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.DOCKER_USER }}
Expand All @@ -75,7 +75,7 @@ jobs:
type=raw,value=main,enable=${{ env.BUILD_CONTEXT == 'main' }}
- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./cmd/controller/Dockerfile.controller
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-csi-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ jobs:
# checkout branch
- uses: actions/checkout@v6
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
Expand All @@ -57,7 +57,7 @@ jobs:
echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
# docker login
- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.DOCKER_USER }}
Expand All @@ -73,7 +73,7 @@ jobs:
type=raw,value=main,enable=${{ env.BUILD_CONTEXT == 'main' }}
- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./cmd/csi/Dockerfile.csi
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ jobs:
- uses: actions/checkout@v6
# Set up QEMU for multi-architecture builds
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
# Set up Docker Buildx
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
Expand All @@ -61,7 +61,7 @@ jobs:
run: |
echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.DOCKER_USER }}
Expand All @@ -77,7 +77,7 @@ jobs:
type=raw,value=main,enable=${{ env.BUILD_CONTEXT == 'main' }}
- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
platforms: ${{ env.PLATFORMS }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-ui-images-standalone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ jobs:
uses: actions/checkout@v6

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.DOCKER_USER }}
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:

- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ./clients/ui
file: ./clients/ui/Dockerfile.standalone
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-and-push-ui-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ jobs:
uses: actions/checkout@v6

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.IMG_REGISTRY }}
username: ${{ env.DOCKER_USER }}
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:

- name: Build and push Docker image
id: build-push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ./clients/ui
platforms: ${{ env.PLATFORMS }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/trivy-image-scanning.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
echo "Sanitized image name: ${SANITIZED_NAME}"

- name: trivy scan for github security tab
uses: aquasecurity/trivy-action@0.34.2
uses: aquasecurity/trivy-action@0.35.0
with:
image-ref: '${{ matrix.IMAGE }}'
format: 'sarif'
Expand Down
3 changes: 2 additions & 1 deletion catalog/clients/python/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ def test_models_custom_properties_has_valid_structure(
custom_properties = model.get("customProperties")
if errors := _validate_custom_property_structure(custom_properties=custom_properties,
kind_cluster=kind_cluster):
all_errors.append(f"Model '{model_name}': {'\n'.join(errors)}")
err_lines = "\n".join(errors)
all_errors.append(f"Model '{model_name}': {err_lines}")
assert not all_errors, "\n".join(all_errors)


Expand Down
8 changes: 4 additions & 4 deletions catalog/internal/catalog/modelcatalog/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -417,8 +417,8 @@ func TestLoadCatalogSourcesWithMockRepositories(t *testing.T) {
savedModel := savedModels[0]
if savedModel.GetAttributes() == nil || savedModel.GetAttributes().Name == nil {
t.Error("Saved model should have attributes with name")
} else if *savedModel.GetAttributes().Name != "test-model" {
t.Errorf("Expected model name 'test-model', got '%s'", *savedModel.GetAttributes().Name)
} else if DisplayName(savedModel) != "test-model" {
t.Errorf("Expected model name 'test-model', got '%s'", DisplayName(savedModel))
}
}

Expand Down Expand Up @@ -609,8 +609,8 @@ func TestLoadCatalogSourcesWithNilEnabled(t *testing.T) {
savedModel := savedModels[0]
if savedModel.GetAttributes() == nil || savedModel.GetAttributes().Name == nil {
t.Error("Saved model should have attributes with name")
} else if *savedModel.GetAttributes().Name != "test-model-nil-enabled" {
t.Errorf("Expected model name 'test-model-nil-enabled', got '%s'", *savedModel.GetAttributes().Name)
} else if DisplayName(savedModel) != "test-model-nil-enabled" {
t.Errorf("Expected model name 'test-model-nil-enabled', got '%s'", DisplayName(savedModel))
}
}
}
Expand Down
20 changes: 16 additions & 4 deletions catalog/internal/catalog/modelcatalog/db_catalog.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,10 @@ func NewDBCatalog(services service.Services, sources *SourceCollection) APIProvi
}

func (d *dbCatalogImpl) GetModel(ctx context.Context, modelName string, sourceID string) (*apimodels.CatalogModel, error) {
// Resolve by namespaced identifier: sourceId:modelName
namespacedName := sourceID + ":" + modelName
modelsList, err := d.catalogModelRepository.List(models.CatalogModelListOptions{
Name: &modelName,
Name: &namespacedName,
SourceIDs: &[]string{sourceID},
})
if err != nil {
Expand Down Expand Up @@ -238,9 +240,11 @@ func (d *dbCatalogImpl) GetFilterOptions(ctx context.Context) (*apimodels.Filter
}

func (d *dbCatalogImpl) GetPerformanceArtifacts(ctx context.Context, modelName string, sourceID string, params ListPerformanceArtifactsParams) (apimodels.CatalogArtifactList, error) {
// Resolve by namespaced identifier: sourceId:modelName
namespacedName := sourceID + ":" + modelName
// Get the model to validate it exists and get its ID
modelsList, err := d.catalogModelRepository.List(models.CatalogModelListOptions{
Name: &modelName,
Name: &namespacedName,
SourceIDs: &[]string{sourceID},
})
if err != nil {
Expand Down Expand Up @@ -305,7 +309,10 @@ func mapDBModelToAPIModel(m models.CatalogModel) apimodels.CatalogModel {
res.Id = &id

if m.GetAttributes() != nil {
res.Name = *m.GetAttributes().Name
storedName := *m.GetAttributes().Name
// Return display name: strip "sourceId:" prefix so API shows model name only.
// Source is already exposed via source_id.
res.Name = DisplayNameFromStoredName(storedName)
res.ExternalId = m.GetAttributes().ExternalID

if m.GetAttributes().CreateTimeSinceEpoch != nil {
Expand Down Expand Up @@ -627,9 +634,14 @@ func (d *dbCatalogImpl) FindModelsWithRecommendedLatency(
filterQuery = strings.ReplaceAll(filterQuery, "artifacts.", "")
}

// Use stored (namespaced) name for lookup: sourceId:modelName
namespacedName := ""
if model.GetAttributes() != nil && model.GetAttributes().Name != nil {
namespacedName = *model.GetAttributes().Name
}
latency, err := d.performanceService.GetMinimumRecommendedLatency(
ctx,
apiModel.Name,
namespacedName,
sourceID,
paretoParams,
filterQuery,
Expand Down
Loading
Loading