diff --git a/api/pkg/imagebuilder/imagebuilder_test.go b/api/pkg/imagebuilder/imagebuilder_test.go index f75742fa9..3de6e95a2 100644 --- a/api/pkg/imagebuilder/imagebuilder_test.go +++ b/api/pkg/imagebuilder/imagebuilder_test.go @@ -340,7 +340,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -391,7 +391,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: config, }, { @@ -453,7 +453,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -482,7 +482,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: configWithSa, }, { @@ -544,7 +544,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -587,7 +587,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: Config{ BuildNamespace: testBuildNamespace, BaseImage: cfg.BaseImageConfig{ @@ -670,7 +670,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -718,7 +718,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: Config{ BuildNamespace: testBuildNamespace, BaseImage: cfg.BaseImageConfig{ @@ -806,7 +806,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), "--cache=true", "--compressed-caching=false", "--snapshot-mode=redo", @@ -856,7 +856,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: Config{ BuildNamespace: config.BuildNamespace, BaseImage: cfg.BaseImageConfig{ @@ -936,7 +936,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -987,7 +987,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantCreateJob: nil, - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: config, }, { @@ -1048,7 +1048,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -1102,7 +1102,7 @@ func TestBuildImage(t *testing.T) { }, wantCreateJob: nil, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: config, }, { @@ -1163,7 +1163,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -1266,7 +1266,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -1317,7 +1317,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: fmt.Sprintf("%s-%s-%s", project.Name, model.Name, modelVersion.ID), - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: config, }, { @@ -1383,7 +1383,7 @@ func TestBuildImage(t *testing.T) { fmt.Sprintf("--build-arg=BASE_IMAGE=%s", config.BaseImage.ImageName), fmt.Sprintf("--build-arg=MODEL_DEPENDENCIES_URL=%s", modelDependenciesURL), fmt.Sprintf("--build-arg=MODEL_ARTIFACTS_URL=%s/model", testArtifactURI), - fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), + fmt.Sprintf("--destination=%s", fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID)), fmt.Sprintf("--context-sub-path=%s", config.BaseImage.BuildContextSubPath), "--cache=true", "--compressed-caching=false", @@ -1434,7 +1434,7 @@ func TestBuildImage(t *testing.T) { Status: batchv1.JobStatus{}, }, wantDeleteJobName: "", - wantImageRef: fmt.Sprintf("%s/%s-%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), + wantImageRef: fmt.Sprintf("%s/%s/pyfunc-models/%s:%s", config.DockerRegistry, project.Name, model.Name, modelVersion.ID), config: config, }, } diff --git a/api/pkg/imagebuilder/model_service_imagebuilder.go b/api/pkg/imagebuilder/model_service_imagebuilder.go index 5f2fa68e8..cc37c19bb 100644 --- a/api/pkg/imagebuilder/model_service_imagebuilder.go +++ b/api/pkg/imagebuilder/model_service_imagebuilder.go @@ -41,5 +41,5 @@ func (n *modelServiceNameGenerator) generateBuilderJobName(project mlp.Project, // generateDockerImageName generate docker image name of model service func (n *modelServiceNameGenerator) generateDockerImageName(project mlp.Project, model *models.Model) string { - return fmt.Sprintf("%s/%s-%s", n.dockerRegistry, project.Name, model.Name) + return fmt.Sprintf("%s/%s/pyfunc-models/%s", n.dockerRegistry, project.Name, model.Name) } diff --git a/api/pkg/imagebuilder/prediction_job_imagebuilder.go b/api/pkg/imagebuilder/prediction_job_imagebuilder.go index 8c08e6808..6296ad00f 100644 --- a/api/pkg/imagebuilder/prediction_job_imagebuilder.go +++ b/api/pkg/imagebuilder/prediction_job_imagebuilder.go @@ -41,5 +41,5 @@ func (n *predictionJobNameGenerator) generateBuilderJobName(project mlp.Project, // generateDockerImageName generate the name of docker image of prediction job that will be created from given model func (n *predictionJobNameGenerator) generateDockerImageName(project mlp.Project, model *models.Model) string { - return fmt.Sprintf("%s/%s-%s-job", n.dockerRegistry, project.Name, model.Name) + return fmt.Sprintf("%s/%s/batch-jobs/%s", n.dockerRegistry, project.Name, model.Name) }