You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by li...@apache.org on 2020/09/30 09:43:44 UTC

[submarine] branch master updated: SUBMARINE-645. Push all image from grc.io to apache docker hub

This is an automated email from the ASF dual-hosted git repository.

liuxun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new 412ca79  SUBMARINE-645. Push all image from grc.io to apache docker hub
412ca79 is described below

commit 412ca79ccaf17221a3d18640e2c5b5dc5406b202
Author: Kevin Su <pi...@gmail.com>
AuthorDate: Tue Sep 29 17:03:04 2020 +0800

    SUBMARINE-645. Push all image from grc.io to apache docker hub
    
    ### What is this PR for?
    Related to SUBMARINE-643
    For the known reason, this gcr image cannot be pulled from some places.
    
    1. Retag all image from gcr.io to `apache/subamrine`
    2. push to apache docker hub
    3. Rename image name in the repo
    
    And update pytorch and tf operator to kubeflow latest stable version 1.1
    
    ### What type of PR is it?
    [Improvement]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    https://issues.apache.org/jira/browse/SUBMARINE-645
    
    ### How should this be tested?
    https://travis-ci.org/github/pingsutw/hadoop-submarine/builds/731226763
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Does the licenses files need update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Author: Kevin Su <pi...@gmail.com>
    
    Closes #420 from pingsutw/SUBMARINE-645 and squashes the following commits:
    
    64ffee4 [Kevin Su] Push all image from grc.io to apache docker hub
---
 README.md                                          |  8 +-
 dev-support/k8s/deploy-kubeflow-operators.sh       |  6 +-
 dev-support/k8s/deploy-notebook-controller.sh      |  2 +-
 .../k8s/notebook-controller/deployment.yaml        |  2 +-
 .../k8s/notebook-controller/kustomization.yaml     |  6 +-
 dev-support/k8s/pytorchjob/deployment.yaml         |  2 +-
 .../k8s/pytorchjob/deployment_v1.16plus.yaml       |  2 +-
 dev-support/k8s/tfjob/operator/deployment.yaml     |  2 +-
 dev-support/k8s/tfjob/operator/kustomization.yaml  |  6 +-
 docs/database/submarine-data.sql                   |  2 +-
 docs/design/submarine-server/jobspec.md            |  4 +-
 docs/userdocs/k8s/api/experiment-template.md       |  8 +-
 docs/userdocs/k8s/api/experiment.md                | 14 ++--
 docs/userdocs/k8s/run-tensorflow-experiment.md     |  8 +-
 docs/userdocs/k8s/tensorflow.md                    |  8 +-
 .../notebook-controller/templates/deployment.yaml  |  2 +-
 .../charts/pytorchjob/templates/deployment.yaml    |  2 +-
 .../charts/tfjob/templates/deployment.yaml         |  5 +-
 .../example/submarine_experiment_sdk.ipynb         | 12 +--
 .../tests/experiment/test_experiment_client.py     |  2 +-
 .../experimentTemplate/test_template_1.json        | 86 +++++++++++-----------
 .../src/test/resources/tf_mnist_req.json           |  2 +-
 .../apache/submarine/integration/experimentIT.java |  2 +-
 .../resources/tensorflow/tf-mnist-patch-req.json   |  2 +-
 .../resources/tensorflow/tf-mnist-patch-req.yaml   |  2 +-
 .../test/resources/tensorflow/tf-mnist-req.json    |  2 +-
 .../test/resources/tensorflow/tf-mnist-req.yaml    |  2 +-
 .../tensorflow/tf-mnist-with-env-req.json          |  2 +-
 .../tf-mnist-with-http-git-code-localizer-req.json |  2 +-
 .../tf-mnist-with-ssh-git-code-localizer-req.json  |  2 +-
 .../experiment-customized-form.component.ts        |  2 +-
 31 files changed, 104 insertions(+), 105 deletions(-)

diff --git a/README.md b/README.md
index 02a4da1..2980443 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@
 
 # What is Apache Submarine?
 
-**Apache Submarine** (Submarine for short) is an **End-to-End Machine Learning PLATFORM** to allow data scientists to create end-to-end machine learning workflows. To elaborate, on **Submarine**, data scientists can finish each stage in the ML model lifecycle, including data exploration, data pipeline creation, model training, serving, and monitoring.  
+**Apache Submarine** (Submarine for short) is an **End-to-End Machine Learning PLATFORM** to allow data scientists to create end-to-end machine learning workflows. To elaborate, on **Submarine**, data scientists can finish each stage in the ML model lifecycle, including data exploration, data pipeline creation, model training, serving, and monitoring.
 
 ## Why Submarine?
 
@@ -44,9 +44,9 @@ _Theodore Levitt_ once said:
 #### Model Training (Experiment)
 - Run/Track distributed training `experiment` on prem or cloud via easy-to-use UI/API/SDK.
 - Easy for data scientists to manage versions of `experiment` and dependencies of `environment`
-- Support popular machine learning frameworks, including **TensorFlow**, **PyTorch**, **Horovod**, and **MXNet**  
+- Support popular machine learning frameworks, including **TensorFlow**, **PyTorch**, **Horovod**, and **MXNet**
 - Provide pre-defined **template** for data scientists to implement domain-specific tasks easily (e.g. using DeepFM template to build a CTR prediction model)
-- Support many compute resources (e.g. CPU and GPU, etc.) 
+- Support many compute resources (e.g. CPU and GPU, etc.)
 - Support **Kubernetes** and **YARN**
 - Pipeline is also on the backlog, we will look into pipeline for training in the future.
 
@@ -71,7 +71,7 @@ As mentioned above, Submarine attempts to provide **Data-Scientist-friendly** UI
 submarine_client = submarine.ExperimentClient(host='http://localhost:8080')
 
 # The experiment's environment, could be Docker image or Conda environment based
-environment = Environment(image='gcr.io/kubeflow-ci/tf-dist-mnist-test:1.0')
+environment = EnvironmentSpec(image='apache/submarine:tf-dist-mnist-test-1.0')
 
 # Specify the experiment's name, framework it's using, namespace it will run in,
 # the entry point. It can also accept environment variables. etc.
diff --git a/dev-support/k8s/deploy-kubeflow-operators.sh b/dev-support/k8s/deploy-kubeflow-operators.sh
index 43e27ee..ec12aa6 100755
--- a/dev-support/k8s/deploy-kubeflow-operators.sh
+++ b/dev-support/k8s/deploy-kubeflow-operators.sh
@@ -18,9 +18,9 @@
 #
 set -euo pipefail
 
-readonly TF_OPERATOR_IMAGE="gcr.io/kubeflow-images-public/tf_operator:v1.0.0-g92389064"
-readonly PYTORCH_OPERATOR_IMAGE="gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f"
-readonly TF_MNIST_IMAGE="gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+readonly TF_OPERATOR_IMAGE="apache/submarine:tf_operator-v1.1.0-g92389064"
+readonly PYTORCH_OPERATOR_IMAGE="apache/submarine:pytorch-operator-v1.1.0-gd596e904"
+readonly TF_MNIST_IMAGE="apache/submarine:tf-mnist-with-summaries-1.0"
 readonly PT_MNIST_IMAGE="apache/submarine:pytorch-dist-mnist-1.0"
 
 if [ -L "${BASH_SOURCE-$0}" ]; then
diff --git a/dev-support/k8s/deploy-notebook-controller.sh b/dev-support/k8s/deploy-notebook-controller.sh
index 159a249..3ce674d 100755
--- a/dev-support/k8s/deploy-notebook-controller.sh
+++ b/dev-support/k8s/deploy-notebook-controller.sh
@@ -18,7 +18,7 @@
 #
 set -euo pipefail
 
-readonly NOTEBOOK_CONTROLLER_IMAGE="gcr.io/kubeflow-images-public/notebook-controller:v1.1.0-g253890cb"
+readonly NOTEBOOK_CONTROLLER_IMAGE="apache/submarine:notebook-controller-v1.1.0-g253890cb"
 
 if [ -L "${BASH_SOURCE-$0}" ]; then
   PWD=$(dirname "$(readlink "${BASH_SOURCE-$0}")")
diff --git a/dev-support/k8s/notebook-controller/deployment.yaml b/dev-support/k8s/notebook-controller/deployment.yaml
index ded2ad0..cb7c93c 100644
--- a/dev-support/k8s/notebook-controller/deployment.yaml
+++ b/dev-support/k8s/notebook-controller/deployment.yaml
@@ -10,7 +10,7 @@ spec:
     spec:
       containers:
       - name: manager
-        image: gcr.io/kubeflow-images-public/notebook-controller:v1.1.0-g253890cb
+        image: apache/submarine:notebook-controller-v1.1.0-g253890cb
         command:
           - /manager
         imagePullPolicy: IfNotPresent
diff --git a/dev-support/k8s/notebook-controller/kustomization.yaml b/dev-support/k8s/notebook-controller/kustomization.yaml
index dbc92d0..f0c75d5 100644
--- a/dev-support/k8s/notebook-controller/kustomization.yaml
+++ b/dev-support/k8s/notebook-controller/kustomization.yaml
@@ -15,9 +15,9 @@ commonLabels:
   app: notebook-controller
   kustomize.component: notebook-controller
 images:
-- name: gcr.io/kubeflow-images-public/notebook-controller
-  newName: gcr.io/kubeflow-images-public/notebook-controller
-  newTag: v1.1.0-g253890cb
+- name: apache/submarine
+  newName: apache/submarine
+  newTag: notebook-controller-v1.1.0-g253890cb
 configMapGenerator:
 - name: parameters
   literals:
diff --git a/dev-support/k8s/pytorchjob/deployment.yaml b/dev-support/k8s/pytorchjob/deployment.yaml
index 441a517..6ebcea7 100644
--- a/dev-support/k8s/pytorchjob/deployment.yaml
+++ b/dev-support/k8s/pytorchjob/deployment.yaml
@@ -29,6 +29,6 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
-        image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
+        image: apache/submarine:pytorch-operator-v1.1.0-gd596e904
         name: pytorch-operator
       serviceAccountName: pytorch-operator
diff --git a/dev-support/k8s/pytorchjob/deployment_v1.16plus.yaml b/dev-support/k8s/pytorchjob/deployment_v1.16plus.yaml
index 4a2238f..5db665b 100644
--- a/dev-support/k8s/pytorchjob/deployment_v1.16plus.yaml
+++ b/dev-support/k8s/pytorchjob/deployment_v1.16plus.yaml
@@ -41,7 +41,7 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.name
-        image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
+        image: apache/submarine:pytorch-operator-v1.1.0-gd596e904
         imagePullPolicy: IfNotPresent
         name: pytorch-operator
         resources: {}
diff --git a/dev-support/k8s/tfjob/operator/deployment.yaml b/dev-support/k8s/tfjob/operator/deployment.yaml
index 411c73d..b4115b9 100644
--- a/dev-support/k8s/tfjob/operator/deployment.yaml
+++ b/dev-support/k8s/tfjob/operator/deployment.yaml
@@ -26,6 +26,6 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: metadata.name
-          image: gcr.io/kubeflow-images-public/tf_operator:v1.0.0-g92389064
+          image: apache/submarine:tf_operator-v1.1.0-g92389064
           name: tf-job-operator
       serviceAccountName: tf-job-operator
diff --git a/dev-support/k8s/tfjob/operator/kustomization.yaml b/dev-support/k8s/tfjob/operator/kustomization.yaml
index 5be190f..06f3f6e 100644
--- a/dev-support/k8s/tfjob/operator/kustomization.yaml
+++ b/dev-support/k8s/tfjob/operator/kustomization.yaml
@@ -10,6 +10,6 @@ resources:
 commonLabels:
   kustomize.component: tf-job-operator
 images:
-- name: gcr.io/kubeflow-images-public/tf_operator
-  newName: gcr.io/kubeflow-images-public/tf_operator
-  newTag: v1.0.0-g92389064
+- name: apache/submarine
+  newName: apache/submarine
+  newTag: tf_operator-v1.1.0-g92389064
diff --git a/docs/database/submarine-data.sql b/docs/database/submarine-data.sql
index 6bdcc0e..e1eae5c 100644
--- a/docs/database/submarine-data.sql
+++ b/docs/database/submarine-data.sql
@@ -92,4 +92,4 @@ INSERT INTO `environment` VALUES
 -- Records of experiment_templates
 -- ----------------------------
 INSERT INTO `experiment_template` (`id`, `experimentTemplate_name`, `experimentTemplate_spec`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES
-('experimentTemplate_1596391902149_0002', 'tf-mnist', '{\"name\": \"tf-mnist\", \"author\": \"author0\", \"parameters\": [{\"name\": \"input.train_data\", \"required\": \"true\", \"description\": \"train data is expected in SVM format, and can be stored in HDFS/S3 \\n\"}, {\"name\": \"training.batch_size\", \"value\": \"150\", \"required\": \"false\", \"description\": \"This is batch size of training\"}], \"description\": \"This is a template to run tf-mnist\\n\", \"experimentSpec\": {\" [...]
+('experimentTemplate_1596391902149_0002', 'tf-mnist', '{\"name\": \"tf-mnist\", \"author\": \"author0\", \"parameters\": [{\"name\": \"input.train_data\", \"required\": \"true\", \"description\": \"train data is expected in SVM format, and can be stored in HDFS/S3 \\n\"}, {\"name\": \"training.batch_size\", \"value\": \"150\", \"required\": \"false\", \"description\": \"This is batch size of training\"}], \"description\": \"This is a template to run tf-mnist\\n\", \"experimentSpec\": {\" [...]
diff --git a/docs/design/submarine-server/jobspec.md b/docs/design/submarine-server/jobspec.md
index 063d714..beb776a 100644
--- a/docs/design/submarine-server/jobspec.md
+++ b/docs/design/submarine-server/jobspec.md
@@ -1,4 +1,4 @@
-<!-- 
+<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -29,7 +29,7 @@ name: "mnist"
 librarySpec:
   name: "TensorFlow"
   version: "2.1.0"
-  image: "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  image: "apache/submarine:tf-mnist-with-summaries-1.0"
   cmd: "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150"
   envVars:
     ENV_1: "ENV1"
diff --git a/docs/userdocs/k8s/api/experiment-template.md b/docs/userdocs/k8s/api/experiment-template.md
index 40afe03..8e9e9b3 100644
--- a/docs/userdocs/k8s/api/experiment-template.md
+++ b/docs/userdocs/k8s/api/experiment-template.md
@@ -88,7 +88,7 @@ curl -X POST -H "Content-Type: application/json" -d '
       }
     },
     "environment": {
-      "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+      "image": "apache/submarine:tf-mnist-with-summaries-1.0"
     }
   }
 }
@@ -161,7 +161,7 @@ curl -X PATCH -H "Content-Type: application/json" -d '
       }
     },
     "environment": {
-      "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+      "image": "apache/submarine:tf-mnist-with-summaries-1.0"
     }
   }
 }
@@ -191,8 +191,8 @@ curl -X POST -H "Content-Type: application/json" -d '
 {
     "name": "tf-mnist",
     "params": {
-        "training.learning_rate":"0.01", 
-        "training.batch_size":"150", 
+        "training.learning_rate":"0.01",
+        "training.batch_size":"150",
         "experiment.name":"newExperiment"
     }
 }
diff --git a/docs/userdocs/k8s/api/experiment.md b/docs/userdocs/k8s/api/experiment.md
index 835cc48..703323e 100644
--- a/docs/userdocs/k8s/api/experiment.md
+++ b/docs/userdocs/k8s/api/experiment.md
@@ -39,7 +39,7 @@ curl -X POST -H "Content-Type: application/json" -d '
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
@@ -77,7 +77,7 @@ curl -X POST -H "Content-Type: application/json" -d '
         }
       },
       "environment": {
-        "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+        "image": "apache/submarine:tf-mnist-with-summaries-1.0"
       },
       "spec": {
         "Ps": {
@@ -198,7 +198,7 @@ curl -X GET http://127.0.0.1:8080/api/v1/experiment
                     }
                 },
                 "environment": {
-                    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+                    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
                 },
                 "spec": {
                     "Ps": {
@@ -277,7 +277,7 @@ curl -X GET http://127.0.0.1:8080/api/v1/experiment/experiment_1592057447228_000
                 }
             },
             "environment": {
-                "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+                "image": "apache/submarine:tf-mnist-with-summaries-1.0"
             },
             "spec": {
                 "Ps": {
@@ -311,7 +311,7 @@ curl -X PATCH -H "Content-Type: application/json" -d '
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
@@ -344,7 +344,7 @@ curl -X PATCH -H "Content-Type: application/json" -d '
             }
         },
         "environment": {
-            "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+            "image": "apache/submarine:tf-mnist-with-summaries-1.0"
         },
         "spec": {
             "Ps": {
@@ -390,7 +390,7 @@ curl -X DELETE http://127.0.0.1:8080/api/v1/experiment/experiment_1592057447228_
                 }
             },
             "environment": {
-                "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+                "image": "apache/submarine:tf-mnist-with-summaries-1.0"
             },
             "spec": {
                 "Ps": {
diff --git a/docs/userdocs/k8s/run-tensorflow-experiment.md b/docs/userdocs/k8s/run-tensorflow-experiment.md
index a06ab56..cba89f6 100644
--- a/docs/userdocs/k8s/run-tensorflow-experiment.md
+++ b/docs/userdocs/k8s/run-tensorflow-experiment.md
@@ -32,7 +32,7 @@ meta:
   envVars:
     ENV_1: "ENV1"
 environment:
-  image: "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  image: "apache/submarine:tf-mnist-with-summaries-1.0"
 spec:
   Ps:
     replicas: 1
@@ -55,7 +55,7 @@ spec:
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
@@ -87,7 +87,7 @@ curl -X POST -H "Content-Type: application/json" -d '
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
@@ -125,7 +125,7 @@ curl -X POST -H "Content-Type: application/json" -d '
                 }
             },
             "environment": {
-                "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+                "image": "apache/submarine:tf-mnist-with-summaries-1.0"
             },
             "spec": {
                 "Ps": {
diff --git a/docs/userdocs/k8s/tensorflow.md b/docs/userdocs/k8s/tensorflow.md
index 30c4ef3..e3cd2ba 100644
--- a/docs/userdocs/k8s/tensorflow.md
+++ b/docs/userdocs/k8s/tensorflow.md
@@ -1,4 +1,4 @@
-<!-- 
+<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -47,8 +47,8 @@ resources:
 commonLabels:
   kustomize.component: tf-job-operator
 images:
-- name: gcr.io/kubeflow-images-public/tf_operator
-  newName: gcr.io/kubeflow-images-public/tf_operator
-  newTag: v0.7.0
+- name: apache/submarine
+  newName: apache/submarine
+  newTag: tf_operator-v1.1.0-g92389064
 ```
 
diff --git a/helm-charts/submarine/charts/notebook-controller/templates/deployment.yaml b/helm-charts/submarine/charts/notebook-controller/templates/deployment.yaml
index ae6a59e..4b05373 100644
--- a/helm-charts/submarine/charts/notebook-controller/templates/deployment.yaml
+++ b/helm-charts/submarine/charts/notebook-controller/templates/deployment.yaml
@@ -33,7 +33,7 @@ spec:
     spec:
       containers:
       - name: manager
-        image: gcr.io/kubeflow-images-public/notebook-controller:v1.1.0-g253890cb
+        image: apache/submarine:notebook-controller-v1.1.0-g253890cb
         command:
           - /manager
         imagePullPolicy: IfNotPresent
diff --git a/helm-charts/submarine/charts/pytorchjob/templates/deployment.yaml b/helm-charts/submarine/charts/pytorchjob/templates/deployment.yaml
index a63632d..8c46fe0 100644
--- a/helm-charts/submarine/charts/pytorchjob/templates/deployment.yaml
+++ b/helm-charts/submarine/charts/pytorchjob/templates/deployment.yaml
@@ -44,6 +44,6 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
-        image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
+        image: apache/submarine:pytorch-operator-v1.1.0-gd596e904
         name: pytorch-operator
       serviceAccountName: pytorch-operator
diff --git a/helm-charts/submarine/charts/tfjob/templates/deployment.yaml b/helm-charts/submarine/charts/tfjob/templates/deployment.yaml
index b9e26eb..880cb27 100644
--- a/helm-charts/submarine/charts/tfjob/templates/deployment.yaml
+++ b/helm-charts/submarine/charts/tfjob/templates/deployment.yaml
@@ -35,8 +35,7 @@ spec:
         name: tf-job-operator
     spec:
       containers:
-      - command:
-        - /opt/kubeflow/tf-operator.v1
+      - args:
         - --alsologtostderr
         - -v=1
         - --monitoring-port=8443
@@ -49,6 +48,6 @@ spec:
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
-        image: gcr.io/kubeflow-images-public/tf_operator:kubeflow-tf-operator-postsubmit-v1-5adee6f-6109-a25c
+        image: apache/submarine:tf_operator-v1.1.0-g92389064
         name: tf-job-operator
       serviceAccountName: tf-job-operator
diff --git a/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb b/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb
index 79aafee..0b1fb5a 100644
--- a/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb
+++ b/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb
@@ -67,7 +67,7 @@
    },
    "outputs": [],
    "source": [
-    "environment = EnvironmentSpec(image='gcr.io/kubeflow-ci/tf-dist-mnist-test:1.0')\n",
+    "environment = EnvironmentSpec(image='apache/submarine:tf-dist-mnist-test-1.0')\n",
     "experiment_meta = ExperimentMeta(name='mnist-dist',\n",
     "                                 namespace='default',\n",
     "                                 framework='Tensorflow',\n",
@@ -105,7 +105,7 @@
    "outputs": [
     {
      "data": {
-      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Accepted',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': None,\n 'runningTime': None,\n 'finishedTime': None,\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /var/tf_dist_mnist/dist_mnist.py --train_steps=100',\n   'envVars': {'ENV1': 'ENV1' [...]
+      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Accepted',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': None,\n 'runningTime': None,\n 'finishedTime': None,\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /var/tf_dist_mnist/dist_mnist.py --train_steps=100',\n   'envVars': {'ENV1': 'ENV1' [...]
      },
      "execution_count": 4,
      "metadata": {},
@@ -135,7 +135,7 @@
    "outputs": [
     {
      "data": {
-      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Created',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': '2020-09-25T16:52:17.000+08:00',\n 'runningTime': None,\n 'finishedTime': None,\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /var/tf_dist_mnist/dist_mnist.py --train_steps=100',\n    [...]
+      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Created',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': '2020-09-25T16:52:17.000+08:00',\n 'runningTime': None,\n 'finishedTime': None,\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /var/tf_dist_mnist/dist_mnist.py --train_steps=100',\n    [...]
      },
      "execution_count": 5,
      "metadata": {},
@@ -166,7 +166,7 @@
    "outputs": [
     {
      "data": {
-      "text/plain": "[{'experimentId': 'experiment_1601021036429_0013',\n  'name': 'mnist-dist',\n  'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n  'status': 'Running',\n  'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n  'createdTime': '2020-09-25T16:52:17.000+08:00',\n  'runningTime': '2020-09-25T16:53:19.000+08:00',\n  'finishedTime': None,\n  'spec': {'meta': {'name': 'mnist-dist',\n    'namespace': 'default',\n    'framework': 'Tensorflow',\n    'cmd': 'python /var/tf_dist_mnist [...]
+      "text/plain": "[{'experimentId': 'experiment_1601021036429_0013',\n  'name': 'mnist-dist',\n  'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n  'status': 'Running',\n  'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n  'createdTime': '2020-09-25T16:52:17.000+08:00',\n  'runningTime': '2020-09-25T16:53:19.000+08:00',\n  'finishedTime': None,\n  'spec': {'meta': {'name': 'mnist-dist',\n    'namespace': 'default',\n    'framework': 'Tensorflow',\n    'cmd': 'python /var/tf_dist_mnist [...]
      },
      "execution_count": 8,
      "metadata": {},
@@ -392,7 +392,7 @@
    "outputs": [
     {
      "data": {
-      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Deleted',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': '2020-09-25T16:52:17.000+08:00',\n 'runningTime': '2020-09-25T16:53:19.000+08:00',\n 'finishedTime': '2020-09-25T16:53:54.000+08:00',\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /va [...]
+      "text/plain": "{'experimentId': 'experiment_1601021036429_0013',\n 'name': 'mnist-dist',\n 'uid': 'fdee35f9-7877-4f59-8b19-c83fe3635408',\n 'status': 'Deleted',\n 'acceptedTime': '2020-09-25T16:52:17.000+08:00',\n 'createdTime': '2020-09-25T16:52:17.000+08:00',\n 'runningTime': '2020-09-25T16:53:19.000+08:00',\n 'finishedTime': '2020-09-25T16:53:54.000+08:00',\n 'spec': {'meta': {'name': 'mnist-dist',\n   'namespace': 'default',\n   'framework': 'Tensorflow',\n   'cmd': 'python /va [...]
      },
      "execution_count": 11,
      "metadata": {},
@@ -432,4 +432,4 @@
  },
  "nbformat": 4,
  "nbformat_minor": 1
-}
\ No newline at end of file
+}
diff --git a/submarine-sdk/pysubmarine/tests/experiment/test_experiment_client.py b/submarine-sdk/pysubmarine/tests/experiment/test_experiment_client.py
index 0e7d37d..eee9410 100644
--- a/submarine-sdk/pysubmarine/tests/experiment/test_experiment_client.py
+++ b/submarine-sdk/pysubmarine/tests/experiment/test_experiment_client.py
@@ -27,7 +27,7 @@ from submarine.experiment.models.experiment_task_spec import ExperimentTaskSpec
 def test_experiment_e2e():
     submarine_client = submarine.ExperimentClient(host='http://localhost:8080')
     environment = EnvironmentSpec(
-        image='gcr.io/kubeflow-ci/tf-dist-mnist-test:1.0')
+        image='apache/submarine:tf-dist-mnist-test-1.0')
     experiment_meta = ExperimentMeta(
         name='mnist-dist',
         namespace='default',
diff --git a/submarine-server/server-core/src/test/resources/experimentTemplate/test_template_1.json b/submarine-server/server-core/src/test/resources/experimentTemplate/test_template_1.json
index c7e6d3c..43ab2e4 100644
--- a/submarine-server/server-core/src/test/resources/experimentTemplate/test_template_1.json
+++ b/submarine-server/server-core/src/test/resources/experimentTemplate/test_template_1.json
@@ -1,43 +1,43 @@
-{
-  "name": "tf-mnist-test_1",
-  "author": "test_author_1",
-  "description": "This is a test template to run tf-mnist\n",
-  "parameters": [
-    {
-      "name": "training.learning_rate",
-      "value": 0.1,
-      "required": true,
-      "description": " mnist learning_rate "
-    },
-    {
-      "name": "training.batch_size",
-      "value": 150,
-      "required": false,
-      "description": "This is batch size of training"
-    }
-  ],
-  "experimentSpec": {
-    "meta": {
-      "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate={{training.learning_rate}} --batch_size={{training.batch_size}}",
-      "name": "tf-mnist-template-test1",
-      "envVars": {
-        "ENV1": "ENV1"
-      },
-      "framework": "TensorFlow",
-      "namespace": "default"
-    },
-    "spec": {
-      "Ps": {
-        "replicas": 1,
-        "resources": "cpu=1,memory=1024M"
-      },
-      "Worker": {
-        "replicas": 1,
-        "resources": "cpu=1,memory=1024M"
-      }
-    },
-    "environment": {
-      "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
-    }
-  }
-}
+{
+  "name": "tf-mnist-test_1",
+  "author": "test_author_1",
+  "description": "This is a test template to run tf-mnist\n",
+  "parameters": [
+    {
+      "name": "training.learning_rate",
+      "value": 0.1,
+      "required": true,
+      "description": " mnist learning_rate "
+    },
+    {
+      "name": "training.batch_size",
+      "value": 150,
+      "required": false,
+      "description": "This is batch size of training"
+    }
+  ],
+  "experimentSpec": {
+    "meta": {
+      "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate={{training.learning_rate}} --batch_size={{training.batch_size}}",
+      "name": "tf-mnist-template-test1",
+      "envVars": {
+        "ENV1": "ENV1"
+      },
+      "framework": "TensorFlow",
+      "namespace": "default"
+    },
+    "spec": {
+      "Ps": {
+        "replicas": 1,
+        "resources": "cpu=1,memory=1024M"
+      },
+      "Worker": {
+        "replicas": 1,
+        "resources": "cpu=1,memory=1024M"
+      }
+    },
+    "environment": {
+      "image": "apache/submarine:tf-mnist-with-summaries-1.0"
+    }
+  }
+}
diff --git a/submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_mnist_req.json b/submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_mnist_req.json
index db6cbdc..2c806dd 100644
--- a/submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_mnist_req.json
+++ b/submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_mnist_req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
diff --git a/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java b/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
index ed8782a..8051ea6 100644
--- a/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
+++ b/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/experimentIT.java
@@ -70,7 +70,7 @@ public class experimentIT extends AbstractSubmarineIT {
     experimentPage.fillExperimentMeta(experimentName, "e2e des", "default",
             "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log" +
                     " --learning_rate=0.01 --batch_size=150",
-            "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0",
+            "apache/submarine:tf-mnist-with-summaries-1.0",
             "ENV_1", "ENV1");
     Assert.assertTrue(experimentPage.getGoButton().isEnabled());
     experimentPage.goButtonClick();
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.json b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.json
index bea28e1..2a80b49 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.json
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Worker": {
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.yaml b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.yaml
index 915eae1..6c26705 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.yaml
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.yaml
@@ -6,7 +6,7 @@ meta:
   envVars:
     ENV_1: "ENV1"
 environment:
-  image: "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  image: "apache/submarine:tf-mnist-with-summaries-1.0"
 spec:
   Worker:
     replicas: 1
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.json b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.json
index 02419b4..bc2cb5c 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.json
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-    "image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+    "image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.yaml b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.yaml
index 7ef6cb2..3174b70 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.yaml
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.yaml
@@ -6,7 +6,7 @@ meta:
   envVars:
     ENV_1: "ENV1"
 environment:
-  image: "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  image: "apache/submarine:tf-mnist-with-summaries-1.0"
 spec:
   Ps:
     replicas: 1
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-req.json b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-req.json
index 28ee4f8..c399e86 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-req.json
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-  	"image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0",
+  	"image": "apache/submarine:tf-mnist-with-summaries-1.0",
     "name": "my-submarine-env"
   },
   "spec": {
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-http-git-code-localizer-req.json b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-http-git-code-localizer-req.json
index 0ee5c6b..a47ed17 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-http-git-code-localizer-req.json
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-http-git-code-localizer-req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-  	"image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  	"image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
diff --git a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-ssh-git-code-localizer-req.json b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-ssh-git-code-localizer-req.json
index d7564b9..c759f88 100644
--- a/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-ssh-git-code-localizer-req.json
+++ b/submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-ssh-git-code-localizer-req.json
@@ -9,7 +9,7 @@
     }
   },
   "environment": {
-  	"image": "gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0"
+  	"image": "apache/submarine:tf-mnist-with-summaries-1.0"
   },
   "spec": {
     "Ps": {
diff --git a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
index 80440fa..ac322f7 100644
--- a/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
+++ b/submarine-workbench/workbench-web-ng/src/app/pages/workbench/experiment/experiment-customized-form/experiment-customized-form.component.ts
@@ -47,7 +47,7 @@ export class ExperimentCustomizedFormComponent implements OnInit, OnDestroy {
 
   // TODO: Fetch all images from submarine server
   imageIndex = 0;
-  defaultImage = 'gcr.io/kubeflow-ci/tf-mnist-with-summaries:1.0';
+  defaultImage = 'apache/submarine:tf-mnist-with-summaries-1.0';
   imageList = [this.defaultImage];
 
   // Constants


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org