chore: rename container images (#2639)

Renaming ghcr.io/kubeflow/model-registry/* to ghcr.io/kubeflow/hub/*

Signed-off-by: Paul Boyd <paul@pboyd.io>
This commit is contained in:
Paul Boyd
2026-04-24 14:58:30 +00:00
committed by GitHub
parent 271393c425
commit 243b2e06d7
42 changed files with 93 additions and 90 deletions
+2 -2
View File
@@ -23,12 +23,12 @@ env:
# Async Job
JOB_IMG_REGISTRY: ghcr.io
JOB_IMG_ORG: kubeflow
JOB_IMG_NAME: model-registry/job/async-upload
JOB_IMG_NAME: hub/job/async-upload
JOB_IMG_VERSION: cicd
# MR Server
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/server
IMG_REPO: hub/server
IMG_VERSION: cicd
PUSH_IMAGE: false
@@ -20,7 +20,7 @@ permissions: read-all
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_NAME: model-registry/job/async-upload
IMG_NAME: hub/job/async-upload
REGISTRY_USER: ${{ github.actor }}
REGISTRY_PWD: ${{ secrets.GITHUB_TOKEN }}
PLATFORMS: linux/arm64,linux/amd64
@@ -17,7 +17,7 @@ permissions: read-all
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/controller
IMG_REPO: hub/controller
PUSH_IMAGE: true
DOCKER_USER: ${{ github.actor }}
DOCKER_PWD: ${{ secrets.GITHUB_TOKEN }}
@@ -17,7 +17,7 @@ permissions: read-all
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/storage-initializer
IMG_REPO: hub/storage-initializer
PUSH_IMAGE: true
DOCKER_USER: ${{ github.actor }}
DOCKER_PWD: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -16,7 +16,7 @@ on:
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/server
IMG_REPO: hub/server
PUSH_IMAGE: true
DOCKER_USER: ${{ github.actor }}
DOCKER_PWD: ${{ secrets.GITHUB_TOKEN }}
@@ -17,7 +17,7 @@ permissions: read-all
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_UI_REPO: model-registry/ui-standalone # this image is intended for local development, not production
IMG_UI_REPO: hub/ui-standalone # this image is intended for local development, not production
DOCKER_USER: ${{ github.actor }}
DOCKER_PWD: ${{ secrets.GITHUB_TOKEN }}
PLATFORMS: linux/arm64,linux/amd64
@@ -17,7 +17,7 @@ permissions: read-all
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_UI_REPO: model-registry/ui # this image is intended for local development, not production
IMG_UI_REPO: hub/ui # this image is intended for local development, not production
DOCKER_USER: ${{ github.actor }}
DOCKER_PWD: ${{ secrets.GITHUB_TOKEN }}
PLATFORMS: linux/arm64,linux/amd64
+1 -1
View File
@@ -18,7 +18,7 @@ permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule Token
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/server
IMG_REPO: hub/server
PUSH_IMAGE: false
BRANCH: ${{ github.base_ref }}
jobs:
+1 -1
View File
@@ -16,7 +16,7 @@ permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule Token
env:
IMG_ORG: kubeflow
IMG_REPO: model-registry/ui
IMG_REPO: hub/ui
PUSH_IMAGE: false
BRANCH: ${{ github.base_ref }}
jobs:
+1 -1
View File
@@ -56,6 +56,6 @@ jobs:
- name: Build controller
shell: bash
env:
IMG_REPO: model-registry/controller
IMG_REPO: hub/controller
IMG_VERSION: ${{ steps.tags.outputs.tag }}
run: make image/build
+2 -2
View File
@@ -25,8 +25,8 @@ permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule Token
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
MODEL_REGISTRY_IMG: model-registry/server
MODEL_REGISTRY_CSI_IMG: model-registry/storage-initializer
MODEL_REGISTRY_IMG: hub/server
MODEL_REGISTRY_CSI_IMG: hub/storage-initializer
PUSH_IMAGE: false
BRANCH: ${{ github.base_ref }}
jobs:
+1 -1
View File
@@ -120,7 +120,7 @@ jobs:
FORCE_COLOR: "1"
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry
IMG_REPO: hub
DEPLOY_MANIFEST_DB: "${{ matrix.manifest-db }}"
steps:
- name: Check out the repository
+1 -1
View File
@@ -13,7 +13,7 @@ permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule Token
env:
IMG_REGISTRY: ghcr.io
IMG_ORG: kubeflow
IMG_REPO: model-registry/server
IMG_REPO: hub/server
IMG_VERSION: latest
PUSH_IMAGE: false
+5 -5
View File
@@ -16,11 +16,11 @@ jobs:
strategy:
matrix:
IMAGE: [
'ghcr.io/kubeflow/model-registry/server:latest',
'ghcr.io/kubeflow/model-registry/ui:latest',
'ghcr.io/kubeflow/model-registry/job/async-upload:latest',
'ghcr.io/kubeflow/model-registry/storage-initializer:latest',
'ghcr.io/kubeflow/model-registry/ui-standalone:latest'
'ghcr.io/kubeflow/hub/server:latest',
'ghcr.io/kubeflow/hub/ui:latest',
'ghcr.io/kubeflow/hub/job/async-upload:latest',
'ghcr.io/kubeflow/hub/storage-initializer:latest',
'ghcr.io/kubeflow/hub/ui-standalone:latest'
]
steps:
- name: Checkout code
+5 -5
View File
@@ -25,7 +25,7 @@ IMG_ORG ?= kubeflow
# container image version
IMG_VERSION ?= main
# container image repository
IMG_REPO ?= model-registry/server
IMG_REPO ?= hub/server
# container image build path
BUILD_PATH ?= .
# container image
@@ -39,19 +39,19 @@ endif
# Change Dockerfile path depending on IMG_REPO
# UI image uses repo root as context so COPY manifests/... for sample-catalog.yaml works
ifeq ($(IMG_REPO),model-registry/ui)
ifeq ($(IMG_REPO),hub/ui)
DOCKERFILE := $(UI_PATH)/Dockerfile
BUILD_PATH := $(PROJECT_PATH)
ARGS := --build-arg UI_SOURCE_CODE=clients/ui/frontend --build-arg BFF_SOURCE_CODE=clients/ui/bff $(ARGS)
endif
# The BUILD_PATH is still the root
ifeq ($(IMG_REPO),model-registry/storage-initializer)
ifeq ($(IMG_REPO),hub/storage-initializer)
DOCKERFILE := $(CSI_PATH)/Dockerfile.csi
endif
# The BUILD_PATH is still the root
ifeq ($(IMG_REPO),model-registry/controller)
ifeq ($(IMG_REPO),hub/controller)
DOCKERFILE := $(CONTROLLER_PATH)/Dockerfile.controller
endif
@@ -429,7 +429,7 @@ controller/uninstall: controller/manifests bin/kustomize ## Uninstall CRDs from
.PHONY: controller/deploy
controller/deploy: controller/manifests bin/kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
cd manifests/kustomize/options/controller/manager && $(KUSTOMIZE) edit set image ghcr.io/kubeflow/model-registry/controller=${IMG}:${IMG_VERSION}
cd manifests/kustomize/options/controller/manager && $(KUSTOMIZE) edit set image ghcr.io/kubeflow/hub/controller=${IMG}:${IMG_VERSION}
$(KUSTOMIZE) build manifests/kustomize/options/controller/overlays/base | $(KUBECTL) apply -f -
.PHONY: controller/undeploy
+4 -5
View File
@@ -69,10 +69,10 @@ Create a PR to update what's needed on the release branch, i.e. to update the ma
```
git checkout -b mr_maintainer-$TDATE-upstreamSync
pushd manifests/kustomize/base && kustomize edit set image ghcr.io/kubeflow/model-registry/server=ghcr.io/kubeflow/model-registry/server:$VVERSION && popd
pushd manifests/kustomize/options/csi && kustomize edit set image ghcr.io/kubeflow/model-registry/storage-initializer=ghcr.io/kubeflow/model-registry/storage-initializer:$VVERSION && popd
pushd manifests/kustomize/options/ui/base && kustomize edit set image model-registry-ui=ghcr.io/kubeflow/model-registry/ui:$VVERSION && popd
pushd manifests/kustomize/options/catalog/base && kustomize edit set image ghcr.io/kubeflow/model-registry/server=ghcr.io/kubeflow/model-registry/server:$VVERSION && popd
pushd manifests/kustomize/base && kustomize edit set image ghcr.io/kubeflow/hub/server=ghcr.io/kubeflow/hub/server:$VVERSION && popd
pushd manifests/kustomize/options/csi && kustomize edit set image ghcr.io/kubeflow/hub/storage-initializer=ghcr.io/kubeflow/hub/storage-initializer:$VVERSION && popd
pushd manifests/kustomize/options/ui/base && kustomize edit set image model-registry-ui=ghcr.io/kubeflow/hub/ui:$VVERSION && popd
pushd manifests/kustomize/options/catalog/base && kustomize edit set image ghcr.io/kubeflow/hub/server=ghcr.io/kubeflow/hub/server:$VVERSION && popd
git add .
git commit -s
@@ -142,4 +142,3 @@ Please notice the OpenAPI spec in the Reference section is automatically updated
See at the beginning "Prerequisites", to facilitate the next round, now it's the best time:
- bump already MR py client to the next version, example PR
https://github.com/kubeflow/model-registry/pull/871
+1 -1
View File
@@ -219,7 +219,7 @@ $(LOCALBIN):
deploy-apply: deploy-namespace deploy-kustomize
@echo "Applying kustomize manifests..."
cd "$(KUSTOMIZE_E2E)" && \
$(KUSTOMIZE) edit set image "ghcr.io/kubeflow/model-registry/server=$(KIND_IMAGE)"
$(KUSTOMIZE) edit set image "ghcr.io/kubeflow/hub/server=$(KIND_IMAGE)"
kubectl apply -k "$(KUSTOMIZE_E2E)"
@echo "Waiting for PostgreSQL to be ready..."
kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=postgres -n "$(CATALOG_NAMESPACE)" --timeout=120s
+1 -1
View File
@@ -1,7 +1,7 @@
all: install tidy
IMG_VERSION ?= latest
IMG ?= ghcr.io/kubeflow/model-registry/server
IMG ?= ghcr.io/kubeflow/hub/server
BUILD_IMAGE ?= true # whether to build the MR server image
.PHONY: install
+3 -3
View File
@@ -1,9 +1,9 @@
############### Default settings ###############
CONTAINER_TOOL=docker
IMG_UI=ghcr.io/kubeflow/model-registry/ui:latest
IMG_UI_STANDALONE=ghcr.io/kubeflow/model-registry/ui-standalone:latest
IMG_UI_FEDERATED=ghcr.io/kubeflow/model-registry/ui-federated:latest
IMG_UI=ghcr.io/kubeflow/hub/ui:latest
IMG_UI_STANDALONE=ghcr.io/kubeflow/hub/ui-standalone:latest
IMG_UI_FEDERATED=ghcr.io/kubeflow/hub/ui-federated:latest
PLATFORM=linux/amd64
STYLE_THEME=mui-theme
DEPLOYMENT_MODE=kubeflow
+6 -6
View File
@@ -40,20 +40,20 @@ The following environment variables are used to configure the deployment and dev
### `IMG_UI`
* **Description**: Specifies the image name and tag for the UI (with BFF).
* **Default Value**: `ghcr.io/kubeflow/model-registry/ui:latest`
* **Example**: `IMG_UI=ghcr.io/kubeflow/model-registry/ui:latest`
* **Default Value**: `ghcr.io/kubeflow/hub/ui:latest`
* **Example**: `IMG_UI=ghcr.io/kubeflow/hub/ui:latest`
### `IMG_UI_STANDALONE`
* **Description**: Specifies the image name and tag for the UI (with BFF) in **standalone mode**, used for local kind deployment.
* **Default Value**: `ghcr.io/kubeflow/model-registry/ui-standalone:latest`
* **Example**: `IMG_UI_STANDALONE=ghcr.io/kubeflow/model-registry/ui-standalone:latest`
* **Default Value**: `ghcr.io/kubeflow/hub/ui-standalone:latest`
* **Example**: `IMG_UI_STANDALONE=ghcr.io/kubeflow/hub/ui-standalone:latest`
### `IMG_UI_FEDERATED`
* **Description**: Specifies the image name and tag for the UI (with BFF) in **federated mode**, used for federated mode outside kubeflow.
* **Default Value**: `ghcr.io/kubeflow/model-registry/ui-federated:latest`
* **Example**: `IMG_UI_FEDERATED=ghcr.io/kubeflow/model-registry/ui-federated:latest`
* **Default Value**: `ghcr.io/kubeflow/hub/ui-federated:latest`
* **Example**: `IMG_UI_FEDERATED=ghcr.io/kubeflow/hub/ui-federated:latest`
### `PLATFORM`
+1 -1
View File
@@ -3361,7 +3361,7 @@ components:
message:
type: string
description: Human-readable description of the event.
example: "Successfully pulled image \"ghcr.io/kubeflow/model-registry/job/async-upload:latest\""
example: "Successfully pulled image \"ghcr.io/kubeflow/hub/job/async-upload:latest\""
ModelTransferJobList:
description: List of ModelTransferJob entities.
type: object
@@ -923,7 +923,7 @@ func createModelTransferJob(k8sClient kubernetes.Interface, ctx context.Context,
Containers: []corev1.Container{
{
Name: "async-upload",
Image: "ghcr.io/kubeflow/model-registry/job/async-upload:latest",
Image: "ghcr.io/kubeflow/hub/job/async-upload:latest",
Env: []corev1.EnvVar{
{Name: "MODEL_SYNC_SOURCE_TYPE", Value: "s3"},
{Name: "MODEL_SYNC_SOURCE_AWS_KEY", Value: "models/my-model"},
@@ -1045,7 +1045,7 @@ func createModelTransferJob(k8sClient kubernetes.Interface, ctx context.Context,
Containers: []corev1.Container{
{
Name: "async-upload",
Image: "ghcr.io/kubeflow/model-registry/job/async-upload:latest",
Image: "ghcr.io/kubeflow/hub/job/async-upload:latest",
},
},
},
@@ -1122,7 +1122,7 @@ func createModelTransferJob(k8sClient kubernetes.Interface, ctx context.Context,
Containers: []corev1.Container{
{
Name: "async-upload",
Image: "ghcr.io/kubeflow/model-registry/job/async-upload:latest",
Image: "ghcr.io/kubeflow/hub/job/async-upload:latest",
},
},
},
@@ -1168,7 +1168,7 @@ func createModelTransferJob(k8sClient kubernetes.Interface, ctx context.Context,
Spec: corev1.PodSpec{
RestartPolicy: corev1.RestartPolicyNever,
Containers: []corev1.Container{
{Name: "async-upload", Image: "ghcr.io/kubeflow/model-registry/job/async-upload:latest"},
{Name: "async-upload", Image: "ghcr.io/kubeflow/hub/job/async-upload:latest"},
},
},
},
@@ -24,7 +24,7 @@ import (
const (
// DefaultAsyncUploadImage is the default container image for async-upload jobs.
DefaultAsyncUploadImage = "ghcr.io/kubeflow/model-registry/job/async-upload:latest"
DefaultAsyncUploadImage = "ghcr.io/kubeflow/hub/job/async-upload:latest"
asyncUploadConfigMapName = "model-registry-ui-config"
asyncUploadConfigMapKey = "images-jobs-async-upload"
)
+1 -1
View File
@@ -88,7 +88,7 @@ local_resource(
)
docker_build_with_restart(
"ghcr.io/kubeflow/model-registry/server:latest",
"ghcr.io/kubeflow/hub/server:latest",
context="../",
dockerfile="../tilt.dockerfile",
entrypoint=["/model-registry"],
+1 -1
View File
@@ -84,7 +84,7 @@ local_resource(
)
docker_build_with_restart(
"ghcr.io/kubeflow/model-registry/controller",
"ghcr.io/kubeflow/hub/controller",
context="../../../",
dockerfile="../../../tilt-controller.dockerfile",
entrypoint=["/manager"],
+1 -1
View File
@@ -113,7 +113,7 @@ local_resource(
)
docker_build_with_restart(
"ghcr.io/kubeflow/model-registry/ui:latest",
"ghcr.io/kubeflow/hub/ui:latest",
context="../../../",
dockerfile="../../../tilt-ui.dockerfile",
entrypoint=["/bff"],
+4 -4
View File
@@ -12,7 +12,7 @@
version: '3.8'
services:
model-registry-ui:
image: ghcr.io/kubeflow/model-registry/ui-standalone:latest
image: ghcr.io/kubeflow/hub/ui-standalone:latest
pull_policy: always
command:
- --port=9000
@@ -34,7 +34,7 @@ services:
- "localhost:host-gateway"
model-catalog:
image: ghcr.io/kubeflow/model-registry/server:latest
image: ghcr.io/kubeflow/hub/server:latest
pull_policy: always
command: ["catalog", "--listen", "0.0.0.0:8081", "--catalogs-path", "/testdata/test-catalog-sources.yaml"]
container_name: model-catalog
@@ -53,10 +53,10 @@ services:
- PGPASSWORD=demo
model-registry:
image: ghcr.io/kubeflow/model-registry/server:latest
image: ghcr.io/kubeflow/hub/server:latest
pull_policy: always
entrypoint: ["/bin/sh"]
command:
command:
- -c
- |
if [ "$$DB_TYPE" = "postgres" ]; then
+2 -2
View File
@@ -1,7 +1,7 @@
JOB_IMG_VERSION ?= latest # when testing locally with KinD, override default to a tag of choice and you can opt-in to BUILD_IMAGE=false below.
JOB_IMG_REGISTRY ?= ghcr.io
JOB_IMG_ORG ?= kubeflow
JOB_IMG_NAME ?= model-registry/job/async-upload
JOB_IMG_NAME ?= hub/job/async-upload
JOB_IMG ?= $(JOB_IMG_REGISTRY)/$(JOB_IMG_ORG)/$(JOB_IMG_NAME):$(JOB_IMG_VERSION)
BUILD_IMAGE ?= true # whether to build the MR server image
CLUSTER_NAME ?= mr-e2e
@@ -9,7 +9,7 @@ CLUSTER_NAME ?= mr-e2e
# MR Server Params
IMG_VERSION ?= latest
# keep IMG consistent with root Makefile and ci/GHA:
IMG ?= ghcr.io/kubeflow/model-registry/server
IMG ?= ghcr.io/kubeflow/hub/server
.PHONY: deploy-latest-mr
deploy-latest-mr:
@@ -66,7 +66,7 @@ spec:
restartPolicy: Never
containers:
- name: async-upload
image: ghcr.io/kubeflow/model-registry/job/async-upload:latest
image: ghcr.io/kubeflow/hub/job/async-upload:latest
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
@@ -62,7 +62,7 @@ The integration tests require:
## Environment Variables
- `MR_HOST_URL`: Model Registry URL (default: `http://localhost:8080`)
- `CONTAINER_IMAGE_URI`: Container image for the async-upload job (default: `ghcr.io/kubeflow/model-registry/job/async-upload:latest`)
- `CONTAINER_IMAGE_URI`: Container image for the async-upload job (default: `ghcr.io/kubeflow/hub/job/async-upload:latest`)
## What the Tests Do
@@ -270,12 +270,12 @@ def wait_for_job_completion(
def get_termination_message(job_name: str, namespace: str, k8s_core_client) -> str | None:
"""Get the termination message from a completed job's pod.
Returns the termination message content or None if not found.
"""
try:
pods = k8s_core_client.list_namespaced_pod(
namespace=namespace,
namespace=namespace,
label_selector=f"job-name={job_name}"
)
for pod in pods.items:
@@ -298,54 +298,54 @@ def validate_termination_message(
expected_ma_id: str | None = None,
) -> dict:
"""Validate the termination message contains expected JSON structure with IDs.
Args:
termination_message: The raw termination message string
expected_intent: Expected intent type (e.g., "create_model", "create_version", "update_artifact")
expected_rm_id: Expected RegisteredModel ID (validates if provided)
expected_mv_id: Expected ModelVersion ID (validates if provided)
expected_ma_id: Expected ModelArtifact ID (validates if provided)
Returns:
The parsed termination message as a dict
Raises:
AssertionError if validation fails
"""
assert termination_message is not None, "Termination message should not be None"
# Parse JSON
try:
result = json.loads(termination_message)
except json.JSONDecodeError as e:
pytest.fail(f"Termination message is not valid JSON: {e}\nMessage: {termination_message}")
# Validate intent field is always present
assert "intent" in result, f"Missing 'intent' in termination message: {result}"
if expected_intent:
assert result["intent"] == expected_intent, \
f"Intent mismatch: expected {expected_intent}, got {result['intent']}"
# Validate specific IDs if provided
if expected_rm_id:
assert "RegisteredModel" in result, f"Missing 'RegisteredModel' in termination message: {result}"
assert "id" in result["RegisteredModel"], f"Missing 'id' in RegisteredModel: {result}"
assert result["RegisteredModel"]["id"] == expected_rm_id, \
f"RegisteredModel ID mismatch: expected {expected_rm_id}, got {result['RegisteredModel']['id']}"
if expected_mv_id:
assert "ModelVersion" in result, f"Missing 'ModelVersion' in termination message: {result}"
assert "id" in result["ModelVersion"], f"Missing 'id' in ModelVersion: {result}"
assert result["ModelVersion"]["id"] == expected_mv_id, \
f"ModelVersion ID mismatch: expected {expected_mv_id}, got {result['ModelVersion']['id']}"
if expected_ma_id:
assert "ModelArtifact" in result, f"Missing 'ModelArtifact' in termination message: {result}"
assert "id" in result["ModelArtifact"], f"Missing 'id' in ModelArtifact: {result}"
assert result["ModelArtifact"]["id"] == expected_ma_id, \
f"ModelArtifact ID mismatch: expected {expected_ma_id}, got {result['ModelArtifact']['id']}"
print(f"✅ Termination message validated: {json.dumps(result, indent=2)}")
return result
@@ -431,13 +431,13 @@ class JobResult:
def _run_job_and_wait(env, tmp_path, k8s, configmap_data=None) -> JobResult:
"""Helper function to run the async upload job and wait for completion.
Returns:
JobResult containing job_name and termination_message
"""
# Configuration
container_image_uri = os.environ.get(
"CONTAINER_IMAGE_URI", "ghcr.io/kubeflow/model-registry/job/async-upload:latest"
"CONTAINER_IMAGE_URI", "ghcr.io/kubeflow/hub/job/async-upload:latest"
)
job_name = f"test-async-upload-job-{uuid.uuid4().hex[:8]}"
namespace = "default"
@@ -502,11 +502,11 @@ def _run_job_and_wait(env, tmp_path, k8s, configmap_data=None) -> JobResult:
pytest.fail("Job did not complete successfully")
print("Job completed successfully!")
# Get termination message
termination_message = get_termination_message(job_name, namespace, k8s.core)
print(f"Termination message: {termination_message}")
return JobResult(job_name=job_name, termination_message=termination_message)
@@ -647,7 +647,7 @@ def test_update_artifact_integration(
assert updated_ma.state == ArtifactState.LIVE, f"State was not updated to LIVE: {updated_ma.state}"
print(f"✅ Artifact URI updated to: {updated_ma.uri}")
print(f"✅ Artifact state updated to: {updated_ma.state}")
# Validate termination message contains correct IDs
# Note: update_artifact only returns the ModelArtifact ID since that's the only
# entity being updated - the job doesn't look up parent RM/MV IDs
@@ -657,7 +657,7 @@ def test_update_artifact_integration(
expected_intent="update_artifact",
expected_ma_id=ma.id,
)
print("Integration test completed successfully!")
@@ -29,7 +29,7 @@ spec:
command:
- /model-registry
- proxy
image: ghcr.io/kubeflow/model-registry/server:latest
image: ghcr.io/kubeflow/hub/server:latest
env:
- name: DBCONFIG_USER
valueFrom:
@@ -56,7 +56,7 @@ spec:
args:
- --listen=0.0.0.0:8080
- --catalogs-path=/catalog/sources.yaml
image: ghcr.io/kubeflow/model-registry/server:latest
image: ghcr.io/kubeflow/hub/server:latest
ports:
- name: http-api
containerPort: 8080
@@ -53,6 +53,6 @@ patches:
name: model-catalog-server
version: v1
images:
- name: ghcr.io/kubeflow/model-registry/server
- name: ghcr.io/kubeflow/hub/server
newName: model-registry
newTag: catalog-test
@@ -49,7 +49,7 @@ spec:
args:
- --leader-elect
- --health-probe-bind-address=:8081
image: ghcr.io/kubeflow/model-registry/controller:latest
image: ghcr.io/kubeflow/hub/controller:latest
name: manager
env:
- name: NAMESPACE_LABEL
@@ -5,7 +5,7 @@ metadata:
spec:
container:
name: storage-initializer
image: ghcr.io/kubeflow/model-registry/storage-initializer:latest
image: ghcr.io/kubeflow/hub/storage-initializer:latest
env:
- name: MODEL_REGISTRY_BASE_URL
value: "model-registry-service.kubeflow.svc.cluster.local:8080"
@@ -9,5 +9,5 @@ resources:
images:
- name: model-registry-ui
newName: ghcr.io/kubeflow/model-registry/ui
newName: ghcr.io/kubeflow/hub/ui
newTag: latest
+1 -1
View File
@@ -5,7 +5,7 @@ set -e
# see Makefile for the IMG_ variables semantic
IMG_REGISTRY="${IMG_REGISTRY:-ghcr.io}"
IMG_ORG="${IMG_ORG:-kubeflow}"
IMG_REPO="${IMG_REPO:-model-registry/server}"
IMG_REPO="${IMG_REPO:-hub/server}"
DOCKER_USER="${DOCKER_USER}"
DOCKER_PWD="${DOCKER_PWD}"
+1 -1
View File
@@ -4,7 +4,7 @@ set -e
DIR="$(dirname "$0")"
MR_NAMESPACE="${MR_NAMESPACE:-kubeflow}"
IMG="${IMG:-ghcr.io/kubeflow/model-registry/server:latest}" # TODO RHOAIENG-30453 align consistency ./scripts/deploy_on_kind.sh uses IMG with :tag, Vs, Makefile(s) and ci/GHA we use IMG without trailing :tag
IMG="${IMG:-ghcr.io/kubeflow/hub/server:latest}" # TODO RHOAIENG-30453 align consistency ./scripts/deploy_on_kind.sh uses IMG with :tag, Vs, Makefile(s) and ci/GHA we use IMG without trailing :tag
DEPLOY_MANIFEST_DB="${DEPLOY_MANIFEST_DB:-db}" # subdirectory of manifests/kustomize/overlays to select which database: 'db' (MySQL) or 'postgres'
source ./${DIR}/utils.sh
+4 -2
View File
@@ -13,14 +13,16 @@ source ./${DIR}/test_utils.sh
KUBECTL=${KUBECTL:-"kubectl"}
# You can provide a local version of the model registry storage initializer
# In that case, assure that is visible to the local k8s env, e.g., using
# In that case, assure that is visible to the local k8s env, e.g., using
# `kind load docker-image $MRCSI_IMG`
MRCSI_IMG=${MRCSI_IMG:-"ghcr.io/kubeflow/model-registry/storage-initializer:main"}
MRCSI_IMG=${MRCSI_IMG:-"ghcr.io/kubeflow/hub/storage-initializer:main"}
KSERVE_VERSION=${KSERVE_VERSION:-"0.16"}
MODELREGISTRY_VERSION=${MODELREGISTRY_VERSION:-"v0.3.2"}
MODELREGISTRY_CSI=${MODELREGISTRY_CSI:-"v0.3.2"}
# FIXME: Use ghcr.io/kubeflow/hub/* images after v0.3.9
# You can provide a local model registry container image
MR_IMG=${MR_IMG:-"ghcr.io/kubeflow/model-registry/server:$MODELREGISTRY_VERSION"}
# You can provide a local model registry storage initializer container image
+4 -2
View File
@@ -12,13 +12,15 @@ KUBECTL=${KUBECTL:-"kubectl"}
CLUSTER=${CLUSTER:-"kind"}
# You can provide a local version of the model registry storage initializer
# In that case, assure that is visible to the local k8s env, e.g., using
# In that case, assure that is visible to the local k8s env, e.g., using
# `kind load docker-image $MRCSI_IMG`
MRCSI_IMG=${MRCSI_IMG:-"ghcr.io/kubeflow/model-registry/storage-initializer:main"}
MRCSI_IMG=${MRCSI_IMG:-"ghcr.io/kubeflow/hub/storage-initializer:main"}
KSERVE_VERSION=${KSERVE_VERSION:-"0.16"}
MODELREGISTRY_VERSION=${MODELREGISTRY_VERSION:-"v0.3.2"}
MODELREGISTRY_CSI=${MODELREGISTRY_CSI:-"v0.3.2"}
#
# FIXME: Use ghcr.io/kubeflow/hub/* images after v0.3.9
# You can provide a local model registry container image
MR_IMG=${MR_IMG:-"ghcr.io/kubeflow/model-registry/server:$MODELREGISTRY_VERSION"}
+2 -2
View File
@@ -18,7 +18,7 @@ Help() {
MR_ROOT="$(dirname "$0")/../.."
namespace=kubeflow
image=ghcr.io/kubeflow/model-registry/server:latest
image=ghcr.io/kubeflow/hub/server:latest
while getopts ":hn:i:" option; do
case $option in
h) # display Help
@@ -40,7 +40,7 @@ if ! kubectl get namespace "$namespace" &> /dev/null; then
fi
# Apply model-registry kustomize manifests
echo Using model registry image: $image
cd $MR_ROOT/manifests/kustomize/base && kustomize edit set image ghcr.io/kubeflow/model-registry/server:latest=${image} && \
cd $MR_ROOT/manifests/kustomize/base && kustomize edit set image ghcr.io/kubeflow/hub/server:latest=${image} && \
kustomize edit set namespace $namespace && cd -
cd $MR_ROOT/manifests/kustomize/overlays/db && kustomize edit set namespace $namespace && cd -
kubectl -n $namespace apply -k "$MR_ROOT/manifests/kustomize/overlays/db"