From 64d7a0d261925b3522e5e714ecd69e3543549159 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:25:27 +0800 Subject: [PATCH 01/16] update conda --- dev-support/docker-images/jupyter/Dockerfile | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 5587b02bf..131048b52 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -75,16 +75,17 @@ RUN mv /tini /usr/local/bin/tini && chmod +x /usr/local/bin/tini # Install conda USER $NB_UID ARG PYTHON_VERSION=default -# update conda version to 4.11.0 -ENV MINICONDA_VERSION=4.11.0 \ - MINICONDA_MD5=7675bd23411179956bcc4692f16ef27d \ - CONDA_VERSION=4.11.0 +# update conda version to 23.10.0-1 +ENV MINICONDA_VERSION=23.10.0-1 \ + MINICONDA_SHA256=d0643508fa49105552c94a523529f4474f91730d3e0d1f168f1700c43ae67595 \ + CONDA_VERSION=23.10.0 WORKDIR /tmp -RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ - echo "${MINICONDA_MD5} *Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh" | md5sum -c - && \ - /bin/bash Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \ - rm Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ +# repo in https://repo.anaconda.com/miniconda/ +RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh && \ + echo "${MINICONDA_SHA256} *Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh" | sha256sum -c - && \ + /bin/bash Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \ + rm Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh && \ echo "conda ${CONDA_VERSION}" >> $CONDA_DIR/conda-meta/pinned && \ conda config --system --prepend channels conda-forge && \ conda config --system --set auto_update_conda false && \ @@ -110,8 +111,6 @@ RUN pip --no-cache-dir install pyqlib==0.8.6 # Install latest sumbarine python sdk and notebook RUN git clone --depth=1 https://github.com/apache/submarine && \ - # replace numpy==1.19.2 to numpy>=1.20.0 - sed -i "s/numpy==1.19.2/numpy>=1.20.0/" submarine/submarine-sdk/pysubmarine/setup.py && \ pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ From 36ed34d94619ed9e0355772f59d365fd63e7f65f Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:29:35 +0800 Subject: [PATCH 02/16] add test build workflow --- .github/workflows/test_docker_build.yml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/test_docker_build.yml diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml new file mode 100644 index 000000000..f51138143 --- /dev/null +++ b/.github/workflows/test_docker_build.yml @@ -0,0 +1,36 @@ +# 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 regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Test building submarine docker images + +# Trigger the workflow on master branch push +on: + push: + branches: [push, pull_request] + +jobs: + jupyter-images: + runs-on: ubuntu-latest + timeout-minutes: 240 + env: + SUBMARINE_VERSION: 0.9.0-SNAPSHOT + steps: + - uses: actions/checkout@v3 + with: + repository: apache/submarine + - name: Build submarine jupyter + run: ./dev-support/docker-images/jupyter/build.sh + - name: Build submarine jupyter gpu + run: ./dev-support/docker-images/jupyter-gpu/build.sh \ No newline at end of file From d398f736b837673ecd0fc17c8e1b9978849d292b Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:34:19 +0800 Subject: [PATCH 03/16] fix workflow config --- .github/workflows/test_docker_build.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index f51138143..b041007f1 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -16,9 +16,7 @@ name: Test building submarine docker images # Trigger the workflow on master branch push -on: - push: - branches: [push, pull_request] +on: [push, pull_request] jobs: jupyter-images: From f4b8d58f90af4da4341ae1ce81824d92b63cfb7b Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:39:25 +0800 Subject: [PATCH 04/16] update jupyter-gpu conda --- .../docker-images/jupyter-gpu/Dockerfile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/dev-support/docker-images/jupyter-gpu/Dockerfile b/dev-support/docker-images/jupyter-gpu/Dockerfile index e9004c019..bc0b720a5 100644 --- a/dev-support/docker-images/jupyter-gpu/Dockerfile +++ b/dev-support/docker-images/jupyter-gpu/Dockerfile @@ -75,16 +75,17 @@ RUN mv /tini /usr/local/bin/tini && chmod +x /usr/local/bin/tini # Install conda USER $NB_UID ARG PYTHON_VERSION=default -# update conda version to 4.11.0 -ENV MINICONDA_VERSION=4.11.0 \ - MINICONDA_MD5=7675bd23411179956bcc4692f16ef27d \ - CONDA_VERSION=4.11.0 +# update conda version to 23.10.0-1 +ENV MINICONDA_VERSION=23.10.0-1 \ + MINICONDA_SHA256=d0643508fa49105552c94a523529f4474f91730d3e0d1f168f1700c43ae67595 \ + CONDA_VERSION=23.10.0 WORKDIR /tmp -RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ - echo "${MINICONDA_MD5} *Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh" | md5sum -c - && \ - /bin/bash Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \ - rm Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ +# repo in https://repo.anaconda.com/miniconda/ +RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh && \ + echo "${MINICONDA_SHA256} *Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh" | sha256sum -c - && \ + /bin/bash Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \ + rm Miniconda3-py311_${MINICONDA_VERSION}-Linux-x86_64.sh && \ echo "conda ${CONDA_VERSION}" >> $CONDA_DIR/conda-meta/pinned && \ conda config --system --prepend channels conda-forge && \ conda config --system --set auto_update_conda false && \ From c2bd43bc3ad2477025b32fd605be9320b02e9760 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:48:46 +0800 Subject: [PATCH 05/16] change name --- .../workflows/{test_docker_build.yml => jupyter_images.yml} | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) rename .github/workflows/{test_docker_build.yml => jupyter_images.yml} (92%) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/jupyter_images.yml similarity index 92% rename from .github/workflows/test_docker_build.yml rename to .github/workflows/jupyter_images.yml index b041007f1..6e88a0f97 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/jupyter_images.yml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: Test building submarine docker images +name: Building jupyter images # Trigger the workflow on master branch push on: [push, pull_request] @@ -26,8 +26,6 @@ jobs: SUBMARINE_VERSION: 0.9.0-SNAPSHOT steps: - uses: actions/checkout@v3 - with: - repository: apache/submarine - name: Build submarine jupyter run: ./dev-support/docker-images/jupyter/build.sh - name: Build submarine jupyter gpu From 8ad46e3cebdd1dcc9ca12b7de5a4f306d48e88c0 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 21:53:33 +0800 Subject: [PATCH 06/16] update jupyter version --- .github/workflows/jupyter_images.yml | 2 -- dev-support/docker-images/jupyter/Dockerfile | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/jupyter_images.yml b/.github/workflows/jupyter_images.yml index 6e88a0f97..f8ec68761 100644 --- a/.github/workflows/jupyter_images.yml +++ b/.github/workflows/jupyter_images.yml @@ -22,8 +22,6 @@ jobs: jupyter-images: runs-on: ubuntu-latest timeout-minutes: 240 - env: - SUBMARINE_VERSION: 0.9.0-SNAPSHOT steps: - uses: actions/checkout@v3 - name: Build submarine jupyter diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 131048b52..39bde9eb8 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -96,8 +96,8 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND conda init bash && \ source ~/.bashrc && conda activate && \ # it is used for jupyter lab build - conda install --freeze-installed -c conda-forge nodejs==14.20.1 jupyterlab==3.5.2 jupyterlab-git==0.41.0 && \ - pip install cvxpy==1.2.2 && \ + conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 jupyterlab-git==0.44.0 && \ + conda install --freeze-installed -c conda-forge cvxpy && \ jupyter lab build && \ # remove node_modules rm -rf /home/$NB_USER/.cache/yarn && \ From c521e5396d05900c1281ca479b6254ce3f6262bf Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 22:07:11 +0800 Subject: [PATCH 07/16] update jupyterlab-git to 0.50.0rc0 --- dev-support/docker-images/jupyter/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 39bde9eb8..815331db7 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -96,7 +96,11 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND conda init bash && \ source ~/.bashrc && conda activate && \ # it is used for jupyter lab build - conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 jupyterlab-git==0.44.0 && \ + conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 && \ + # todo: jupyterlab 4.0 was not supported before jupyterlab-git 0.5.0, so we temporarily used 0.50.0rc0. + # More details can be found in the issue: + # https://github.com/jupyterlab/jupyterlab-git/issues/1245 + pip --no-cache-dir install --pre "jupyterlab-git==0.50.0rc0" && \ conda install --freeze-installed -c conda-forge cvxpy && \ jupyter lab build && \ # remove node_modules From f71605da1f4ab09b7dfa1c76421dd72a833c6f19 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 18 Nov 2023 22:23:24 +0800 Subject: [PATCH 08/16] remove pyqlib --- dev-support/docker-images/jupyter/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 815331db7..df3f3796a 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -111,7 +111,10 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # clear conda to remove index cache, lock files, unused cache packages, and tarballs in /opt/conda/pkgs conda clean -a -y -RUN pip --no-cache-dir install pyqlib==0.8.6 +### We removed the qlib dependency because the project currently does not have good support for python 3.9 and above. +### If you need this project, you can choose the py38 or py39 miniconda and rebuild the secondary image +# RUN pip --no-cache-dir install pyqlib==0.9.3 +# RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.9.3/examples/workflow_by_code.ipynb -P $HOME # Install latest sumbarine python sdk and notebook RUN git clone --depth=1 https://github.com/apache/submarine && \ @@ -120,9 +123,6 @@ RUN git clone --depth=1 https://github.com/apache/submarine && \ cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ rm submarine -rf -# Add qlib example in notebook -RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.8.6/examples/workflow_by_code.ipynb -P $HOME - ENV MLFLOW_S3_ENDPOINT_URL http://submarine-minio-service:9000 ENV AWS_ACCESS_KEY_ID submarine_minio ENV AWS_SECRET_ACCESS_KEY submarine_minio From 27fcf537ece1018cdb60b4b8fc7b084542807056 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sun, 19 Nov 2023 10:08:32 +0800 Subject: [PATCH 09/16] fix jupyter-gpu --- .../docker-images/jupyter-gpu/Dockerfile | 26 ++++++++++++------- dev-support/docker-images/jupyter/Dockerfile | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/dev-support/docker-images/jupyter-gpu/Dockerfile b/dev-support/docker-images/jupyter-gpu/Dockerfile index bc0b720a5..745573865 100644 --- a/dev-support/docker-images/jupyter-gpu/Dockerfile +++ b/dev-support/docker-images/jupyter-gpu/Dockerfile @@ -93,9 +93,15 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND conda config --system --set channel_priority flexible && \ if [ ! $PYTHON_VERSION = 'default' ]; then conda install --freeze-installed --yes python=$PYTHON_VERSION; fi && \ conda list python | grep '^python ' | tr -s ' ' | cut -d '.' -f 1,2 | sed 's/$/.*/' >> $CONDA_DIR/conda-meta/pinned && \ - # nodejs is used for jupyter lab build - conda install --freeze-installed -c conda-forge nodejs==14.20.1 jupyterlab==3.5.2 jupyterlab-git==0.41.0 && \ - pip install cvxpy==1.2.2 && \ + conda init bash && \ + source ~/.bashrc && conda activate && \ + # it is used for jupyter lab build + conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 && \ + # todo: jupyterlab 4.0 was not supported before jupyterlab-git 0.5.0, so we temporarily used 0.50.0rc0. + # More details can be found in the issue: + # https://github.com/jupyterlab/jupyterlab-git/issues/1245 + pip --no-cache-dir install --pre "jupyterlab-git==0.50.0rc0" && \ + conda install --freeze-installed -c conda-forge cvxpy && \ jupyter lab build && \ # remove node_modules rm -rf /home/$NB_USER/.cache/yarn && \ @@ -105,22 +111,22 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # clear conda to remove index cache, lock files, unused cache packages, and tarballs in /opt/conda/pkgs conda clean -a -y -# Install latest stable qlib -RUN pip --no-cache-dir install pyqlib==0.8.6 +### We removed the qlib dependency because the project currently does not have good support for python 3.9 and above. +### If you need this project, you can choose the py38 or py39 miniconda and rebuild the secondary image +# RUN pip --no-cache-dir install pyqlib==0.9.3 +# RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.9.3/examples/workflow_by_code.ipynb -P $HOME # Install latest sumbarine python sdk and notebook RUN git clone --depth=1 https://github.com/apache/submarine && \ - # replace numpy==1.19.2 to numpy>=1.20.0 - sed -i "s/numpy==1.19.2/numpy>=1.20.0/" submarine/submarine-sdk/pysubmarine/setup.py && \ pip --no-cache-dir install -e submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ rm submarine -rf -# Add qlib example in notebook -RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.8.6/examples/workflow_by_code.ipynb -P $HOME - +ENV MLFLOW_S3_ENDPOINT_URL http://submarine-minio-service:9000 +ENV AWS_ACCESS_KEY_ID submarine_minio +ENV AWS_SECRET_ACCESS_KEY submarine_minio EXPOSE $NB_PORT ENTRYPOINT ["tini", "-g", "--"] diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index df3f3796a..1ac3d88a7 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -119,6 +119,7 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # Install latest sumbarine python sdk and notebook RUN git clone --depth=1 https://github.com/apache/submarine && \ pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ + # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ rm submarine -rf From 820feb3d92072dad52ad347233f998286ea4cdfc Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sun, 19 Nov 2023 10:57:18 +0800 Subject: [PATCH 10/16] use git pysubmarine --- dev-support/docker-images/jupyter/Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 1ac3d88a7..db2c7cc8c 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -117,12 +117,11 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.9.3/examples/workflow_by_code.ipynb -P $HOME # Install latest sumbarine python sdk and notebook -RUN git clone --depth=1 https://github.com/apache/submarine && \ - pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ +COPY submarine/submarine-sdk/pysubmarine ./submarine/submarine-sdk/pysubmarine +RUN pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ - cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ - rm submarine -rf + cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && ENV MLFLOW_S3_ENDPOINT_URL http://submarine-minio-service:9000 ENV AWS_ACCESS_KEY_ID submarine_minio From 053570c219160fcffbb486f25289acf207d73b64 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sun, 19 Nov 2023 14:27:43 +0800 Subject: [PATCH 11/16] move to local submarine dic --- .dockerignore | 57 +++++++++++++++++++ .../docker-images/jupyter-gpu/Dockerfile | 12 ++-- .../docker-images/jupyter-gpu/build.sh | 2 +- dev-support/docker-images/jupyter/Dockerfile | 9 +-- dev-support/docker-images/jupyter/build.sh | 2 +- 5 files changed, 70 insertions(+), 12 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..f2207897c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,57 @@ +# submarine dic +LICENSE +LICENSE-binary +NOTICE +NOTICE-binary +README.md +bin/ +conf/ +dev-support/ +doap_Submarine.rdf +helm-charts/ +licenses-binary +pom.xml +pyproject.toml +submarine-all/ +submarine-client/ +submarine-cloud-v2/ +submarine-cloud-v3/ +submarine-commons/ +submarine-dist/ +submarine-experiment-prehandler/ +submarine-serve/ +submarine-server/ +submarine-test/ +submarine-workbench/ +submarine-workbench-v2/ +submarine.iml +target/ +venv/ +webapps/ +website/ +.git/ +.idea/ +.github/ + +# Allow files in pysubmarine +!submarine-sdk/pysubmarine/* +# Allow files in pysubmarine +!dev-support/docker-images/* + +# ignore python Distribution / packaging +.Python +**/env/ +**/build/ +**/develop-eggs/ +**/dist/ +**/downloads/ +**/eggs/ +**/lib/ +**/lib64/ +**/parts/ +**/sdist/ +**/var/ +**/.mypy_cache/ +**/*.egg-info/ +**/.installed.cfg +**/*.egg \ No newline at end of file diff --git a/dev-support/docker-images/jupyter-gpu/Dockerfile b/dev-support/docker-images/jupyter-gpu/Dockerfile index 745573865..cc011c594 100644 --- a/dev-support/docker-images/jupyter-gpu/Dockerfile +++ b/dev-support/docker-images/jupyter-gpu/Dockerfile @@ -116,20 +116,20 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # RUN pip --no-cache-dir install pyqlib==0.9.3 # RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.9.3/examples/workflow_by_code.ipynb -P $HOME -# Install latest sumbarine python sdk and notebook -RUN git clone --depth=1 https://github.com/apache/submarine && \ - pip --no-cache-dir install -e submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ +# Install sumbarine python sdk and notebook +RUN mkdir -p submarine/submarine-sdk/pysubmarine +COPY submarine-sdk/pysubmarine/* submarine/submarine-sdk/pysubmarine +RUN pip --no-cache-dir install -e submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ - cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && \ - rm submarine -rf + cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME ENV MLFLOW_S3_ENDPOINT_URL http://submarine-minio-service:9000 ENV AWS_ACCESS_KEY_ID submarine_minio ENV AWS_SECRET_ACCESS_KEY submarine_minio +COPY --chown=${NB_USER}:users dev-support/docker-images/jupyter/start-notebook.sh /usr/local/bin EXPOSE $NB_PORT ENTRYPOINT ["tini", "-g", "--"] CMD ["start-notebook.sh"] -COPY --chown=${NB_USER}:users start-notebook.sh /usr/local/bin WORKDIR ${HOME} diff --git a/dev-support/docker-images/jupyter-gpu/build.sh b/dev-support/docker-images/jupyter-gpu/build.sh index 1d735d24b..31fc92758 100755 --- a/dev-support/docker-images/jupyter-gpu/build.sh +++ b/dev-support/docker-images/jupyter-gpu/build.sh @@ -29,4 +29,4 @@ SUBMARINE_HOME=${CURRENT_PATH}/../../.. # build image echo "Start building the ${JUPYTER_IMAGE} docker image ..." cd ${CURRENT_PATH} -docker build -t ${JUPYTER_IMAGE} . +docker build -t ${JUPYTER_IMAGE} -f ${SUBMARINE_HOME}/dev-support/docker-images/jupyter-gpu/Dockerfile ${SUBMARINE_HOME}/ diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index db2c7cc8c..62e7b22ee 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -116,19 +116,20 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # RUN pip --no-cache-dir install pyqlib==0.9.3 # RUN wget https://raw.githubusercontent.com/microsoft/qlib/v0.9.3/examples/workflow_by_code.ipynb -P $HOME -# Install latest sumbarine python sdk and notebook -COPY submarine/submarine-sdk/pysubmarine ./submarine/submarine-sdk/pysubmarine +# Install sumbarine python sdk and notebook +RUN mkdir -p submarine/submarine-sdk/pysubmarine +COPY submarine-sdk/pysubmarine/* submarine/submarine-sdk/pysubmarine RUN pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ - cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME && + cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME ENV MLFLOW_S3_ENDPOINT_URL http://submarine-minio-service:9000 ENV AWS_ACCESS_KEY_ID submarine_minio ENV AWS_SECRET_ACCESS_KEY submarine_minio +COPY --chown=${NB_USER}:users dev-support/docker-images/jupyter/start-notebook.sh /usr/local/bin EXPOSE $NB_PORT ENTRYPOINT ["tini", "-g", "--"] CMD ["start-notebook.sh"] -COPY --chown=${NB_USER}:users start-notebook.sh /usr/local/bin WORKDIR ${HOME} diff --git a/dev-support/docker-images/jupyter/build.sh b/dev-support/docker-images/jupyter/build.sh index 0048903c2..12fe6f3e3 100755 --- a/dev-support/docker-images/jupyter/build.sh +++ b/dev-support/docker-images/jupyter/build.sh @@ -29,4 +29,4 @@ SUBMARINE_HOME=${CURRENT_PATH}/../../.. # build image echo "Start building the ${JUPYTER_IMAGE} docker image ..." cd ${CURRENT_PATH} -docker build -t ${JUPYTER_IMAGE} . +docker build -t ${JUPYTER_IMAGE} -f ${SUBMARINE_HOME}/dev-support/docker-images/jupyter/Dockerfile ${SUBMARINE_HOME}/ From 3b084bb17272a56004ffd04dec14f8802ec839a4 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sun, 19 Nov 2023 15:15:12 +0800 Subject: [PATCH 12/16] fix path error --- .dockerignore | 14 +++++++------- dev-support/docker-images/jupyter-gpu/Dockerfile | 2 +- .../docker-images/jupyter-gpu/start-notebook.sh | 2 +- dev-support/docker-images/jupyter/Dockerfile | 4 ++-- .../docker-images/jupyter/start-notebook.sh | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.dockerignore b/.dockerignore index f2207897c..e35b56592 100644 --- a/.dockerignore +++ b/.dockerignore @@ -26,20 +26,20 @@ submarine-workbench/ submarine-workbench-v2/ submarine.iml target/ -venv/ webapps/ website/ -.git/ -.idea/ -.github/ +**/.git/ +**/.idea/ +**/.github/ # Allow files in pysubmarine -!submarine-sdk/pysubmarine/* +!submarine-sdk/pysubmarine/** # Allow files in pysubmarine -!dev-support/docker-images/* +!dev-support/docker-images/** # ignore python Distribution / packaging .Python +**/venv/ **/env/ **/build/ **/develop-eggs/ @@ -54,4 +54,4 @@ website/ **/.mypy_cache/ **/*.egg-info/ **/.installed.cfg -**/*.egg \ No newline at end of file +**/*.egg diff --git a/dev-support/docker-images/jupyter-gpu/Dockerfile b/dev-support/docker-images/jupyter-gpu/Dockerfile index cc011c594..d3a3c5f84 100644 --- a/dev-support/docker-images/jupyter-gpu/Dockerfile +++ b/dev-support/docker-images/jupyter-gpu/Dockerfile @@ -118,7 +118,7 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # Install sumbarine python sdk and notebook RUN mkdir -p submarine/submarine-sdk/pysubmarine -COPY submarine-sdk/pysubmarine/* submarine/submarine-sdk/pysubmarine +COPY submarine-sdk/pysubmarine/ submarine/submarine-sdk/pysubmarine RUN pip --no-cache-dir install -e submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ diff --git a/dev-support/docker-images/jupyter-gpu/start-notebook.sh b/dev-support/docker-images/jupyter-gpu/start-notebook.sh index fce5e3398..881d4c8f1 100755 --- a/dev-support/docker-images/jupyter-gpu/start-notebook.sh +++ b/dev-support/docker-images/jupyter-gpu/start-notebook.sh @@ -43,4 +43,4 @@ if [[ -n "${NB_PREFIX}" ]]; then NOTEBOOK_ARGS="--NotebookApp.base_url=${NB_PREFIX} ${NOTEBOOK_ARGS}" fi -/bin/bash -c "jupyter notebook ${NOTEBOOK_ARGS}" +/bin/bash -c "jupyter lab ${NOTEBOOK_ARGS}" diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index 62e7b22ee..d7bd8e2eb 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -118,8 +118,8 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND # Install sumbarine python sdk and notebook RUN mkdir -p submarine/submarine-sdk/pysubmarine -COPY submarine-sdk/pysubmarine/* submarine/submarine-sdk/pysubmarine -RUN pip --no-cache-dir install submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ +COPY submarine-sdk/pysubmarine/ submarine/submarine-sdk/pysubmarine +RUN pip --no-cache-dir install -e submarine/submarine-sdk/pysubmarine[tf,pytorch] && \ # Add DeepFM example into notebook cp submarine/submarine-sdk/pysubmarine/example/submarine_experiment_sdk.ipynb $HOME && \ cp -r submarine/submarine-sdk/pysubmarine/example/{data,deepfm_example.ipynb,deepfm.json} $HOME diff --git a/dev-support/docker-images/jupyter/start-notebook.sh b/dev-support/docker-images/jupyter/start-notebook.sh index fce5e3398..881d4c8f1 100755 --- a/dev-support/docker-images/jupyter/start-notebook.sh +++ b/dev-support/docker-images/jupyter/start-notebook.sh @@ -43,4 +43,4 @@ if [[ -n "${NB_PREFIX}" ]]; then NOTEBOOK_ARGS="--NotebookApp.base_url=${NB_PREFIX} ${NOTEBOOK_ARGS}" fi -/bin/bash -c "jupyter notebook ${NOTEBOOK_ARGS}" +/bin/bash -c "jupyter lab ${NOTEBOOK_ARGS}" From 4f8c716fb051fc816f0ab89f5c4236c460e755aa Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sun, 19 Nov 2023 15:18:00 +0800 Subject: [PATCH 13/16] Add license --- .dockerignore | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index e35b56592..4aaaf7b8c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,19 @@ -# submarine dic +# 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 regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Exclude submarine folders LICENSE LICENSE-binary NOTICE @@ -37,7 +52,7 @@ website/ # Allow files in pysubmarine !dev-support/docker-images/** -# ignore python Distribution / packaging +# Ignore python Distribution / packaging .Python **/venv/ **/env/ From c1e491a546a296e8f6e77a555bcc181a5ed10039 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 25 Nov 2023 09:09:56 +0800 Subject: [PATCH 14/16] update jupyterlab-git to latest(0.5.0) --- dev-support/docker-images/jupyter-gpu/Dockerfile | 6 +----- dev-support/docker-images/jupyter/Dockerfile | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/dev-support/docker-images/jupyter-gpu/Dockerfile b/dev-support/docker-images/jupyter-gpu/Dockerfile index d3a3c5f84..e6816adda 100644 --- a/dev-support/docker-images/jupyter-gpu/Dockerfile +++ b/dev-support/docker-images/jupyter-gpu/Dockerfile @@ -96,11 +96,7 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND conda init bash && \ source ~/.bashrc && conda activate && \ # it is used for jupyter lab build - conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 && \ - # todo: jupyterlab 4.0 was not supported before jupyterlab-git 0.5.0, so we temporarily used 0.50.0rc0. - # More details can be found in the issue: - # https://github.com/jupyterlab/jupyterlab-git/issues/1245 - pip --no-cache-dir install --pre "jupyterlab-git==0.50.0rc0" && \ + conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 jupyterlab-git && \ conda install --freeze-installed -c conda-forge cvxpy && \ jupyter lab build && \ # remove node_modules diff --git a/dev-support/docker-images/jupyter/Dockerfile b/dev-support/docker-images/jupyter/Dockerfile index d7bd8e2eb..159c6adfd 100644 --- a/dev-support/docker-images/jupyter/Dockerfile +++ b/dev-support/docker-images/jupyter/Dockerfile @@ -96,11 +96,7 @@ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py311_${MINICOND conda init bash && \ source ~/.bashrc && conda activate && \ # it is used for jupyter lab build - conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 && \ - # todo: jupyterlab 4.0 was not supported before jupyterlab-git 0.5.0, so we temporarily used 0.50.0rc0. - # More details can be found in the issue: - # https://github.com/jupyterlab/jupyterlab-git/issues/1245 - pip --no-cache-dir install --pre "jupyterlab-git==0.50.0rc0" && \ + conda install --freeze-installed -c conda-forge nodejs jupyterlab==4.0.8 jupyterlab-git && \ conda install --freeze-installed -c conda-forge cvxpy && \ jupyter lab build && \ # remove node_modules From 98ac7305733c1053620b02e226ff12bd634d01b4 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 25 Nov 2023 10:29:36 +0800 Subject: [PATCH 15/16] change container command version --- .../submarine/commons/utils/SubmarineConfVars.java | 4 ++-- .../submitter/k8s/ExperimentSpecParserTest.java | 13 +++++++++---- .../client/notebook/notebook-read-api.json | 2 +- .../submarine/rest/ExperimentRestApiTest.java | 9 +++++++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/submarine-commons/commons-utils/src/main/java/org/apache/submarine/commons/utils/SubmarineConfVars.java b/submarine-commons/commons-utils/src/main/java/org/apache/submarine/commons/utils/SubmarineConfVars.java index 52a35ebad..f778bf5bd 100644 --- a/submarine-commons/commons-utils/src/main/java/org/apache/submarine/commons/utils/SubmarineConfVars.java +++ b/submarine-commons/commons-utils/src/main/java/org/apache/submarine/commons/utils/SubmarineConfVars.java @@ -83,8 +83,8 @@ public enum ConfVars { "org.apache.submarine.server.submitter.yarn.YarnRuntimeFactory"), SUBMARINE_SUBMITTER("submarine.submitter", "k8s"), SUBMARINE_SERVER_SERVICE_NAME("submarine.server.service.name", "submarine-server"), - ENVIRONMENT_CONDA_MIN_VERSION("environment.conda.min.version", "4.0.1"), - ENVIRONMENT_CONDA_MAX_VERSION("environment.conda.max.version", "4.11.10"), + ENVIRONMENT_CONDA_MIN_VERSION("environment.conda.min.version", "23.1.0"), + ENVIRONMENT_CONDA_MAX_VERSION("environment.conda.max.version", "23.12.10"), /* cookie setting */ SUBMARINE_COOKIE_HTTP_ONLY("submarine.cookie.http.only", false), diff --git a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java index 34ffd356b..8694d2335 100644 --- a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java +++ b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java @@ -63,6 +63,9 @@ import io.kubernetes.client.openapi.models.V1EmptyDirVolumeSource; import io.kubernetes.client.openapi.models.V1EnvVar; +import static org.apache.submarine.commons.utils.SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MAX_VERSION; +import static org.apache.submarine.commons.utils.SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MIN_VERSION; + public class ExperimentSpecParserTest extends SpecBuilder { @@ -359,11 +362,11 @@ public void testValidPyTorchJobSpecWithEnv() String minVersion = "minVersion=\"" + conf.getString( - SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MIN_VERSION) + ENVIRONMENT_CONDA_MIN_VERSION) + "\";"; String maxVersion = "maxVersion=\"" + conf.getString( - SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MAX_VERSION) + ENVIRONMENT_CONDA_MAX_VERSION) + "\";"; String currentVersion = "currentVersion=$(conda -V | cut -f2 -d' ');"; Assert.assertEquals( @@ -371,8 +374,10 @@ public void testValidPyTorchJobSpecWithEnv() + "if [ \"$(printf '%s\\n' \"$minVersion\" \"$maxVersion\" " + "\"$currentVersion\" | sort -V | head -n2 | tail -1 )\" " + "!= \"$currentVersion\" ]; then echo \"Conda version " + - "should be between minVersion=\"4.0.1\"; " + - "and maxVersion=\"4.11.10\";\"; exit 1; else echo " + "should be between minVersion=\"" + + ENVIRONMENT_CONDA_MIN_VERSION.getStringValue() + "\"; " + + "and maxVersion=\"" + ENVIRONMENT_CONDA_MAX_VERSION.getStringValue() + + "\";\"; exit 1; else echo " + "\"Conda current version is " + currentVersion + ". " + "Moving forward with env creation and activation.\"; " + "fi && " + diff --git a/submarine-server/server-submitter/submitter-k8s/src/test/resources/client/notebook/notebook-read-api.json b/submarine-server/server-submitter/submitter-k8s/src/test/resources/client/notebook/notebook-read-api.json index db6619409..7757b703e 100644 --- a/submarine-server/server-submitter/submitter-k8s/src/test/resources/client/notebook/notebook-read-api.json +++ b/submarine-server/server-submitter/submitter-k8s/src/test/resources/client/notebook/notebook-read-api.json @@ -27,7 +27,7 @@ }, { "name": "INSTALL_ENVIRONMENT_COMMAND", - "value": "minVersion=\"4.0.1\";maxVersion=\"4.11.10\";currentVersion=$(conda -V | cut -f2 -d' ');if [ \"$(printf '%s\\n' \"$minVersion\" \"$maxVersion\" \"$currentVersion\" | sort -V | head -n2 | tail -1 )\" != \"$currentVersion\" ]; then echo \"Conda version should be between minVersion=\"4.0.1\"; and maxVersion=\"4.11.10\";\"; exit 1; else echo \"Conda current version is currentVersion=$(conda -V | cut -f2 -d' ');. Moving forward with env creation and activation.\"; fi" + "value": "minVersion=\"23.1.0\";maxVersion=\"23.12.10\";currentVersion=$(conda -V | cut -f2 -d' ');if [ \"$(printf '%s\\n' \"$minVersion\" \"$maxVersion\" \"$currentVersion\" | sort -V | head -n2 | tail -1 )\" != \"$currentVersion\" ]; then echo \"Conda version should be between minVersion=\"23.1.0\"; and maxVersion=\"23.12.10\";\"; exit 1; else echo \"Conda current version is currentVersion=$(conda -V | cut -f2 -d' ');. Moving forward with env creation and activation.\"; fi" } ], "image": "syharbor.sypesco.com:5000/apache/submarine:jupyter-notebook-0.7.0-syzh", diff --git a/submarine-test/test-k8s/src/test/java/org/apache/submarine/rest/ExperimentRestApiTest.java b/submarine-test/test-k8s/src/test/java/org/apache/submarine/rest/ExperimentRestApiTest.java index 1c07604da..0846a65b8 100644 --- a/submarine-test/test-k8s/src/test/java/org/apache/submarine/rest/ExperimentRestApiTest.java +++ b/submarine-test/test-k8s/src/test/java/org/apache/submarine/rest/ExperimentRestApiTest.java @@ -65,6 +65,9 @@ import io.kubernetes.client.util.ClientBuilder; import io.kubernetes.client.util.KubeConfig; +import static org.apache.submarine.commons.utils.SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MAX_VERSION; +import static org.apache.submarine.commons.utils.SubmarineConfVars.ConfVars.ENVIRONMENT_CONDA_MIN_VERSION; + @SuppressWarnings("rawtypes") public class ExperimentRestApiTest extends AbstractSubmarineServerTest { private static final Logger LOG = LoggerFactory.getLogger(ExperimentRestApiTest.class); @@ -343,8 +346,10 @@ private void assertK8sResultEquals(Environment env, Experiment experiment) throw + "if [ \"$(printf '%s\\n' \"$minVersion\" \"$maxVersion\" " + "\"$currentVersion\" | sort -V | head -n2 | tail -1 )\" " + "!= \"$currentVersion\" ]; then echo \"Conda version " + - "should be between minVersion=\"4.0.1\"; " + - "and maxVersion=\"4.11.10\";\"; exit 1; else echo " + "should be between minVersion=\"" + + ENVIRONMENT_CONDA_MIN_VERSION.getStringValue() + "\"; " + + "and maxVersion=\"" + ENVIRONMENT_CONDA_MAX_VERSION.getStringValue() + + "\";\"; exit 1; else echo " + "\"Conda current version is " + currentVersion + ". " + "Moving forward with env creation and activation.\"; " + "fi && "; From d38925d292f5fe9715801417497a6d66169d3623 Mon Sep 17 00:00:00 2001 From: cdmikechen Date: Sat, 25 Nov 2023 11:49:55 +0800 Subject: [PATCH 16/16] remove import --- .../submarine/server/submitter/k8s/ExperimentSpecParserTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java index 8694d2335..73f1d0748 100644 --- a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java +++ b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/ExperimentSpecParserTest.java @@ -33,7 +33,6 @@ import io.kubernetes.client.openapi.models.V1ObjectMeta; import io.kubernetes.client.openapi.models.V1Volume; -import org.apache.submarine.commons.utils.SubmarineConfVars; import org.apache.submarine.commons.utils.SubmarineConfiguration; import org.apache.submarine.server.api.exception.InvalidSpecException; import org.apache.submarine.server.api.spec.ExperimentMeta;