Skip to content

Commit

Permalink
Merge branch 'kubeflow:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
wise-king-sullyman authored Nov 15, 2024
2 parents f3f7dbd + 95e34e4 commit b16d537
Show file tree
Hide file tree
Showing 169 changed files with 4,022 additions and 4,965 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Model registry provides a central repository for model developers to store and m
- [playground](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/kubeflow/model-registry/main/api/openapi/model-registry.yaml)
- [license scanning](https://github.com/kubeflow/model-registry/issues/323)
- [monitoring image quality](https://github.com/kubeflow/model-registry/issues/327)
8. [UI](.clients/ui/README.md)

## Pre-requisites:
- go >= 1.21
Expand Down
4 changes: 2 additions & 2 deletions clients/python/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ deploy-latest-mr:

.PHONY: test-e2e
test-e2e: deploy-latest-mr
poetry run pytest --e2e -s
poetry run pytest --e2e -s -rA

.PHONY: test
test:
poetry run pytest -s
poetry run pytest -s -rA

.PHONY: lint
lint:
Expand Down
2 changes: 2 additions & 0 deletions clients/python/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ def tests(session: Session) -> None:
)
session.run(
"pytest",
"-rA",
*session.posargs,
)

Expand All @@ -81,6 +82,7 @@ def e2e_tests(session: Session) -> None:
session.run(
"pytest",
"--e2e",
"-rA",
"--cov",
"--cov-config=pyproject.toml",
*session.posargs,
Expand Down
62 changes: 31 additions & 31 deletions clients/python/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions clients/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "model-registry"
version = "0.2.10"
version = "0.2.11"
description = "Client for Kubeflow Model Registry"
authors = ["Isabella Basso do Amaral <[email protected]>"]
license = "Apache-2.0"
Expand Down Expand Up @@ -43,7 +43,7 @@ sphinx-autobuild = ">=2021.3.14,<2025.0.0"
[tool.poetry.group.dev.dependencies]
pytest = ">=7.4.2,<9.0.0"
coverage = { extras = ["toml"], version = "^7.3.2" }
pytest-cov = ">=4.1,<6.0"
pytest-cov = ">=4.1,<7.0"
ruff = ">=0.5.2,<0.8.0"
mypy = "^1.7.0"
pytest-asyncio = ">=0.23.7,<0.25.0"
Expand Down
2 changes: 1 addition & 1 deletion clients/python/src/model_registry/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Main package for the Kubeflow model registry."""

__version__ = "0.2.10"
__version__ = "0.2.11"

from ._client import ModelRegistry

Expand Down
33 changes: 33 additions & 0 deletions clients/python/tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,39 @@ async def test_update_preserves_model_info(client: ModelRegistry):
assert updated_ma.model_format_version == model_fmt_version


@pytest.mark.e2e
async def test_update_existing_model_artifact(client: ModelRegistry):
"""Updating uri (or other properties) by re-using and call to update
reported via slack
"""
name = "test_model"
version = "1.0.0"
rm = client.register_model(
name,
"s3",
model_format_name="test_format",
model_format_version="test_version",
version=version,
)
assert rm.id
mv = client.get_model_version(name, version)
assert mv
assert mv.id
ma = client.get_model_artifact(name, version)
assert ma
assert ma.id

something_else = "https://something.else/model.onnx"
ma.uri = something_else
response = client.update(ma)
assert response
assert response.uri == something_else

ma = client.get_model_artifact(name, version)
assert ma.uri == something_else


@pytest.mark.e2e
async def test_get(client: ModelRegistry):
name = "test_model"
Expand Down
32 changes: 32 additions & 0 deletions clients/ui/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
CONTAINER_TOOL ?= docker

.PHONY: all
all: build

.PHONY: help
help: ## Display this help.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

.PHONY: dev-install-dependencies
dev-install-dependencies:
cd frontend && npm install

.PHONY: dev-bff
dev-bff:
cd bff && make run PORT=4000 MOCK_K8S_CLIENT=true MOCK_MR_CLIENT=true

.PHONY: dev-frontend
dev-frontend:
cd frontend && npm run start:dev

.PHONY: dev-start
dev-start:
make -j 2 dev-bff dev-frontend

.PHONY: docker-compose
docker-compose:
$(CONTAINER_TOOL) compose -f docker-compose.yaml up

.PHONY: kind-deployment
kind-deployment:
./scripts/deploy_kind_cluster.sh
48 changes: 48 additions & 0 deletions clients/ui/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[frontend requirements]: ./frontend/docs/dev-setup.md#requirements
[BFF requirements]: ./bff/README.md#pre-requisites
[frontend dev setup]: ./frontend/docs/dev-setup.md#development
[BFF dev setup]: ./bff/README.md#development

# Model Registry UI

## Overview

The Model Registry UI is a standalone web app for Kubeflow Model Registry. In this repository, you will find the frontend and backend for the Model Registry UI.

## Prerequisites

* [Frontend requirements]
* [BFF requirements]

## Set Up

### Development

To run the a mocked dev environment you can either:

* Use the makefile command to install dependencies `make dev-install-dependencies` and then start the dev environment `make dev-start`.

* Or follow the [frontend dev setup] and [BFF dev setup].

### Docker deployment

To build the Model Registry UI container, run the following command:

```shell
make docker-compose
```

### Kubernetes Deployment

For a in-depth guide on how to deploy the Model Registry UI, please refer to the [local kubernetes deployment](./bff/docs/dev-guide.md) documentation.

To quickly enable the Model Registry UI in your Kind cluster, you can use the following command:

```shell
make kind-deployment
```

## OpenAPI Specification

You can find the OpenAPI specification for the Model Registry UI in the [openapi](./api/openapi) directory.
A live version of the OpenAPI specification can be found [here](https://editor.swagger.io/?url=https://raw.githubusercontent.com/kubeflow/model-registry/main/clients/ui/api/openapi/mod-arch.yaml).
Loading

0 comments on commit b16d537

Please sign in to comment.