diff --git a/clients/ui/Dockerfile b/clients/ui/Dockerfile index 7c1936b281..1fbff1449a 100644 --- a/clients/ui/Dockerfile +++ b/clients/ui/Dockerfile @@ -32,7 +32,9 @@ ARG BFF_SOURCE_CODE ARG TARGETOS ARG TARGETARCH -WORKDIR /usr/src/app +COPY ../../pkg/openapi /usr/src/app/pkg/openapi + +WORKDIR /usr/src/app/clients/ui/bff # Copy the Go Modules manifests COPY ${BFF_SOURCE_CODE}/go.mod ${BFF_SOURCE_CODE}/go.sum ./ @@ -45,7 +47,7 @@ COPY ${BFF_SOURCE_CODE}/cmd/ cmd/ COPY ${BFF_SOURCE_CODE}/internal/ internal/ # Build the Go application -RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o bff ./cmd +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o /usr/src/app/bff ./cmd # Final stage # Use distroless as minimal base image to package the application binary diff --git a/clients/ui/Dockerfile.standalone b/clients/ui/Dockerfile.standalone index 131fcafefd..638d0da219 100644 --- a/clients/ui/Dockerfile.standalone +++ b/clients/ui/Dockerfile.standalone @@ -32,7 +32,9 @@ ARG BFF_SOURCE_CODE ARG TARGETOS ARG TARGETARCH -WORKDIR /usr/src/app +COPY ../../pkg/openapi /usr/src/app/pkg/openapi + +WORKDIR /usr/src/app/clients/ui/bff # Copy the Go Modules manifests COPY ${BFF_SOURCE_CODE}/go.mod ${BFF_SOURCE_CODE}/go.sum ./ @@ -45,7 +47,7 @@ COPY ${BFF_SOURCE_CODE}/cmd/ cmd/ COPY ${BFF_SOURCE_CODE}/internal/ internal/ # Build the Go application -RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o bff ./cmd +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o /usr/src/app/bff ./cmd # Install setup-envtest and download K8s binaries for mock mode RUN go install sigs.k8s.io/controller-runtime/tools/setup-envtest@release-0.19 diff --git a/clients/ui/bff/go.mod b/clients/ui/bff/go.mod index cbb9280cfa..b0980fafde 100644 --- a/clients/ui/bff/go.mod +++ b/clients/ui/bff/go.mod @@ -6,7 +6,7 @@ require ( github.com/brianvoe/gofakeit/v7 v7.14.1 github.com/google/uuid v1.6.0 github.com/julienschmidt/httprouter v1.3.0 - github.com/kubeflow/model-registry/pkg/openapi v0.3.2 + github.com/kubeflow/hub/pkg/openapi v0.0.0 github.com/onsi/ginkgo/v2 v2.28.2 github.com/onsi/gomega v1.39.0 github.com/rs/cors v1.11.1 @@ -75,3 +75,5 @@ require ( sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) + +replace github.com/kubeflow/hub/pkg/openapi => ../../../pkg/openapi diff --git a/clients/ui/bff/go.sum b/clients/ui/bff/go.sum index cf79e9494e..1d8227417c 100644 --- a/clients/ui/bff/go.sum +++ b/clients/ui/bff/go.sum @@ -59,8 +59,6 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubeflow/model-registry/pkg/openapi v0.3.2 h1:t/H+zxHiwcPGUITG/fWHUrTrJwoi9IlVa7vmzZI1eZk= -github.com/kubeflow/model-registry/pkg/openapi v0.3.2/go.mod h1:0V0wF5hGlLDSNS+on0MTnEOFiubfVYNc7QhuthKBu+8= github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= diff --git a/clients/ui/bff/internal/api/artifacts_handler.go b/clients/ui/bff/internal/api/artifacts_handler.go index 4ca66db9e3..f428230fb1 100644 --- a/clients/ui/bff/internal/api/artifacts_handler.go +++ b/clients/ui/bff/internal/api/artifacts_handler.go @@ -9,8 +9,8 @@ import ( "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" "github.com/julienschmidt/httprouter" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/constants" - "github.com/kubeflow/model-registry/pkg/openapi" ) type ArtifactListEnvelope Envelope[*openapi.ArtifactList, None] diff --git a/clients/ui/bff/internal/api/model_artifacts_handler.go b/clients/ui/bff/internal/api/model_artifacts_handler.go index 90cb704679..0b60c0677e 100644 --- a/clients/ui/bff/internal/api/model_artifacts_handler.go +++ b/clients/ui/bff/internal/api/model_artifacts_handler.go @@ -9,8 +9,8 @@ import ( "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" "github.com/julienschmidt/httprouter" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/constants" - "github.com/kubeflow/model-registry/pkg/openapi" ) type ModelArtifactUpdateEnvelope Envelope[*openapi.ModelArtifactUpdate, None] diff --git a/clients/ui/bff/internal/api/model_versions_handler.go b/clients/ui/bff/internal/api/model_versions_handler.go index 588cb4acae..59a3c40c2d 100644 --- a/clients/ui/bff/internal/api/model_versions_handler.go +++ b/clients/ui/bff/internal/api/model_versions_handler.go @@ -7,10 +7,10 @@ import ( "net/http" "github.com/julienschmidt/httprouter" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/constants" "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" "github.com/kubeflow/hub/ui/bff/internal/validation" - "github.com/kubeflow/model-registry/pkg/openapi" ) type ModelVersionEnvelope Envelope[*openapi.ModelVersion, None] diff --git a/clients/ui/bff/internal/api/model_versions_handler_test.go b/clients/ui/bff/internal/api/model_versions_handler_test.go index 505233d863..db1309b785 100644 --- a/clients/ui/bff/internal/api/model_versions_handler_test.go +++ b/clients/ui/bff/internal/api/model_versions_handler_test.go @@ -3,9 +3,9 @@ package api import ( "net/http" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/integrations/kubernetes" "github.com/kubeflow/hub/ui/bff/internal/mocks" - "github.com/kubeflow/model-registry/pkg/openapi" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) diff --git a/clients/ui/bff/internal/api/registered_models_handler.go b/clients/ui/bff/internal/api/registered_models_handler.go index 012128b5e3..8e4a6ae925 100644 --- a/clients/ui/bff/internal/api/registered_models_handler.go +++ b/clients/ui/bff/internal/api/registered_models_handler.go @@ -7,10 +7,10 @@ import ( "net/http" "github.com/julienschmidt/httprouter" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/constants" "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" "github.com/kubeflow/hub/ui/bff/internal/validation" - "github.com/kubeflow/model-registry/pkg/openapi" ) type RegisteredModelEnvelope Envelope[*openapi.RegisteredModel, None] diff --git a/clients/ui/bff/internal/api/registered_models_handler_test.go b/clients/ui/bff/internal/api/registered_models_handler_test.go index 777eb3036f..32ea24775a 100644 --- a/clients/ui/bff/internal/api/registered_models_handler_test.go +++ b/clients/ui/bff/internal/api/registered_models_handler_test.go @@ -3,9 +3,9 @@ package api import ( "net/http" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/integrations/kubernetes" "github.com/kubeflow/hub/ui/bff/internal/mocks" - "github.com/kubeflow/model-registry/pkg/openapi" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) diff --git a/clients/ui/bff/internal/mocks/model_registry_client_mock.go b/clients/ui/bff/internal/mocks/model_registry_client_mock.go index 202b587d5f..1159b98591 100644 --- a/clients/ui/bff/internal/mocks/model_registry_client_mock.go +++ b/clients/ui/bff/internal/mocks/model_registry_client_mock.go @@ -6,7 +6,7 @@ import ( "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" "github.com/stretchr/testify/mock" ) diff --git a/clients/ui/bff/internal/mocks/static_data_mock.go b/clients/ui/bff/internal/mocks/static_data_mock.go index c29c692d7e..efc83a8df5 100644 --- a/clients/ui/bff/internal/mocks/static_data_mock.go +++ b/clients/ui/bff/internal/mocks/static_data_mock.go @@ -9,9 +9,9 @@ import ( "github.com/brianvoe/gofakeit/v7" "github.com/google/uuid" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/constants" "github.com/kubeflow/hub/ui/bff/internal/models" - "github.com/kubeflow/model-registry/pkg/openapi" ) func GetRegisteredModelMocks() []openapi.RegisteredModel { @@ -184,8 +184,8 @@ func GetModelArtifactListMock() openapi.ModelArtifactList { } } -func newCustomProperties() *map[string]openapi.MetadataValue { - result := map[string]openapi.MetadataValue{ +func newCustomProperties() map[string]openapi.MetadataValue { + return map[string]openapi.MetadataValue{ "tensorflow": { MetadataStringValue: &openapi.MetadataStringValue{ StringValue: "", @@ -223,8 +223,6 @@ func newCustomProperties() *map[string]openapi.MetadataValue { }, }, } - - return &result } func catalogCustomProperties() *map[string]openapi.MetadataValue { @@ -1047,7 +1045,7 @@ func GetCatalogLabelListMock() models.CatalogLabelList { func GetCatalogModelArtifactMock() []models.CatalogArtifact { architecturesJSON, _ := json.Marshal([]string{"amd64", "arm64", "s390x", "ppc64le"}) customProps := newCustomProperties() - (*customProps)["architecture"] = openapi.MetadataValue{ + customProps["architecture"] = openapi.MetadataValue{ MetadataStringValue: &openapi.MetadataStringValue{ StringValue: string(architecturesJSON), MetadataType: "MetadataStringValue", @@ -1060,7 +1058,7 @@ func GetCatalogModelArtifactMock() []models.CatalogArtifact { Uri: stringToPointer("oci://registry.sample.io/repo1/modelcar-granite-7b-starter:1.4.0"), CreateTimeSinceEpoch: stringToPointer("1693526400000"), LastUpdateTimeSinceEpoch: stringToPointer("1704067200000"), - CustomProperties: customProps, + CustomProperties: &customProps, }, } } diff --git a/clients/ui/bff/internal/mocks/types_mock.go b/clients/ui/bff/internal/mocks/types_mock.go index affab6e8b0..06809a3f80 100644 --- a/clients/ui/bff/internal/mocks/types_mock.go +++ b/clients/ui/bff/internal/mocks/types_mock.go @@ -6,7 +6,7 @@ import ( "strconv" "github.com/brianvoe/gofakeit/v7" - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) func GenerateMockRegisteredModelList() openapi.RegisteredModelList { @@ -26,7 +26,7 @@ func GenerateMockRegisteredModelList() openapi.RegisteredModelList { func GenerateMockRegisteredModel() openapi.RegisteredModel { model := openapi.RegisteredModel{ - CustomProperties: &map[string]openapi.MetadataValue{ + CustomProperties: map[string]openapi.MetadataValue{ "example_key": { MetadataStringValue: &openapi.MetadataStringValue{ StringValue: gofakeit.Sentence(3), @@ -48,7 +48,7 @@ func GenerateMockRegisteredModel() openapi.RegisteredModel { func GenerateMockModelVersion() openapi.ModelVersion { model := openapi.ModelVersion{ - CustomProperties: &map[string]openapi.MetadataValue{ + CustomProperties: map[string]openapi.MetadataValue{ "example_key": { MetadataStringValue: &openapi.MetadataStringValue{ StringValue: gofakeit.Sentence(3), @@ -87,7 +87,7 @@ func GenerateMockModelVersionList() openapi.ModelVersionList { func GenerateMockModelArtifact() openapi.ModelArtifact { artifact := openapi.ModelArtifact{ ArtifactType: stringToPointer("model-artifact"), - CustomProperties: &map[string]openapi.MetadataValue{ + CustomProperties: map[string]openapi.MetadataValue{ "example_key": { MetadataStringValue: &openapi.MetadataStringValue{ StringValue: gofakeit.Sentence(3), diff --git a/clients/ui/bff/internal/models/catalog_model_artifact_list.go b/clients/ui/bff/internal/models/catalog_model_artifact_list.go index 5094ba51a6..bb533cfec8 100644 --- a/clients/ui/bff/internal/models/catalog_model_artifact_list.go +++ b/clients/ui/bff/internal/models/catalog_model_artifact_list.go @@ -1,7 +1,7 @@ package models import ( - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) type CatalogModelArtifact struct { diff --git a/clients/ui/bff/internal/models/catalog_model_list.go b/clients/ui/bff/internal/models/catalog_model_list.go index 66f9b587c9..b2ea5037f1 100644 --- a/clients/ui/bff/internal/models/catalog_model_list.go +++ b/clients/ui/bff/internal/models/catalog_model_list.go @@ -1,7 +1,7 @@ package models import ( - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) type CatalogModel struct { diff --git a/clients/ui/bff/internal/models/mcp_server_catalog.go b/clients/ui/bff/internal/models/mcp_server_catalog.go index 6e719be9f4..17beda6d5a 100644 --- a/clients/ui/bff/internal/models/mcp_server_catalog.go +++ b/clients/ui/bff/internal/models/mcp_server_catalog.go @@ -1,6 +1,6 @@ package models -import "github.com/kubeflow/model-registry/pkg/openapi" +import "github.com/kubeflow/hub/pkg/openapi" type McpDeploymentMode string diff --git a/clients/ui/bff/internal/repositories/artifacts.go b/clients/ui/bff/internal/repositories/artifacts.go index 70f08c9c51..b215bfad5a 100644 --- a/clients/ui/bff/internal/repositories/artifacts.go +++ b/clients/ui/bff/internal/repositories/artifacts.go @@ -8,7 +8,7 @@ import ( "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) const artifactPath = "/artifacts" diff --git a/clients/ui/bff/internal/repositories/model_artifacts.go b/clients/ui/bff/internal/repositories/model_artifacts.go index 84d6cf8fc0..fd30adc2e3 100644 --- a/clients/ui/bff/internal/repositories/model_artifacts.go +++ b/clients/ui/bff/internal/repositories/model_artifacts.go @@ -8,7 +8,7 @@ import ( "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) const modelArtifactPath = "/model_artifacts" diff --git a/clients/ui/bff/internal/repositories/model_version.go b/clients/ui/bff/internal/repositories/model_version.go index 246259e9bd..7e025d88d9 100644 --- a/clients/ui/bff/internal/repositories/model_version.go +++ b/clients/ui/bff/internal/repositories/model_version.go @@ -6,8 +6,8 @@ import ( "fmt" "net/url" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" - "github.com/kubeflow/model-registry/pkg/openapi" ) const modelVersionPath = "/model_versions" diff --git a/clients/ui/bff/internal/repositories/registered_model.go b/clients/ui/bff/internal/repositories/registered_model.go index fd71064674..0649513e44 100644 --- a/clients/ui/bff/internal/repositories/registered_model.go +++ b/clients/ui/bff/internal/repositories/registered_model.go @@ -6,8 +6,8 @@ import ( "fmt" "net/url" + "github.com/kubeflow/hub/pkg/openapi" "github.com/kubeflow/hub/ui/bff/internal/integrations/httpclient" - "github.com/kubeflow/model-registry/pkg/openapi" ) const registeredModelPath = "/registered_models" diff --git a/clients/ui/bff/internal/validation/validation.go b/clients/ui/bff/internal/validation/validation.go index 6cc74cd73b..40e2395360 100644 --- a/clients/ui/bff/internal/validation/validation.go +++ b/clients/ui/bff/internal/validation/validation.go @@ -3,7 +3,7 @@ package validation import ( "errors" - "github.com/kubeflow/model-registry/pkg/openapi" + "github.com/kubeflow/hub/pkg/openapi" ) func ValidateRegisteredModel(input openapi.RegisteredModel) error { diff --git a/clients/ui/bff/internal/validation/validation_test.go b/clients/ui/bff/internal/validation/validation_test.go index b79f4bba5b..3aad73b0d5 100644 --- a/clients/ui/bff/internal/validation/validation_test.go +++ b/clients/ui/bff/internal/validation/validation_test.go @@ -1,8 +1,9 @@ package validation import ( - "github.com/kubeflow/model-registry/pkg/openapi" "testing" + + "github.com/kubeflow/hub/pkg/openapi" ) func TestValidateRegisteredModel(t *testing.T) {