├── .asf.yaml ├── .dockerignore ├── .editorconfig ├── .flake8 ├── .github ├── PULL_REQUEST_TEMPLATE ├── config │ └── kind-config-kind.yaml ├── scripts │ ├── build-image-experiment-prehandler.sh │ ├── build-image-locally-v3.sh │ ├── build-image-locally.sh │ ├── free-disk-space.sh │ └── start-submarine.sh └── workflows │ ├── deploy_docker_images.yml │ ├── deploy_website.yml │ ├── jupyter_images.yml │ ├── master.yml │ └── python.yml ├── .gitignore ├── LICENSE ├── LICENSE-binary ├── NOTICE ├── NOTICE-binary ├── README.md ├── bin ├── agent.sh ├── common.sh ├── experiment-prehandler.sh ├── submarine-daemon.sh └── submarine.sh ├── conf ├── log4j.properties ├── log4j.properties.template ├── submarine-env.sh.template ├── submarine-site.xml └── submarine-site.xml.template ├── dev-support ├── cicd │ ├── Dockerfile │ ├── HowToRelease.md │ ├── README.md │ ├── build.sh │ ├── build_and_start_cicd_image.sh │ ├── common_release.sh │ ├── coverage.sh │ ├── create_release.sh │ ├── entry.sh │ ├── merge_submarine_pr.py │ └── publish_release.sh ├── database │ ├── README.md │ ├── init-database.py │ ├── init-database.sh │ ├── metastore.sql │ ├── mlflow.sql │ ├── submarine-data.sql │ ├── submarine-model.sql │ └── submarine.sql ├── docker-images │ ├── agent │ │ ├── Dockerfile │ │ └── build.sh │ ├── database │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── startup.sh │ ├── experiment-prehandler │ │ ├── Dockerfile │ │ └── build.sh │ ├── jupyter-gpu │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── start-notebook.sh │ ├── jupyter │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── start-notebook.sh │ ├── mlflow │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── start.sh │ ├── operator-v3 │ │ ├── Dockerfile │ │ └── build.sh │ ├── operator │ │ ├── Dockerfile │ │ └── build.sh │ ├── serve │ │ ├── Dockerfile │ │ └── build.sh │ └── submarine │ │ ├── Dockerfile │ │ └── build.sh ├── examples │ ├── mnist-pytorch │ │ └── DDP │ │ │ ├── Dockerfile │ │ │ ├── build.sh │ │ │ ├── mnist_distributed.py │ │ │ ├── post.sh │ │ │ └── readme.md │ ├── mnist-tensorflow │ │ ├── MirroredStrategy │ │ │ ├── Dockerfile │ │ │ ├── build.sh │ │ │ ├── mnist_keras_distributed.py │ │ │ ├── post.sh │ │ │ └── readme.md │ │ ├── MultiWorkerMirroredStrategy │ │ │ ├── Dockerfile │ │ │ ├── build.sh │ │ │ ├── mnist_keras_distributed.py │ │ │ ├── post.sh │ │ │ └── readme.md │ │ └── ParameterServerStrategy │ │ │ ├── Dockerfile │ │ │ ├── build.sh │ │ │ ├── mnist_keras_distributed.py │ │ │ ├── post.sh │ │ │ └── readme.md │ ├── nn-pytorch │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── model.py │ │ ├── post.sh │ │ └── readme.md │ ├── quickstart │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── post.sh │ │ ├── serve_predictions.py │ │ └── train.py │ └── tracking │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── post.sh │ │ ├── readme.md │ │ └── tracking.py ├── k8s │ ├── deploy-kubeflow-operators.sh │ ├── notebook-controller │ │ ├── cluster-role-binding.yaml │ │ ├── cluster-role.yaml │ │ ├── crd.yaml │ │ ├── deployment.yaml │ │ ├── deployment_patch.yaml │ │ ├── kustomization.yaml │ │ ├── service-account.yaml │ │ └── service.yaml │ ├── pytorchjob │ │ ├── crd.yaml │ │ ├── deploy-pytorch-operator.sh │ │ ├── deployment.yaml │ │ ├── deployment_v1.16plus.yaml │ │ ├── namespace.yaml │ │ ├── podgroup.yaml │ │ ├── rbac.yaml │ │ └── service.yaml │ ├── tfjob │ │ ├── crd.yaml │ │ └── operator │ │ │ ├── cluster-role-binding.yaml │ │ │ ├── cluster-role.yaml │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── service-account.yaml │ │ │ └── service.yaml │ └── traefik │ │ ├── cluster-role-binding.yaml │ │ ├── cluster-role.yaml │ │ ├── crd.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── service-account.yaml │ │ └── service.yaml ├── kind-config.yaml ├── maven-config │ ├── checkstyle.xml │ └── scalastyle-config.xml ├── mini-submarine │ ├── Dockerfile │ ├── README.md │ ├── build_mini-submarine.sh │ ├── conf │ │ ├── bootstrap.sh │ │ ├── capacity-scheduler.xml │ │ ├── container-executor.cfg │ │ ├── core-site.xml │ │ ├── exclude-nodes.txt │ │ ├── excludeNodes.txt │ │ ├── hdfs-site.xml │ │ ├── include-nodes.txt │ │ ├── mapred-site.xml │ │ ├── node-resources.xml │ │ ├── resource-types.xml │ │ ├── setup-mysql.sh │ │ ├── slaves │ │ ├── start-yarn-nm.sh │ │ ├── start-yarn-rm.sh │ │ ├── stop-yarn-nm.sh │ │ ├── stop-yarn-rm.sh │ │ ├── submarine-env.sh │ │ ├── submarine-site.xml │ │ ├── tony.xml │ │ ├── yarn-ds-docker.sh │ │ └── yarn-site.xml │ ├── spark-defaults-dynamic-allocation.conf │ ├── spark-script │ │ ├── pyspark-yarn.py │ │ ├── run_gpu_ds.sh │ │ ├── run_pyspark.sh │ │ ├── run_pyspark_docker.sh │ │ ├── run_spark.sh │ │ └── run_spark_docker.sh │ └── submarine │ │ ├── build_python_virtual_env.sh │ │ ├── image_classification.py │ │ ├── mnist_distributed.py │ │ ├── mnist_distributed_tf2.py │ │ ├── pytorch_mnist_distributed.py │ │ ├── run_customized_submarine-all_mnist.sh │ │ ├── run_submarine_mnist_tf2_tony.sh │ │ ├── run_submarine_mnist_tony.sh │ │ ├── run_submarine_mnist_tony_rpc.sh │ │ ├── run_submarine_mxnet_cifar10_tony.sh │ │ └── run_submarine_pytorch_mnist_tony.sh ├── misc │ └── flask │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── readme.md │ │ └── server.py ├── nfs-server │ └── nfs-server.yaml ├── proto │ ├── README.md │ ├── gen-proto.sh │ └── license-header.txt ├── pysubmarine │ ├── Dockerfile │ ├── bootstrap.sh │ ├── gen-sdk.sh │ ├── gen-ts-sdk.sh │ ├── install-conda.sh │ ├── license-header.ts.txt │ ├── license-header.txt │ ├── openapi.json │ ├── run-pysubmarine-ci.sh │ └── swagger_config.json ├── style-check │ ├── lint-angular.sh │ ├── lint-go.sh │ ├── lint-java.sh │ ├── lint-scala.sh │ └── python │ │ ├── auto-format.sh │ │ ├── lint-requirements.txt │ │ ├── lint.sh │ │ └── mypy-requirements.txt └── submarine-installer │ ├── LICENSE.txt │ ├── README-CN.md │ ├── README.md │ ├── assets │ └── submarine-installer.gif │ ├── install.conf │ ├── install.sh │ ├── package │ ├── calico │ │ ├── calico-node.service │ │ └── calicoctl.cfg │ ├── docker │ │ ├── daemon.json │ │ └── docker.service │ ├── etcd │ │ └── etcd.service │ ├── hadoop │ │ └── yarn │ │ │ ├── etc │ │ │ ├── etc_insecure │ │ │ └── hadoop │ │ │ │ ├── capacity-scheduler.xml │ │ │ │ ├── container-executor.cfg │ │ │ │ ├── core-site.xml │ │ │ │ ├── gpu │ │ │ │ └── yarn-site-gpu.xml │ │ │ │ ├── hadoop-env.sh │ │ │ │ ├── hdfs-site.xml │ │ │ │ ├── mapred-env.sh │ │ │ │ ├── mapred-site.xml │ │ │ │ ├── resource-types.xml │ │ │ │ ├── yarn-env.sh │ │ │ │ └── yarn-site.xml │ │ │ ├── etc_secure │ │ │ └── hadoop │ │ │ │ ├── capacity-scheduler.xml │ │ │ │ ├── container-executor.cfg │ │ │ │ ├── core-site.xml │ │ │ │ ├── gpu │ │ │ │ └── yarn-site-gpu.xml │ │ │ │ ├── hadoop-env.sh │ │ │ │ ├── hdfs-site.xml │ │ │ │ ├── mapred-env.sh │ │ │ │ ├── mapred-site.xml │ │ │ │ ├── resource-types.xml │ │ │ │ ├── yarn-env.sh │ │ │ │ └── yarn-site.xml │ │ │ ├── lib │ │ │ └── native │ │ │ │ ├── libgplcompression.a │ │ │ │ ├── libgplcompression.la │ │ │ │ ├── libgplcompression.so │ │ │ │ ├── libgplcompression.so.0 │ │ │ │ └── libgplcompression.so.0.0.0 │ │ │ └── sbin │ │ │ ├── start-historyserver.sh │ │ │ ├── start-mr-jobhistory.sh │ │ │ ├── start-nodemanager.sh │ │ │ ├── start-registrydns.sh │ │ │ ├── start-resourcemanager.sh │ │ │ ├── start-timelinereader.sh │ │ │ ├── start-timelineserver.sh │ │ │ ├── stop-historyserver.sh │ │ │ ├── stop-mr-jobhistory.sh │ │ │ ├── stop-nodemanager.sh │ │ │ ├── stop-registrydns.sh │ │ │ ├── stop-resourcemanager.sh │ │ │ ├── stop-timelinereader.sh │ │ │ └── stop-timelineserver.sh │ └── submarine │ │ └── submarine.sh │ └── scripts │ ├── calico.sh │ ├── combine-docker-daemons.py │ ├── docker.sh │ ├── download-server.sh │ ├── environment.sh │ ├── etcd.sh │ ├── menu.sh │ ├── nvidia-docker.sh │ ├── nvidia.sh │ ├── submarine.sh │ ├── utils.sh │ ├── xmlcombine.py │ ├── yarn.sh │ └── yarn_insecure.sh ├── doap_Submarine.rdf ├── helm-charts └── submarine │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── charts │ ├── notebook-controller │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── crds │ │ │ └── crd.yaml │ │ ├── templates │ │ │ ├── cluster-role-binding.yaml │ │ │ ├── cluster-role.yaml │ │ │ ├── deployment.yaml │ │ │ ├── service-account.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ └── training-operator │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── crds │ │ ├── mpijobs.yaml │ │ ├── mxjobs.yaml │ │ ├── paddlejobs.yaml │ │ ├── pytorchjobs.yaml │ │ ├── tfjobs.yaml │ │ └── xgboostjobs.yaml │ │ ├── templates │ │ ├── cluster-role-binding.yaml │ │ ├── cluster-role.yaml │ │ ├── deployment.yaml │ │ ├── service-account.yaml │ │ └── service.yaml │ │ └── values.yaml │ ├── crds │ └── crd.yaml │ ├── kind-values.yaml │ ├── templates │ ├── _helpers.tpl │ ├── istio-gateway.yaml │ ├── psp.yaml │ ├── pv.yaml │ ├── rbac-kubeflow.yaml │ ├── rbac.yaml │ ├── seldon-gateway.yaml │ ├── storageclass.yaml │ └── submarine-operator.yaml │ └── values.yaml ├── licenses-binary ├── LICENSE-asm.txt ├── LICENSE-hamcrest.txt ├── LICENSE-jgit.txt ├── LICENSE-pagehelper.txt ├── LICENSE-paranamer.txt ├── LICENSE-protobuf.txt ├── LICENSE-slf4j.txt └── LICENSE-tony.txt ├── pom.xml ├── pyproject.toml ├── submarine-all └── pom.xml ├── submarine-client ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── apache │ │ └── submarine │ │ └── client │ │ └── cli │ │ ├── CliConstants.java │ │ ├── Command.java │ │ └── param │ │ ├── ConfigType.java │ │ └── yaml │ │ ├── Configs.java │ │ ├── PsRole.java │ │ ├── Role.java │ │ ├── Roles.java │ │ ├── Scheduling.java │ │ ├── Security.java │ │ ├── Spec.java │ │ ├── TensorBoard.java │ │ ├── WorkerRole.java │ │ ├── YamlConfigFile.java │ │ └── YamlParseException.java │ └── test │ └── resources │ ├── core-site.xml │ ├── hdfs-site.xml │ ├── resource-types.xml │ ├── runjob-common-yaml │ ├── empty-framework.yaml │ ├── invalid-framework.yaml │ ├── missing-configs.yaml │ ├── missing-framework.yaml │ ├── some-sections-missing.yaml │ ├── test-false-values.yaml │ ├── wrong-indentation.yaml │ └── wrong-property-name.yaml │ ├── runjob-mxnet-yaml │ ├── envs-are-missing.yaml │ ├── invalid-config-tensorboard-section.yaml │ ├── security-principal-is-missing.yaml │ ├── valid-config-with-overrides.yaml │ ├── valid-config.yaml │ └── valid-gpu-config.yaml │ ├── runjob-pytorch-yaml │ ├── envs-are-missing.yaml │ ├── invalid-config-ps-section.yaml │ ├── invalid-config-scheduler-section.yaml │ ├── invalid-config-tensorboard-section.yaml │ ├── security-principal-is-missing.yaml │ ├── valid-config-with-overrides.yaml │ ├── valid-config.yaml │ └── valid-gpu-config.yaml │ └── runjob-tensorflow-yaml │ ├── envs-are-missing.yaml │ ├── invalid-config-scheduler-section.yaml │ ├── security-principal-is-missing.yaml │ ├── tensorboard-dockerimage-is-missing.yaml │ ├── valid-config-with-overrides.yaml │ ├── valid-config.yaml │ └── valid-gpu-config.yaml ├── submarine-cloud-v2 ├── Makefile ├── README.md ├── artifacts │ ├── examples │ │ └── example-submarine.yaml │ └── submarine │ │ ├── submarine-database.yaml │ │ ├── submarine-grafana.yaml │ │ ├── submarine-ingress.yaml │ │ ├── submarine-minio.yaml │ │ ├── submarine-mlflow.yaml │ │ ├── submarine-observer-rbac.yaml │ │ ├── submarine-rbac.yaml │ │ ├── submarine-server.yaml │ │ ├── submarine-storage-rbac.yaml │ │ └── submarine-tensorboard.yaml ├── docs │ └── developer-guide.md ├── go.mod ├── go.sum ├── hack │ ├── README.md │ ├── boilerplate.go.txt │ ├── build_image.sh │ ├── run_frontend_e2e.sh │ ├── server-rapid-builder.sh │ ├── tools.go │ ├── update-codegen.sh │ └── verify-codegen.sh ├── main.go ├── pkg │ ├── apis │ │ └── submarine │ │ │ └── v1alpha1 │ │ │ ├── doc.go │ │ │ ├── register.go │ │ │ ├── types.go │ │ │ └── zz_generated.deepcopy.go │ ├── client │ │ ├── clientset │ │ │ └── versioned │ │ │ │ ├── clientset.go │ │ │ │ ├── doc.go │ │ │ │ ├── fake │ │ │ │ ├── clientset_generated.go │ │ │ │ ├── doc.go │ │ │ │ └── register.go │ │ │ │ ├── scheme │ │ │ │ ├── doc.go │ │ │ │ └── register.go │ │ │ │ └── typed │ │ │ │ └── submarine │ │ │ │ └── v1alpha1 │ │ │ │ ├── doc.go │ │ │ │ ├── fake │ │ │ │ ├── doc.go │ │ │ │ ├── fake_submarine.go │ │ │ │ └── fake_submarine_client.go │ │ │ │ ├── generated_expansion.go │ │ │ │ ├── submarine.go │ │ │ │ └── submarine_client.go │ │ ├── informers │ │ │ └── externalversions │ │ │ │ ├── factory.go │ │ │ │ ├── generic.go │ │ │ │ ├── internalinterfaces │ │ │ │ └── factory_interfaces.go │ │ │ │ └── submarine │ │ │ │ ├── interface.go │ │ │ │ └── v1alpha1 │ │ │ │ ├── interface.go │ │ │ │ └── submarine.go │ │ └── listers │ │ │ └── submarine │ │ │ └── v1alpha1 │ │ │ ├── expansion_generated.go │ │ │ └── submarine.go │ ├── controller │ │ ├── controller.go │ │ ├── controller_builder.go │ │ ├── controller_builder_config.go │ │ ├── controller_event_handlers.go │ │ ├── doc.go │ │ ├── parser.go │ │ ├── submarine_database.go │ │ ├── submarine_grafana.go │ │ ├── submarine_ingress.go │ │ ├── submarine_minio.go │ │ ├── submarine_mlflow.go │ │ ├── submarine_observer_rbac.go │ │ ├── submarine_server.go │ │ ├── submarine_server_rbac.go │ │ ├── submarine_storage_rbac.go │ │ └── submarine_tensorboard.go │ └── signals │ │ ├── signal.go │ │ ├── signal_posix.go │ │ └── signal_windows.go └── test │ └── e2e │ ├── basic_test.go │ ├── framework │ ├── context.go │ ├── deployment.go │ ├── framework.go │ ├── helpers.go │ ├── namespace.go │ ├── operator.go │ └── submarine.go │ └── main_test.go ├── submarine-cloud-v3 ├── .dockerignore ├── .gitignore ├── Dockerfile ├── Makefile ├── PROJECT ├── README.md ├── api │ └── v1 │ │ ├── groupversion_info.go │ │ ├── submarine_types.go │ │ └── zz_generated.deepcopy.go ├── artifacts │ ├── submarine-agent.yaml │ ├── submarine-database.yaml │ ├── submarine-minio.yaml │ ├── submarine-mlflow.yaml │ ├── submarine-observer-rbac.yaml │ ├── submarine-serve.yaml │ ├── submarine-server-rbac.yaml │ ├── submarine-server.yaml │ ├── submarine-storage-rbac.yaml │ ├── submarine-tensorboard.yaml │ └── submarine-virtualservice.yaml ├── config │ ├── crd │ │ ├── bases │ │ │ └── submarine.apache.org_submarines.yaml │ │ ├── kustomization.yaml │ │ ├── kustomizeconfig.yaml │ │ └── patches │ │ │ ├── cainjection_in_submarines.yaml │ │ │ └── webhook_in_submarines.yaml │ ├── default │ │ ├── kustomization.yaml │ │ ├── manager_auth_proxy_patch.yaml │ │ ├── manager_config_patch.yaml │ │ └── patches │ │ │ ├── psp-clustertype-kubernetes-patch.yaml │ │ │ └── psp-clustertype-openshift-patch.yaml │ ├── manager │ │ ├── controller_manager_config.yaml │ │ ├── kustomization.yaml │ │ └── manager.yaml │ ├── manifests │ │ └── kustomization.yaml │ ├── prometheus │ │ ├── kustomization.yaml │ │ └── monitor.yaml │ ├── rbac │ │ ├── auth_proxy_client_clusterrole.yaml │ │ ├── auth_proxy_role.yaml │ │ ├── auth_proxy_role_binding.yaml │ │ ├── auth_proxy_service.yaml │ │ ├── kustomization.yaml │ │ ├── leader_election_role.yaml │ │ ├── leader_election_role_binding.yaml │ │ ├── role.yaml │ │ ├── role_binding.yaml │ │ ├── service_account.yaml │ │ ├── submarine_editor_role.yaml │ │ └── submarine_viewer_role.yaml │ ├── samples │ │ ├── _v1_submarine.yaml │ │ └── kustomization.yaml │ └── scorecard │ │ ├── bases │ │ └── config.yaml │ │ ├── kustomization.yaml │ │ └── patches │ │ ├── basic.config.yaml │ │ └── olm.config.yaml ├── controllers │ ├── submarine_agent.go │ ├── submarine_agent_test.go │ ├── submarine_controller.go │ ├── submarine_controller_test.go │ ├── submarine_database.go │ ├── submarine_database_test.go │ ├── submarine_minio.go │ ├── submarine_minio_test.go │ ├── submarine_mlflow.go │ ├── submarine_mlflow_test.go │ ├── submarine_observer_rbac.go │ ├── submarine_serve.go │ ├── submarine_serve_test.go │ ├── submarine_server.go │ ├── submarine_server_rbac.go │ ├── submarine_server_test.go │ ├── submarine_storage_rbac.go │ ├── submarine_tensorboard.go │ ├── submarine_tensorboard_test.go │ ├── submarine_virtualservice.go │ ├── suite_test.go │ └── util │ │ ├── parser.go │ │ └── util.go ├── docs │ └── developer-guide.md ├── go.mod ├── go.sum ├── hack │ ├── boilerplate.go.txt │ ├── boilerplate.yaml.txt │ └── verify-codegen.sh └── main.go ├── submarine-commons ├── commons-runtime │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── apache │ │ └── submarine │ │ └── commons │ │ └── runtime │ │ ├── Framework.java │ │ ├── api │ │ ├── JobComponentStatus.java │ │ ├── JobState.java │ │ ├── JobStatus.java │ │ ├── MXNetRole.java │ │ ├── PyTorchRole.java │ │ ├── Role.java │ │ ├── Runtime.java │ │ └── TensorFlowRole.java │ │ ├── conf │ │ ├── Envs.java │ │ └── SubmarineLogs.java │ │ ├── exception │ │ └── SubmarineException.java │ │ ├── fs │ │ ├── MemorySubmarineStorage.java │ │ ├── StorageKeyConstants.java │ │ └── SubmarineStorage.java │ │ └── resource │ │ └── UnitsConversionUtil.java ├── commons-utils │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── commons │ │ │ │ └── utils │ │ │ │ ├── AbstractUniqueIdGenerator.java │ │ │ │ ├── NetworkUtils.java │ │ │ │ ├── SubmarineConfVars.java │ │ │ │ ├── SubmarineConfiguration.java │ │ │ │ └── exception │ │ │ │ └── SubmarineRuntimeException.java │ │ └── resources │ │ │ └── submarine.properties │ │ └── test │ │ └── java │ │ └── org │ │ └── apache │ │ └── submarine │ │ └── commons │ │ └── utils │ │ └── TestVersionUtils.java └── pom.xml ├── submarine-dist ├── pom.xml └── src │ └── assembly │ ├── distribution.xml │ └── src-distribution.xml ├── submarine-experiment-prehandler ├── fs_prehandler │ ├── __init__.py │ ├── fs_prehandler.py │ └── hdfs_prehandler.py └── prehandler_main.py ├── submarine-sdk └── pysubmarine │ ├── README.md │ ├── example │ ├── data │ │ ├── te.libsvm │ │ ├── tr.libsvm │ │ └── va.libsvm │ ├── deepfm.json │ ├── deepfm_example.ipynb │ ├── pytorch │ │ ├── afm │ │ │ ├── afm.json │ │ │ ├── run_afm.py │ │ │ └── run_afm.sh │ │ └── deepfm │ │ │ ├── deepfm.json │ │ │ ├── run_deepfm.py │ │ │ └── run_deepfm.sh │ ├── submarine_experiment_sdk.ipynb │ ├── tensorflow │ │ ├── ccpm │ │ │ ├── ccpm.json │ │ │ ├── ccpm_distributed.json │ │ │ └── run_ccpm.py │ │ ├── deepfm │ │ │ ├── README.md │ │ │ ├── deepfm.json │ │ │ ├── deepfm_distributed.json │ │ │ └── run_deepfm.py │ │ └── fm │ │ │ ├── README.md │ │ │ ├── fm.json │ │ │ ├── fm_distributed.json │ │ │ └── run_fm.py │ └── tracking.py │ ├── github-actions │ ├── pypi-requirements.txt │ └── test-requirements.txt │ ├── pylintrc │ ├── pytest.ini │ ├── setup.py │ ├── submarine │ ├── __init__.py │ ├── artifacts │ │ ├── __init__.py │ │ └── repository.py │ ├── cli │ │ ├── __init__.py │ │ ├── config │ │ │ ├── __init__.py │ │ │ ├── cli_config.yaml │ │ │ ├── command.py │ │ │ └── config.py │ │ ├── environment │ │ │ ├── __init__.py │ │ │ └── command.py │ │ ├── experiment │ │ │ ├── __init__.py │ │ │ └── command.py │ │ ├── main.py │ │ ├── notebook │ │ │ ├── __init__.py │ │ │ └── command.py │ │ ├── sandbox │ │ │ ├── __init__.py │ │ │ └── command.py │ │ └── serve │ │ │ ├── __init__.py │ │ │ └── command.py │ ├── client │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── auth_api.py │ │ │ ├── environment_api.py │ │ │ ├── environment_client.py │ │ │ ├── experiment_api.py │ │ │ ├── experiment_client.py │ │ │ ├── experiment_template_api.py │ │ │ ├── experiment_templates_api.py │ │ │ ├── model_version_api.py │ │ │ ├── notebook_api.py │ │ │ ├── notebook_client.py │ │ │ ├── registered_model_api.py │ │ │ ├── serve_api.py │ │ │ └── serve_client.py │ │ ├── api_client.py │ │ ├── configuration.py │ │ ├── exceptions.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── code_spec.py │ │ │ ├── environment_spec.py │ │ │ ├── experiment_meta.py │ │ │ ├── experiment_spec.py │ │ │ ├── experiment_task_spec.py │ │ │ ├── experiment_template_param_spec.py │ │ │ ├── experiment_template_spec.py │ │ │ ├── experiment_template_submit.py │ │ │ ├── git_code_spec.py │ │ │ ├── json_response.py │ │ │ ├── kernel_spec.py │ │ │ ├── login_param.py │ │ │ ├── model_version_entity.py │ │ │ ├── notebook_meta.py │ │ │ ├── notebook_pod_spec.py │ │ │ ├── notebook_spec.py │ │ │ ├── registered_model_entity.py │ │ │ ├── serve_request.py │ │ │ └── serve_spec.py │ │ ├── rest.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ └── api_utils.py │ ├── entities │ │ ├── Metric.py │ │ ├── Param.py │ │ ├── __init__.py │ │ ├── _submarine_object.py │ │ ├── experiment.py │ │ └── model_registry │ │ │ ├── __init__.py │ │ │ ├── model_stages.py │ │ │ ├── model_version.py │ │ │ ├── model_version_tag.py │ │ │ ├── registered_model.py │ │ │ └── registered_model_tag.py │ ├── exceptions.py │ ├── ml │ │ ├── __init__.py │ │ ├── abstract_model.py │ │ ├── pytorch │ │ │ ├── __init__.py │ │ │ ├── input │ │ │ │ ├── __init__.py │ │ │ │ └── libsvm_dataset.py │ │ │ ├── layers │ │ │ │ ├── __init__.py │ │ │ │ └── core.py │ │ │ ├── loss.py │ │ │ ├── metric.py │ │ │ ├── model │ │ │ │ ├── __init__.py │ │ │ │ ├── base_pytorch_model.py │ │ │ │ └── ctr │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── afm.py │ │ │ │ │ └── deepfm.py │ │ │ ├── optimizer.py │ │ │ ├── parameters.py │ │ │ └── registries.py │ │ ├── tensorflow │ │ │ ├── __init__.py │ │ │ ├── input │ │ │ │ ├── __init__.py │ │ │ │ └── input.py │ │ │ ├── layers │ │ │ │ ├── __init__.py │ │ │ │ └── core.py │ │ │ ├── model │ │ │ │ ├── __init__.py │ │ │ │ ├── base_tf_model.py │ │ │ │ ├── ccpm.py │ │ │ │ ├── deepfm.py │ │ │ │ ├── fm.py │ │ │ │ └── nfm.py │ │ │ ├── optimizer.py │ │ │ ├── parameters.py │ │ │ └── registries.py │ │ └── tensorflow_v2 │ │ │ ├── __init__.py │ │ │ ├── input │ │ │ ├── __init__.py │ │ │ └── input.py │ │ │ ├── layers │ │ │ ├── __init__.py │ │ │ └── core.py │ │ │ ├── model │ │ │ ├── __init__.py │ │ │ ├── base_tf_model.py │ │ │ ├── ccpm.py │ │ │ ├── deepfm.py │ │ │ ├── fm.py │ │ │ └── nfm.py │ │ │ ├── optimizer.py │ │ │ ├── parameters.py │ │ │ └── registries.py │ ├── models │ │ ├── __init__.py │ │ ├── pytorch.py │ │ └── tensorflow.py │ ├── store │ │ ├── __init__.py │ │ ├── database │ │ │ ├── __init__.py │ │ │ ├── db_types.py │ │ │ └── models.py │ │ ├── model_registry │ │ │ ├── __init__.py │ │ │ ├── abstract_store.py │ │ │ └── sqlalchemy_store.py │ │ └── tracking │ │ │ ├── __init__.py │ │ │ ├── abstract_store.py │ │ │ └── sqlalchemy_store.py │ ├── tracking │ │ ├── __init__.py │ │ ├── client.py │ │ ├── constant.py │ │ ├── fluent.py │ │ └── utils.py │ └── utils │ │ ├── __init__.py │ │ ├── db_utils.py │ │ ├── env.py │ │ ├── fileio.py │ │ ├── pytorch_utils.py │ │ ├── rest_utils.py │ │ ├── tf_utils.py │ │ ├── tf_utils_v2.py │ │ └── validation.py │ └── tests │ ├── __init__.py │ ├── artifacts │ ├── __init__.py │ └── test_repository.py │ ├── cli │ ├── test_config.py │ ├── test_environment.py │ ├── test_experiment.py │ ├── test_notebook.py │ └── test_sandbox.py │ ├── entities │ ├── model_registry │ │ ├── test_model_version.py │ │ └── test_registered_model.py │ ├── test_metrics.py │ └── test_params.py │ ├── environment │ └── test_environment_client.py │ ├── experiment │ └── test_experiment_client.py │ ├── ml │ ├── __init__.py │ ├── pytorch │ │ ├── model │ │ │ ├── conftest.py │ │ │ ├── test_afm_pytorch.py │ │ │ └── test_deepfm_pytorch.py │ │ ├── test_loss_pytorch.py │ │ ├── test_metric_pytorch.py │ │ └── test_optimizer_pytorch.py │ ├── tensorflow │ │ ├── __init__.py │ │ ├── model │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_base_tf_model.py │ │ │ ├── test_ccpm.py │ │ │ ├── test_deepfm.py │ │ │ ├── test_fm.py │ │ │ └── test_nfm.py │ │ └── test_optimizer.py │ └── tensorflow_v2 │ │ ├── __init__.py │ │ ├── model │ │ ├── conftest.py │ │ ├── test_base_tf_model.py │ │ ├── test_ccpm.py │ │ ├── test_deepfm.py │ │ ├── test_fm.py │ │ └── test_nfm.py │ │ └── test_optimizer.py │ ├── notebook │ └── test_notebook_client.py │ ├── store │ ├── __init__.py │ ├── model_registry │ │ ├── __init__.py │ │ └── test_sqlalchemy_store.py │ └── tracking │ │ ├── __init__.py │ │ └── test_sqlalchemy_store.py │ ├── tracking │ ├── __init__.py │ ├── test_tracking.py │ ├── test_utils.py │ └── tf_model.py │ └── utils │ ├── test_db_utils.py │ ├── test_env.py │ ├── test_rest_utils.py │ ├── test_tf_utils.py │ ├── test_tf_utils_v2.py │ └── test_validation.py ├── submarine-serve ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── serve │ │ │ ├── istio │ │ │ ├── IstioHTTPDestination.java │ │ │ ├── IstioHTTPMatchRequest.java │ │ │ ├── IstioHTTPRoute.java │ │ │ ├── IstioVirtualService.java │ │ │ ├── IstioVirtualServiceList.java │ │ │ └── IstioVirtualServiceSpec.java │ │ │ ├── seldon │ │ │ ├── PredictorAnnotations.java │ │ │ ├── SeldonDeployment.java │ │ │ ├── SeldonDeploymentList.java │ │ │ ├── SeldonDeploymentSpec.java │ │ │ ├── SeldonGraph.java │ │ │ ├── SeldonPredictor.java │ │ │ ├── pytorch │ │ │ │ └── SeldonPytorchServing.java │ │ │ └── tensorflow │ │ │ │ └── SeldonTFServing.java │ │ │ └── utils │ │ │ ├── IstioConstants.java │ │ │ └── SeldonConstants.java │ └── resources │ │ └── log4j.properties │ └── test │ └── java │ └── org │ └── apache │ └── submarine │ └── serve │ ├── seldon │ └── SeldonDeploymentTest.java │ └── tensorflow │ └── SeldonTFServingTest.java ├── submarine-server ├── pom.xml ├── server-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── apache │ │ └── submarine │ │ └── server │ │ └── api │ │ ├── Submitter.java │ │ ├── common │ │ └── CustomResourceType.java │ │ ├── environment │ │ ├── Environment.java │ │ └── EnvironmentId.java │ │ ├── exception │ │ └── InvalidSpecException.java │ │ ├── experiment │ │ ├── Experiment.java │ │ ├── ExperimentId.java │ │ ├── ExperimentLog.java │ │ ├── Info.java │ │ ├── MlflowInfo.java │ │ ├── ServeRequest.java │ │ ├── ServeResponse.java │ │ └── TensorboardInfo.java │ │ ├── experimenttemplate │ │ ├── ExperimentTemplate.java │ │ ├── ExperimentTemplateId.java │ │ └── ExperimentTemplateSubmit.java │ │ ├── model │ │ ├── ServeResponse.java │ │ └── ServeSpec.java │ │ ├── notebook │ │ ├── Notebook.java │ │ └── NotebookId.java │ │ ├── proto │ │ ├── TritonModelConfig.java │ │ └── model_config.proto │ │ ├── spec │ │ ├── CodeSpec.java │ │ ├── EnvironmentSpec.java │ │ ├── ExperimentMeta.java │ │ ├── ExperimentSpec.java │ │ ├── ExperimentTaskSpec.java │ │ ├── ExperimentTemplateParamSpec.java │ │ ├── ExperimentTemplateSpec.java │ │ ├── KernelSpec.java │ │ ├── NotebookMeta.java │ │ ├── NotebookPodSpec.java │ │ ├── NotebookSpec.java │ │ └── code │ │ │ └── GitCodeSpec.java │ │ └── workbench │ │ ├── Action.java │ │ ├── LoginParam.java │ │ ├── Permission.java │ │ ├── Role.java │ │ ├── User.java │ │ └── UserInfo.java ├── server-core │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── server │ │ │ │ ├── Bootstrap.java │ │ │ │ ├── SubmarineServer.java │ │ │ │ ├── SubmitterManager.java │ │ │ │ ├── internal │ │ │ │ └── InternalServiceManager.java │ │ │ │ ├── manager │ │ │ │ ├── EnvironmentManager.java │ │ │ │ ├── ExperimentManager.java │ │ │ │ ├── ExperimentTemplateManager.java │ │ │ │ ├── ModelManager.java │ │ │ │ ├── ModelVersionManager.java │ │ │ │ ├── NotebookManager.java │ │ │ │ └── RegisteredModelManager.java │ │ │ │ ├── rest │ │ │ │ ├── EnvironmentRestApi.java │ │ │ │ ├── ExperimentRestApi.java │ │ │ │ ├── ExperimentTemplateRestApi.java │ │ │ │ ├── InternalServiceRestApi.java │ │ │ │ ├── ModelVersionRestApi.java │ │ │ │ ├── NotebookRestApi.java │ │ │ │ ├── RegisteredModelRestApi.java │ │ │ │ ├── RestConstants.java │ │ │ │ ├── ServeRestApi.java │ │ │ │ ├── provider │ │ │ │ │ └── YamlEntityProvider.java │ │ │ │ └── workbench │ │ │ │ │ ├── LoginRestApi.java │ │ │ │ │ ├── MetricRestApi.java │ │ │ │ │ ├── ParamRestApi.java │ │ │ │ │ ├── ProjectRestApi.java │ │ │ │ │ ├── SysDeptRestApi.java │ │ │ │ │ ├── SysDictItemRestApi.java │ │ │ │ │ ├── SysDictRestApi.java │ │ │ │ │ ├── SysUserRestApi.java │ │ │ │ │ ├── SystemRestApi.java │ │ │ │ │ ├── TeamRestApi.java │ │ │ │ │ └── annotation │ │ │ │ │ ├── NoneAuth.java │ │ │ │ │ └── SubmarineApi.java │ │ │ │ ├── s3 │ │ │ │ ├── Client.java │ │ │ │ └── S3Constants.java │ │ │ │ ├── security │ │ │ │ ├── SecurityFactory.java │ │ │ │ ├── SecurityProvider.java │ │ │ │ ├── common │ │ │ │ │ ├── AuthFlowType.java │ │ │ │ │ ├── CommonConfig.java │ │ │ │ │ ├── CommonFilter.java │ │ │ │ │ └── RegistryUserActionAdapter.java │ │ │ │ ├── oidc │ │ │ │ │ ├── OidcCallbackResource.java │ │ │ │ │ ├── OidcConfig.java │ │ │ │ │ ├── OidcFilter.java │ │ │ │ │ └── OidcSecurityProvider.java │ │ │ │ └── simple │ │ │ │ │ ├── SimpleFilter.java │ │ │ │ │ ├── SimpleLoginConfig.java │ │ │ │ │ └── SimpleSecurityProvider.java │ │ │ │ ├── utils │ │ │ │ ├── GitHttpRequest.java │ │ │ │ ├── GitUtils.java │ │ │ │ ├── YamlUtils.java │ │ │ │ ├── gson │ │ │ │ │ ├── EnvironmentIdDeserializer.java │ │ │ │ │ ├── EnvironmentIdSerializer.java │ │ │ │ │ ├── ExperimentIdDeserializer.java │ │ │ │ │ ├── ExperimentIdSerializer.java │ │ │ │ │ ├── NotebookIdDeserializer.java │ │ │ │ │ └── NotebookIdSerializer.java │ │ │ │ └── response │ │ │ │ │ ├── DictAnnotation.java │ │ │ │ │ ├── JsonExclusionStrategy.java │ │ │ │ │ └── JsonResponse.java │ │ │ │ ├── websocket │ │ │ │ ├── BasicWebSocketCreator.java │ │ │ │ ├── ConnectionManager.java │ │ │ │ ├── DateJsonDeserializer.java │ │ │ │ ├── Message.java │ │ │ │ ├── WebSocketHandler.java │ │ │ │ ├── WebSocketListener.java │ │ │ │ └── WebSocketServer.java │ │ │ │ └── workbench │ │ │ │ └── websocket │ │ │ │ ├── ConnectionManager.java │ │ │ │ ├── DateJsonDeserializer.java │ │ │ │ ├── Message.java │ │ │ │ ├── NotebookServer.java │ │ │ │ ├── NotebookSocket.java │ │ │ │ ├── NotebookSocketListener.java │ │ │ │ └── NotebookWebSocketCreator.java │ │ └── resources │ │ │ └── log4j.properties │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── server │ │ │ ├── AbstractSubmarineServerTest.java │ │ │ ├── SubmarineServerTest.java │ │ │ ├── internal │ │ │ └── InternalServiceManagerTest.java │ │ │ ├── manager │ │ │ └── ExperimentManagerTest.java │ │ │ ├── rest │ │ │ ├── EnvironmentRestApiTest.java │ │ │ ├── ExperimentRestApiTest.java │ │ │ ├── ExperimentTemplateRestApiTest.java │ │ │ ├── InternalServiceRestApiTest.java │ │ │ ├── ModelVersionRestApiTest.java │ │ │ ├── RegisteredModelRestApiTest.java │ │ │ └── workbench │ │ │ │ ├── CommonDataTest.java │ │ │ │ ├── DictAnnotationTest.java │ │ │ │ ├── SysDeptRestApiTest.java │ │ │ │ ├── SysDictItemRestApiTest.java │ │ │ │ ├── SysDictRestApiTest.java │ │ │ │ └── SysUserRestApiTest.java │ │ │ ├── s3 │ │ │ └── ClientTest.java │ │ │ ├── security │ │ │ ├── MockHttpServletRequest.java │ │ │ ├── oidc │ │ │ │ ├── MockOidcHttpServletRequest.java │ │ │ │ └── SubmarineAuthOidcTest.java │ │ │ └── simple │ │ │ │ └── SubmarineAuthSimpleTest.java │ │ │ ├── utils │ │ │ ├── GitUtilsTest.java │ │ │ ├── TestUtils.java │ │ │ └── response │ │ │ │ └── JsonResponseTest.java │ │ │ ├── websocket │ │ │ ├── EnvironmentWebsocketTest.java │ │ │ ├── ExperimentWebsocketTest.java │ │ │ └── NotebookWebsocketTest.java │ │ │ └── workbench │ │ │ └── websocket │ │ │ └── NotebookServerTest.java │ │ └── resources │ │ ├── environment │ │ ├── test_env_1.json │ │ ├── test_env_2.json │ │ └── test_env_3.json │ │ ├── experiment │ │ ├── new_spec.json │ │ ├── result.json │ │ ├── spec.json │ │ └── status.json │ │ ├── experimentTemplate │ │ ├── test_template_1.json │ │ └── test_template_1_submit.json │ │ ├── log4j.properties │ │ └── security │ │ ├── openid-configuration.json │ │ └── user-info.json ├── server-database │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── server │ │ │ │ └── database │ │ │ │ ├── entity │ │ │ │ └── BaseEntity.java │ │ │ │ ├── environment │ │ │ │ ├── entity │ │ │ │ │ └── EnvironmentEntity.java │ │ │ │ └── mappers │ │ │ │ │ └── EnvironmentMapper.java │ │ │ │ ├── experiment │ │ │ │ ├── entity │ │ │ │ │ └── ExperimentEntity.java │ │ │ │ ├── mappers │ │ │ │ │ └── ExperimentMapper.java │ │ │ │ └── service │ │ │ │ │ └── ExperimentService.java │ │ │ │ ├── experimenttemplate │ │ │ │ ├── entity │ │ │ │ │ └── ExperimentTemplateEntity.java │ │ │ │ └── mappers │ │ │ │ │ └── ExperimentTemplateMapper.java │ │ │ │ ├── model │ │ │ │ ├── entities │ │ │ │ │ ├── ModelVersionEntity.java │ │ │ │ │ ├── ModelVersionTagEntity.java │ │ │ │ │ ├── RegisteredModelEntity.java │ │ │ │ │ └── RegisteredModelTagEntity.java │ │ │ │ ├── mappers │ │ │ │ │ ├── ModelVersionMapper.java │ │ │ │ │ ├── ModelVersionTagMapper.java │ │ │ │ │ ├── RegisteredModelMapper.java │ │ │ │ │ └── RegisteredModelTagMapper.java │ │ │ │ └── service │ │ │ │ │ ├── ModelVersionService.java │ │ │ │ │ ├── ModelVersionTagService.java │ │ │ │ │ ├── RegisteredModelService.java │ │ │ │ │ └── RegisteredModelTagService.java │ │ │ │ ├── notebook │ │ │ │ ├── entity │ │ │ │ │ └── NotebookEntity.java │ │ │ │ ├── mappers │ │ │ │ │ └── NotebookMapper.java │ │ │ │ └── service │ │ │ │ │ └── NotebookService.java │ │ │ │ ├── utils │ │ │ │ └── MyBatisUtil.java │ │ │ │ └── workbench │ │ │ │ ├── annotation │ │ │ │ └── Dict.java │ │ │ │ ├── entity │ │ │ │ ├── JobEntity.java │ │ │ │ ├── MetricEntity.java │ │ │ │ ├── ParamEntity.java │ │ │ │ ├── ProjectEntity.java │ │ │ │ ├── ProjectFilesEntity.java │ │ │ │ ├── SysDeptEntity.java │ │ │ │ ├── SysDeptSelectEntity.java │ │ │ │ ├── SysDeptTree.java │ │ │ │ ├── SysDictEntity.java │ │ │ │ ├── SysDictItemEntity.java │ │ │ │ ├── SysMessageEntity.java │ │ │ │ ├── SysUserEntity.java │ │ │ │ ├── TeamEntity.java │ │ │ │ └── TeamMemberEntity.java │ │ │ │ ├── mappers │ │ │ │ ├── JobMapper.java │ │ │ │ ├── MetricMapper.java │ │ │ │ ├── ParamMapper.java │ │ │ │ ├── ProjectFilesMapper.java │ │ │ │ ├── ProjectMapper.java │ │ │ │ ├── SysDeptMapper.java │ │ │ │ ├── SysDictItemMapper.java │ │ │ │ ├── SysDictMapper.java │ │ │ │ ├── SysMessageMapper.java │ │ │ │ ├── SysUserMapper.java │ │ │ │ ├── SystemMapper.java │ │ │ │ ├── TeamMapper.java │ │ │ │ └── TeamMemberMapper.java │ │ │ │ ├── service │ │ │ │ ├── JobService.java │ │ │ │ ├── MetricService.java │ │ │ │ ├── ParamService.java │ │ │ │ ├── ProjectFilesService.java │ │ │ │ ├── ProjectService.java │ │ │ │ ├── SysDictItemService.java │ │ │ │ ├── SysMessageService.java │ │ │ │ ├── SysUserService.java │ │ │ │ ├── TeamMemberService.java │ │ │ │ └── TeamService.java │ │ │ │ └── utils │ │ │ │ ├── CustomJsonDateDeserializer.java │ │ │ │ ├── DepartmentUtil.java │ │ │ │ └── MybatisGenerator.java │ │ └── resources │ │ │ ├── log4j.properties │ │ │ ├── mbgConfiguration.xml │ │ │ ├── mybatis-config-metastore.xml │ │ │ ├── mybatis-config.xml │ │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── database │ │ │ └── mappers │ │ │ ├── EnvironmentMapper.xml │ │ │ ├── ExperimentMapper.xml │ │ │ ├── ExperimentTemplateMapper.xml │ │ │ ├── JobMapper.xml │ │ │ ├── MetricMapper.xml │ │ │ ├── ModelVersionMapper.xml │ │ │ ├── ModelVersionTagMapper.xml │ │ │ ├── NotebookMapper.xml │ │ │ ├── ParamMapper.xml │ │ │ ├── ProjectFilesMapper.xml │ │ │ ├── ProjectMapper.xml │ │ │ ├── RegisteredModelMapper.xml │ │ │ ├── RegisteredModelTagMapper.xml │ │ │ ├── SysDeptMapper.xml │ │ │ ├── SysDictItemMapper.xml │ │ │ ├── SysDictMapper.xml │ │ │ ├── SysMessageMapper.xml │ │ │ ├── SysUserMapper.xml │ │ │ ├── SystemMapper.xml │ │ │ ├── TeamMapper.xml │ │ │ └── TeamMemberMapper.xml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── server │ │ │ └── database │ │ │ ├── experiment │ │ │ └── ExperimentServiceTest.java │ │ │ ├── model │ │ │ ├── ModelVersionTagTest.java │ │ │ ├── ModelVersionTest.java │ │ │ ├── RegisteredModelServiceTest.java │ │ │ └── RegisteredModelTagServiceTest.java │ │ │ └── workbench │ │ │ └── database │ │ │ ├── service │ │ │ ├── JobServiceTest.java │ │ │ ├── MetricServiceTest.java │ │ │ ├── ParamServiceTest.java │ │ │ ├── ProjectServiceTest.java │ │ │ ├── SysUserServiceTest.java │ │ │ ├── TeamMemberServiceTest.java │ │ │ └── TeamServiceTest.java │ │ │ └── utils │ │ │ └── DepartmentUtilTest.java │ │ └── resources │ │ └── mybatis-config.xml └── server-submitter │ ├── k8s-utils │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── server │ │ │ │ └── k8s │ │ │ │ └── utils │ │ │ │ ├── K8sUtils.java │ │ │ │ └── OwnerReferenceConfig.java │ │ └── resources │ │ │ └── log4j.properties │ │ └── test │ │ └── java │ │ └── org │ │ └── apache │ │ └── submarine │ │ └── server │ │ └── k8s │ │ └── utils │ │ └── K8sUtilsTest.java │ ├── pom.xml │ ├── submarine-k8s-agent │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── server │ │ │ │ └── k8s │ │ │ │ └── agent │ │ │ │ ├── SubmarineAgentListener.java │ │ │ │ ├── model │ │ │ │ ├── notebook │ │ │ │ │ ├── NotebookResource.java │ │ │ │ │ └── status │ │ │ │ │ │ ├── NotebookCondition.java │ │ │ │ │ │ └── NotebookStatus.java │ │ │ │ └── training │ │ │ │ │ ├── JobResource.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── PyTorchJob.java │ │ │ │ │ ├── TFJob.java │ │ │ │ │ └── XGBoostJob.java │ │ │ │ │ └── status │ │ │ │ │ ├── JobCondition.java │ │ │ │ │ ├── JobStatus.java │ │ │ │ │ └── ReplicaStatus.java │ │ │ │ └── reconciler │ │ │ │ ├── JobReconciler.java │ │ │ │ ├── NotebookReconciler.java │ │ │ │ ├── PyTorchJobReconciler.java │ │ │ │ ├── TFJobReconciler.java │ │ │ │ └── XGBoostJobReconciler.java │ │ └── resources │ │ │ ├── log4j.properties │ │ │ └── mybatis-config.xml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── server │ │ │ └── k8s │ │ │ └── agent │ │ │ └── SubmitSubmarineAgentTest.java │ │ └── resources │ │ ├── custom-resources │ │ ├── notebook.yml │ │ ├── pytorchjobs.yaml │ │ ├── tfjobs.yaml │ │ └── xgboostjobs.yaml │ │ ├── db │ │ └── agent-init.sql │ │ └── log4j.properties │ └── submitter-k8s │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── server │ │ │ └── submitter │ │ │ └── k8s │ │ │ ├── K8sSubmitter.java │ │ │ ├── client │ │ │ ├── K8sClient.java │ │ │ └── K8sDefaultClient.java │ │ │ ├── experiment │ │ │ └── codelocalizer │ │ │ │ ├── AbstractCodeLocalizer.java │ │ │ │ ├── CodeLocalizer.java │ │ │ │ ├── DummyCodeLocalizer.java │ │ │ │ ├── GitCodeLocalizer.java │ │ │ │ ├── HTTPGitCodeLocalizer.java │ │ │ │ └── SSHGitCodeLocalizer.java │ │ │ ├── model │ │ │ ├── AgentPod.java │ │ │ ├── CustomResourceJob │ │ │ │ ├── CustomResourceJob.java │ │ │ │ └── CustomResourceJobList.java │ │ │ ├── K8sResource.java │ │ │ ├── ListMeta.java │ │ │ ├── ObjectMeta.java │ │ │ ├── common │ │ │ │ ├── Configmap.java │ │ │ │ ├── NullResource.java │ │ │ │ └── PersistentVolumeClaim.java │ │ │ ├── ingressroute │ │ │ │ ├── IngressRoute.java │ │ │ │ ├── IngressRouteList.java │ │ │ │ ├── IngressRouteSpec.java │ │ │ │ └── SpecRoute.java │ │ │ ├── istio │ │ │ │ └── IstioVirtualService.java │ │ │ ├── middlewares │ │ │ │ ├── Middlewares.java │ │ │ │ ├── MiddlewaresSpec.java │ │ │ │ └── StripPrefix.java │ │ │ ├── mljob │ │ │ │ ├── MLJob.java │ │ │ │ ├── MLJobFactory.java │ │ │ │ ├── MLJobReplicaSpec.java │ │ │ │ ├── MLJobReplicaType.java │ │ │ │ └── MLJobSpec.java │ │ │ ├── notebook │ │ │ │ ├── NotebookCR.java │ │ │ │ ├── NotebookCRList.java │ │ │ │ ├── NotebookCRSpec.java │ │ │ │ ├── NotebookCondition.java │ │ │ │ └── NotebookStatus.java │ │ │ ├── pytorchjob │ │ │ │ ├── PyTorchJob.java │ │ │ │ ├── PyTorchJobList.java │ │ │ │ ├── PyTorchJobReplicaType.java │ │ │ │ └── PyTorchJobSpec.java │ │ │ ├── seldon │ │ │ │ ├── SeldonDeploymentFactory.java │ │ │ │ ├── SeldonDeploymentPytorchServing.java │ │ │ │ ├── SeldonDeploymentTFServing.java │ │ │ │ └── SeldonResource.java │ │ │ ├── tfjob │ │ │ │ ├── TFJob.java │ │ │ │ ├── TFJobList.java │ │ │ │ ├── TFJobReplicaType.java │ │ │ │ └── TFJobSpec.java │ │ │ └── xgboostjob │ │ │ │ ├── XGBoostJob.java │ │ │ │ ├── XGBoostJobList.java │ │ │ │ ├── XGBoostJobReplicaType.java │ │ │ │ └── XGBoostJobSpec.java │ │ │ ├── parser │ │ │ ├── ExperimentSpecParser.java │ │ │ └── NotebookSpecParser.java │ │ │ └── util │ │ │ ├── JsonUtils.java │ │ │ ├── K8sResourceUtils.java │ │ │ ├── MLJobConverter.java │ │ │ ├── NotebookUtils.java │ │ │ └── OwnerReferenceUtils.java │ └── resources │ │ └── log4j.properties │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── submarine │ │ └── server │ │ └── submitter │ │ └── k8s │ │ ├── ExperimentSpecParserTest.java │ │ ├── K8SJobSubmitterTest.java │ │ ├── MLJobConverterTest.java │ │ ├── NotebookSpecParserTest.java │ │ ├── SpecBuilder.java │ │ ├── SubmitterK8sMockApiTest.java │ │ ├── SubmitterNotebookApiTest.java │ │ ├── SubmitterTransactionTest.java │ │ ├── client │ │ ├── K8sMockClient.java │ │ └── MockClientUtil.java │ │ ├── mljob │ │ ├── SubmitterFileUtil.java │ │ ├── SubmitterPyTorchApiTest.java │ │ ├── SubmitterTensorflowApiTest.java │ │ └── SubmitterXGBoostApiTest.java │ │ └── seldon │ │ └── SeldonDeploymentResourceTest.java │ └── resources │ ├── client │ ├── discovery-api-v1.json │ ├── discovery-api.json │ ├── discovery-apis.json │ ├── experiment │ │ ├── pytorch-delete-api.json │ │ ├── pytorch-read-api.json │ │ ├── tf-delete-api.json │ │ ├── tf-read-api.json │ │ ├── xgboost-delete-api.json │ │ └── xgboost-read-api.json │ └── notebook │ │ ├── notebook-delete-api.json │ │ └── notebook-read-api.json │ ├── db │ ├── experiment.sql │ └── notebook.sql │ ├── log4j.properties │ ├── notebook_req.json │ ├── pytorch_job_req.json │ ├── pytorch_job_req_env.json │ ├── pytorch_job_req_http_git_code_localizer.json │ ├── pytorch_job_req_invalid_env.json │ ├── pytorch_job_req_ssh_git_code_localizer.json │ ├── tf_mnist_req.json │ ├── tf_tfboard_mnist_req.json │ └── xgboost_job_req.json ├── submarine-test ├── pom.xml ├── test-e2e │ ├── pom.xml │ ├── run_frontend_e2e.sh │ └── src │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ ├── AbstractSubmarineIT.java │ │ │ ├── ChromeWebDriverProvider.java │ │ │ ├── CommandExecutor.java │ │ │ ├── FirefoxWebDriverProvider.java │ │ │ ├── ProcessData.java │ │ │ ├── SubmarineITUtils.java │ │ │ ├── WebDriverManager.java │ │ │ ├── WebDriverProvider.java │ │ │ └── integration │ │ │ ├── SubmarineLogTest.java │ │ │ ├── components │ │ │ └── Sidebars.java │ │ │ ├── dataTest.java │ │ │ ├── datadictTest.java │ │ │ ├── departmentTest.java │ │ │ ├── environmentTest.java │ │ │ ├── experimentTest.java │ │ │ ├── homeTest.java │ │ │ ├── interpreterTest.java │ │ │ ├── loginTest.java │ │ │ ├── notebookTest.java │ │ │ ├── pages │ │ │ ├── DataDictPage.java │ │ │ ├── ExperimentPage.java │ │ │ └── LoginPage.java │ │ │ ├── registerTest.java │ │ │ ├── teamTest.java │ │ │ └── workspaceTest.java │ │ └── resources │ │ ├── log4j.properties │ │ └── test_config_1.yml └── test-k8s │ ├── pom.xml │ └── src │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── submarine │ │ └── rest │ │ ├── EnvironmentManagerRestApiTest.java │ │ ├── ExperimentRestApiTest.java │ │ ├── ExperimentTemplateManagerRestApiTest.java │ │ ├── NotebookRestApiTest.java │ │ └── OpenApiRestTest.java │ └── resources │ ├── log4j.properties │ ├── notebook │ ├── notebook-req-2.json │ ├── notebook-req.json │ └── notebook-req.yaml │ ├── pytorch │ ├── pt-mnist-patch-req.json │ ├── pt-mnist-patch-req.yaml │ ├── pt-mnist-req.json │ └── pt-mnist-req.yaml │ └── tensorflow │ ├── tf-mnist-patch-req.json │ ├── tf-mnist-patch-req.yaml │ ├── tf-mnist-req.json │ ├── tf-mnist-req.yaml │ ├── tf-mnist-with-env-patch-req.json │ ├── tf-mnist-with-env-req.json │ ├── tf-mnist-with-http-git-code-localizer-req.json │ └── tf-mnist-with-ssh-git-code-localizer-req.json ├── submarine-workbench-v2 ├── .gitignore ├── .prettierignore ├── .prettierrc ├── README.md ├── index.html ├── package.json ├── public │ ├── background.svg │ ├── logo-128.png │ ├── logo.png │ └── submarine-logo.svg ├── src │ ├── App.scss │ ├── App.tsx │ ├── components │ │ ├── Sidebar.scss │ │ └── Sidebar.tsx │ ├── index.css │ ├── main.tsx │ ├── pages │ │ └── workbench │ │ │ ├── data_dict │ │ │ └── DataDict.tsx │ │ │ ├── department │ │ │ └── Department.tsx │ │ │ ├── environment │ │ │ └── Environment.tsx │ │ │ ├── experiment │ │ │ └── Experiment.tsx │ │ │ ├── model │ │ │ └── Model.tsx │ │ │ ├── notebook │ │ │ └── Notebook.tsx │ │ │ ├── template │ │ │ └── Template.tsx │ │ │ └── user │ │ │ └── User.tsx │ ├── rest │ │ ├── api.ts │ │ ├── base.ts │ │ ├── configuration.ts │ │ └── index.ts │ └── vite-env.d.ts ├── tests │ ├── App.test.tsx │ ├── pages │ │ └── workbench │ │ │ ├── data_dict │ │ │ └── DataDict.test.tsx │ │ │ ├── department │ │ │ └── Department.test.tsx │ │ │ ├── environment │ │ │ └── Environment.test.tsx │ │ │ ├── experiment │ │ │ └── Experiment.test.tsx │ │ │ ├── model │ │ │ └── Model.test.tsx │ │ │ ├── notebook │ │ │ └── Notebook.test.tsx │ │ │ ├── template │ │ │ └── Template.test.tsx │ │ │ └── user │ │ │ └── User.test.tsx │ ├── setup.ts │ └── utils │ │ └── test-utils.tsx ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock ├── submarine-workbench ├── interpreter │ ├── interpreter-core │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── submarine │ │ │ │ └── interpreter │ │ │ │ ├── AbstractInterpreter.java │ │ │ │ ├── Interpreter.java │ │ │ │ ├── InterpreterException.java │ │ │ │ ├── InterpreterGroup.java │ │ │ │ ├── InterpreterProcess.java │ │ │ │ ├── InterpreterResult.java │ │ │ │ └── InterpreterResultMessage.java │ │ │ └── resources │ │ │ └── log4j.properties │ ├── pom.xml │ ├── python-interpreter │ │ ├── README.md │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── apache │ │ │ │ │ └── submarine │ │ │ │ │ └── interpreter │ │ │ │ │ └── PythonInterpreter.java │ │ │ └── resources │ │ │ │ └── log4j.properties │ │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── interpreter │ │ │ ├── InterpreterClusterTest.java │ │ │ └── PythonInterpreterTest.java │ └── spark-interpreter │ │ ├── README.md │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── interpreter │ │ │ ├── SparkInterpreter.java │ │ │ └── SparkSqlInterpreter.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── submarine │ │ │ └── interpreter │ │ │ ├── SparkInterpreterTest.java │ │ │ └── SparkSqlInterpreterTest.java │ │ └── resources │ │ ├── hive-site.xml │ │ └── log4j.properties ├── pom.xml └── workbench-web │ ├── .editorconfig │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc │ ├── LICENSE │ ├── README.md │ ├── angular.json │ ├── browserslist │ ├── e2e │ ├── README.md │ ├── protractor-ci.conf.js │ ├── protractor.conf.js │ ├── src │ │ ├── app.e2e-spec.ts │ │ └── app.po.ts │ └── tsconfig.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── proxy.conf.js │ ├── src │ ├── WEB-INF │ │ └── web.xml │ ├── app │ │ ├── app-routing.module.ts │ │ ├── app.component.html │ │ ├── app.component.scss │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── components │ │ │ ├── components.module.ts │ │ │ └── page-layout │ │ │ │ ├── page-layout.component.html │ │ │ │ ├── page-layout.component.scss │ │ │ │ └── page-layout.component.ts │ │ ├── core │ │ │ ├── auth │ │ │ │ ├── api-token-injector.ts │ │ │ │ └── auth.guard.ts │ │ │ ├── index.ts │ │ │ ├── local-translate.ts │ │ │ └── public-api.ts │ │ ├── icons-provider.module.ts │ │ ├── interfaces │ │ │ ├── action.ts │ │ │ ├── base-entity.ts │ │ │ ├── environment-interfaces │ │ │ │ ├── environment-info.ts │ │ │ │ └── environment-spec.ts │ │ │ ├── experiment-info.ts │ │ │ ├── experiment-spec.ts │ │ │ ├── experiment-template-submit.ts │ │ │ ├── experiment-template.ts │ │ │ ├── index.ts │ │ │ ├── mlflow-info.ts │ │ │ ├── modal-props.ts │ │ │ ├── model-info.ts │ │ │ ├── model-serve.ts │ │ │ ├── model-version-info.ts │ │ │ ├── notebook-interfaces │ │ │ │ ├── notebook-info.ts │ │ │ │ └── notebook-spec.ts │ │ │ ├── permission.ts │ │ │ ├── project.ts │ │ │ ├── public-api.ts │ │ │ ├── rest.ts │ │ │ ├── role.ts │ │ │ ├── sys-dept-item.ts │ │ │ ├── sys-dept-select.ts │ │ │ ├── sys-dict-item.ts │ │ │ ├── sys-team.ts │ │ │ ├── sys-user.ts │ │ │ ├── tensorboard-info.ts │ │ │ └── user-info.ts │ │ ├── pages │ │ │ ├── user │ │ │ │ ├── login │ │ │ │ │ ├── login-routing.module.ts │ │ │ │ │ ├── login.component.html │ │ │ │ │ ├── login.component.scss │ │ │ │ │ └── login.component.ts │ │ │ │ ├── register │ │ │ │ │ ├── register.component.html │ │ │ │ │ ├── register.component.scss │ │ │ │ │ └── register.component.ts │ │ │ │ ├── user-routing.module.ts │ │ │ │ ├── user.component.html │ │ │ │ ├── user.component.scss │ │ │ │ ├── user.component.ts │ │ │ │ └── user.module.ts │ │ │ └── workbench │ │ │ │ ├── data │ │ │ │ ├── data.component.html │ │ │ │ ├── data.component.scss │ │ │ │ └── data.component.ts │ │ │ │ ├── environment │ │ │ │ ├── environment-home │ │ │ │ │ ├── environment-form │ │ │ │ │ │ ├── environment-form.component.html │ │ │ │ │ │ ├── environment-form.component.scss │ │ │ │ │ │ └── environment-form.component.ts │ │ │ │ │ ├── environment-home.component.html │ │ │ │ │ ├── environment-home.component.scss │ │ │ │ │ ├── environment-home.component.ts │ │ │ │ │ └── environment-list │ │ │ │ │ │ ├── environment-list.component.html │ │ │ │ │ │ ├── environment-list.component.scss │ │ │ │ │ │ └── environment-list.component.ts │ │ │ │ ├── environment-routing.module.ts │ │ │ │ ├── environment.component.html │ │ │ │ ├── environment.component.scss │ │ │ │ ├── environment.component.ts │ │ │ │ └── environment.module.ts │ │ │ │ ├── experiment │ │ │ │ ├── experiment-home │ │ │ │ │ ├── experiment-form │ │ │ │ │ │ ├── experiment-customized-form │ │ │ │ │ │ │ ├── experiment-customized-form.component.html │ │ │ │ │ │ │ ├── experiment-customized-form.component.scss │ │ │ │ │ │ │ └── experiment-customized-form.component.ts │ │ │ │ │ │ ├── experiment-form.component.html │ │ │ │ │ │ ├── experiment-form.component.scss │ │ │ │ │ │ ├── experiment-form.component.ts │ │ │ │ │ │ └── experiment-predefined-form │ │ │ │ │ │ │ ├── experiment-predefined-form.component.html │ │ │ │ │ │ │ ├── experiment-predefined-form.component.scss │ │ │ │ │ │ │ └── experiment-predefined-form.component.ts │ │ │ │ │ ├── experiment-home.component.html │ │ │ │ │ ├── experiment-home.component.scss │ │ │ │ │ ├── experiment-home.component.ts │ │ │ │ │ └── experiment-list │ │ │ │ │ │ ├── experiment-list.component.html │ │ │ │ │ │ ├── experiment-list.component.scss │ │ │ │ │ │ └── experiment-list.component.ts │ │ │ │ ├── experiment-info │ │ │ │ │ ├── artifacts │ │ │ │ │ │ ├── artifacts.component.html │ │ │ │ │ │ ├── artifacts.component.scss │ │ │ │ │ │ ├── artifacts.component.ts │ │ │ │ │ │ └── register-model-form │ │ │ │ │ │ │ ├── register-model-form.component.html │ │ │ │ │ │ │ ├── register-model-form.component.scss │ │ │ │ │ │ │ ├── register-model-form.component.ts │ │ │ │ │ │ │ └── register-model-tag │ │ │ │ │ │ │ ├── register-model-tags.component.html │ │ │ │ │ │ │ ├── register-model-tags.component.scss │ │ │ │ │ │ │ └── register-model-tags.component.ts │ │ │ │ │ ├── charts │ │ │ │ │ │ ├── charts.component.html │ │ │ │ │ │ ├── charts.component.scss │ │ │ │ │ │ └── charts.component.ts │ │ │ │ │ ├── experiment-info.component.html │ │ │ │ │ ├── experiment-info.component.scss │ │ │ │ │ ├── experiment-info.component.ts │ │ │ │ │ ├── hyper-params │ │ │ │ │ │ ├── hyper-params.component.html │ │ │ │ │ │ ├── hyper-params.component.scss │ │ │ │ │ │ └── hyper-params.component.ts │ │ │ │ │ ├── metrics │ │ │ │ │ │ ├── metrics.component.html │ │ │ │ │ │ ├── metrics.component.scss │ │ │ │ │ │ └── metrics.component.ts │ │ │ │ │ └── outputs │ │ │ │ │ │ ├── outputs.component.html │ │ │ │ │ │ ├── outputs.component.scss │ │ │ │ │ │ └── outputs.component.ts │ │ │ │ ├── experiment-routing.module.ts │ │ │ │ ├── experiment.component.html │ │ │ │ ├── experiment.component.scss │ │ │ │ ├── experiment.component.ts │ │ │ │ └── experiment.module.ts │ │ │ │ ├── home │ │ │ │ ├── home.component.html │ │ │ │ ├── home.component.scss │ │ │ │ └── home.component.ts │ │ │ │ ├── interpreter │ │ │ │ ├── interpreter-add-modal │ │ │ │ │ ├── interpreter-add-modal.component.html │ │ │ │ │ ├── interpreter-add-modal.component.scss │ │ │ │ │ └── interpreter-add-modal.component.ts │ │ │ │ ├── interpreter.component.html │ │ │ │ ├── interpreter.component.scss │ │ │ │ ├── interpreter.component.ts │ │ │ │ └── interpreter.module.ts │ │ │ │ ├── manager │ │ │ │ ├── data-dict-config-modal │ │ │ │ │ ├── data-dict-config-modal.component.html │ │ │ │ │ ├── data-dict-config-modal.component.scss │ │ │ │ │ └── data-dict-config-modal.component.ts │ │ │ │ ├── data-dict-modal │ │ │ │ │ ├── data-dict-modal.component.html │ │ │ │ │ ├── data-dict-modal.component.scss │ │ │ │ │ └── data-dict-modal.component.ts │ │ │ │ ├── data-dict │ │ │ │ │ ├── data-dict.component.html │ │ │ │ │ ├── data-dict.component.scss │ │ │ │ │ └── data-dict.component.ts │ │ │ │ ├── department │ │ │ │ │ ├── department.component.html │ │ │ │ │ ├── department.component.scss │ │ │ │ │ └── department.component.ts │ │ │ │ ├── manager-routing.module.ts │ │ │ │ ├── manager.component.html │ │ │ │ ├── manager.component.scss │ │ │ │ ├── manager.component.ts │ │ │ │ ├── manager.module.ts │ │ │ │ ├── user-drawer │ │ │ │ │ ├── user-drawer.component.html │ │ │ │ │ ├── user-drawer.component.scss │ │ │ │ │ └── user-drawer.component.ts │ │ │ │ ├── user-password-modal │ │ │ │ │ ├── user-password-modal.component.html │ │ │ │ │ ├── user-password-modal.component.scss │ │ │ │ │ └── user-password-modal.component.ts │ │ │ │ └── user │ │ │ │ │ ├── user.component.html │ │ │ │ │ ├── user.component.scss │ │ │ │ │ └── user.component.ts │ │ │ │ ├── model │ │ │ │ ├── model-home │ │ │ │ │ ├── model-cards │ │ │ │ │ │ ├── model-card │ │ │ │ │ │ │ ├── model-card.component.html │ │ │ │ │ │ │ ├── model-card.component.scss │ │ │ │ │ │ │ └── model-card.component.ts │ │ │ │ │ │ ├── model-cards.component.html │ │ │ │ │ │ ├── model-cards.component.scss │ │ │ │ │ │ └── model-cards.component.ts │ │ │ │ │ ├── model-form │ │ │ │ │ │ ├── model-form-tags │ │ │ │ │ │ │ ├── model-form-tags.component.html │ │ │ │ │ │ │ ├── model-form-tags.component.scss │ │ │ │ │ │ │ └── model-form-tags.component.ts │ │ │ │ │ │ ├── model-form.component.html │ │ │ │ │ │ ├── model-form.component.scss │ │ │ │ │ │ └── model-form.component.ts │ │ │ │ │ ├── model-home.component.html │ │ │ │ │ ├── model-home.component.scss │ │ │ │ │ └── model-home.component.ts │ │ │ │ ├── model-info │ │ │ │ │ ├── model-info.component.html │ │ │ │ │ ├── model-info.component.scss │ │ │ │ │ └── model-info.component.ts │ │ │ │ ├── model-routing.module.ts │ │ │ │ ├── model-tags │ │ │ │ │ ├── model-tag │ │ │ │ │ │ ├── model-tag.component.html │ │ │ │ │ │ ├── model-tag.component.scss │ │ │ │ │ │ └── model-tag.component.ts │ │ │ │ │ ├── model-tags.component.html │ │ │ │ │ ├── model-tags.component.scss │ │ │ │ │ ├── model-tags.component.ts │ │ │ │ │ └── model-version-tag │ │ │ │ │ │ ├── model-version-tag.component.html │ │ │ │ │ │ ├── model-version-tag.component.scss │ │ │ │ │ │ └── model-version-tag.component.ts │ │ │ │ ├── model-version │ │ │ │ │ ├── model-version.component.html │ │ │ │ │ ├── model-version.component.scss │ │ │ │ │ └── model-version.component.ts │ │ │ │ ├── model.component.html │ │ │ │ ├── model.component.scss │ │ │ │ ├── model.component.ts │ │ │ │ └── model.module.ts │ │ │ │ ├── notebook │ │ │ │ ├── notebook-home │ │ │ │ │ ├── notebook-form │ │ │ │ │ │ ├── notebook-form.component.html │ │ │ │ │ │ ├── notebook-form.component.scss │ │ │ │ │ │ └── notebook-form.component.ts │ │ │ │ │ ├── notebook-home.component.html │ │ │ │ │ ├── notebook-home.component.scss │ │ │ │ │ ├── notebook-home.component.ts │ │ │ │ │ └── notebook-list │ │ │ │ │ │ ├── notebook-list.component.html │ │ │ │ │ │ ├── notebook-list.component.scss │ │ │ │ │ │ └── notebook-list.component.ts │ │ │ │ ├── notebook-routing.module.ts │ │ │ │ ├── notebook.component.html │ │ │ │ ├── notebook.component.scss │ │ │ │ ├── notebook.component.ts │ │ │ │ └── notebook.module.ts │ │ │ │ ├── template │ │ │ │ ├── template-home │ │ │ │ │ ├── template-form │ │ │ │ │ │ ├── template-form.component.html │ │ │ │ │ │ ├── template-form.component.scss │ │ │ │ │ │ └── template-form.component.ts │ │ │ │ │ ├── template-home.component.html │ │ │ │ │ ├── template-home.component.scss │ │ │ │ │ ├── template-home.component.ts │ │ │ │ │ └── template-list │ │ │ │ │ │ ├── template-list.component.html │ │ │ │ │ │ ├── template-list.component.scss │ │ │ │ │ │ └── template-list.component.ts │ │ │ │ ├── template-info │ │ │ │ │ ├── template-info.component.html │ │ │ │ │ ├── template-info.component.scss │ │ │ │ │ └── template-info.component.ts │ │ │ │ ├── template-routing.module.ts │ │ │ │ ├── template.component.html │ │ │ │ ├── template.component.scss │ │ │ │ ├── template.component.ts │ │ │ │ └── template.module.ts │ │ │ │ ├── utils │ │ │ │ ├── humanize-time.ts │ │ │ │ └── locale-dict.ts │ │ │ │ ├── workbench-routing.module.ts │ │ │ │ ├── workbench.component.html │ │ │ │ ├── workbench.component.scss │ │ │ │ ├── workbench.component.ts │ │ │ │ ├── workbench.module.ts │ │ │ │ └── workspace │ │ │ │ ├── project │ │ │ │ ├── new-project-page │ │ │ │ │ ├── new-project-page.component.html │ │ │ │ │ ├── new-project-page.component.scss │ │ │ │ │ └── new-project-page.component.ts │ │ │ │ ├── project.component.html │ │ │ │ ├── project.component.scss │ │ │ │ └── project.component.ts │ │ │ │ ├── release │ │ │ │ ├── release.component.html │ │ │ │ ├── release.component.scss │ │ │ │ └── release.component.ts │ │ │ │ ├── shared │ │ │ │ ├── shared.component.html │ │ │ │ ├── shared.component.scss │ │ │ │ └── shared.component.ts │ │ │ │ ├── team │ │ │ │ ├── team.component.html │ │ │ │ ├── team.component.scss │ │ │ │ └── team.component.ts │ │ │ │ ├── training │ │ │ │ ├── training.component.html │ │ │ │ ├── training.component.scss │ │ │ │ └── training.component.ts │ │ │ │ ├── workspace.component.html │ │ │ │ ├── workspace.component.scss │ │ │ │ ├── workspace.component.ts │ │ │ │ └── workspace.module.ts │ │ ├── pipe │ │ │ ├── condition.pipe.ts │ │ │ └── pipe-shared.module.ts │ │ └── services │ │ │ ├── auth.service.ts │ │ │ ├── base-api.service.ts │ │ │ ├── department.service.ts │ │ │ ├── environment-services │ │ │ └── environment.service.ts │ │ │ ├── experiment-services │ │ │ └── artifact.service.ts │ │ │ ├── experiment.form.service.ts │ │ │ ├── experiment.service.ts │ │ │ ├── experiment.validator.service.ts │ │ │ ├── index.ts │ │ │ ├── local-storage.service.ts │ │ │ ├── model-serve.service.ts │ │ │ ├── model-version.service.ts │ │ │ ├── model.service.ts │ │ │ ├── notebook-services │ │ │ └── notebook.service.ts │ │ │ ├── project.service.ts │ │ │ ├── public-api.ts │ │ │ ├── system-utils.service.ts │ │ │ ├── team.service.ts │ │ │ └── user.service.ts │ ├── assets │ │ ├── .gitkeep │ │ ├── background.svg │ │ ├── i18n │ │ │ ├── en_US.json │ │ │ └── zh_CN.json │ │ ├── logo-128.png │ │ ├── logo.png │ │ ├── security │ │ │ └── provider.js │ │ └── submarine-logo.svg │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── polyfills.ts │ ├── styles.scss │ ├── test.ts │ ├── theme.less │ └── types │ │ └── index.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── tslint.json └── website ├── .gitignore ├── README.md ├── babel.config.js ├── docs ├── api │ ├── environment.md │ ├── experiment-template.md │ ├── experiment.md │ ├── model-version.md │ ├── notebook.md │ ├── register-model.md │ └── serve.md ├── community │ ├── Bylaws.md │ ├── HowToBecomeCommitter.md │ ├── HowToCommit.md │ ├── HowToVoteCommitterOrPMC.md │ ├── README.md │ ├── Resources.md │ └── contributing.md ├── designDocs │ ├── architecture-and-requirements.md │ ├── environments-implementation.md │ ├── experiment-implementation.md │ ├── implementation-notes.md │ ├── notebook-implementation.md │ ├── storage-implementation.md │ ├── submarine-server │ │ ├── architecture.md │ │ └── experimentSpec.md │ └── wip-designs │ │ ├── security-implementation.md │ │ └── submarine-launcher.md ├── devDocs │ ├── BuildFromCode.md │ ├── Dependencies.md │ ├── Development.md │ ├── HowToRelease.md │ ├── HowToVerify.md │ ├── IntegrationTestE2E.md │ ├── IntegrationTestK8s.md │ └── README.md ├── download.md ├── gettingStarted │ ├── helm.md │ ├── notebook.md │ ├── python-sdk.md │ └── quickstart.md └── userDocs │ ├── others │ ├── mlflow.md │ └── tensorboard.md │ └── submarine-sdk │ ├── README.md │ ├── experiment-client.md │ ├── pysubmarine │ └── development.md │ ├── submarine-cli.md │ ├── submarine-client.md │ └── tracking.md ├── docusaurus.config.js ├── i18n └── zh-cn │ ├── docusaurus-plugin-content-docs │ ├── current-0.8.0 │ │ └── download.md │ ├── current │ │ └── download.md │ └── version-0.7.0 │ │ └── download.md │ ├── docusaurus-plugin-content-pages │ ├── index.js │ ├── releases │ │ ├── submarine-release-0.2.0.md │ │ ├── submarine-release-0.3.0.md │ │ ├── submarine-release-0.4.0.md │ │ ├── submarine-release-0.5.0.md │ │ ├── submarine-release-0.6.0.md │ │ ├── submarine-release-0.7.0.md │ │ └── submarine-release-0.8.0.md │ ├── styles.module.css │ └── versions.js │ └── docusaurus-theme-classic │ ├── footer.json │ └── navbar.json ├── package.json ├── sidebars.js ├── src ├── css │ └── custom.css ├── pages │ ├── index.js │ ├── releases │ │ ├── submarine-release-0.2.0.md │ │ ├── submarine-release-0.3.0.md │ │ ├── submarine-release-0.4.0.md │ │ ├── submarine-release-0.5.0.md │ │ ├── submarine-release-0.6.0.md │ │ ├── submarine-release-0.7.0.md │ │ └── submarine-release-0.8.0.md │ ├── styles.module.css │ └── versions.js └── theme │ └── SearchBar │ ├── algolia.css │ ├── index.js │ ├── search_lib │ ├── DocSearch.js │ ├── lunar-search.js │ ├── templates.js │ └── utils.js │ └── styles.css ├── static ├── .asf.yaml ├── .nojekyll └── img │ ├── apache_incubator.png │ ├── architecture.png │ ├── asf_feather.png │ ├── check_ci_pass.png │ ├── compare_pull_request_button.png │ ├── created-notebook-0-7-0.png │ ├── created-notebook.png │ ├── design │ ├── experiments.png │ └── multi-dc-cloud.png │ ├── icons │ ├── 128-black-white.png │ ├── 128-black.png │ ├── 128-white.png │ ├── 128.png │ ├── 256-black-white.png │ ├── 256-black.png │ ├── 256-white-backup.png │ ├── 256-white.png │ ├── 256.png │ ├── 32-black-white.png │ ├── 32-black.png │ ├── 32-white.png │ ├── 32.png │ ├── 64-black-white.png │ ├── 64-black.png │ ├── 64-white.png │ ├── 64.png │ ├── LOGO-black.svg │ ├── LOGO-blue.svg │ ├── LOGO-white.svg │ ├── color_logo_with_text.png │ ├── color_logo_with_text.psd │ ├── logo-UEDC.psd │ ├── logo-org.psd │ ├── logo.psd │ └── logo.svg │ ├── jira_number_example.png │ ├── job-logs-ui.png │ ├── kind-dashboard.png │ ├── mlflow-ui.png │ ├── multiple-tensorboard-jobs.png │ ├── notebook-form-0-7-0.png │ ├── notebook-form.png │ ├── notebook-list-0-7-0.png │ ├── notebook-list.png │ ├── pull_request_template_example.png │ ├── quickstart-artifacts.png │ ├── quickstart-mlflow-2.png │ ├── quickstart-mlflow.png │ ├── quickstart-submit-1-0-7-0.png │ ├── quickstart-submit-1.png │ ├── quickstart-submit-2-0-7-0.png │ ├── quickstart-submit-2.png │ ├── quickstart-submit-3-0-7-0.png │ ├── quickstart-submit-3.png │ ├── quickstart-submit-4-0-7-0.png │ ├── quickstart-submit-4.png │ ├── quickstart-ui-0-7-0.png │ ├── quickstart-worbench.png │ ├── sge │ ├── sge_cluster.png │ └── sge_stat.png │ ├── spark-flink.png │ ├── submarine-installer.gif │ ├── submarine-model-registry.png │ ├── submarine-register-model.png │ ├── submarine-serve-model.png │ ├── submarine-serve-prediction.png │ ├── submarine.ico │ ├── tensorboard-experiment-page.png │ ├── tensorboard-service.png │ ├── tensorboard-webpage.png │ ├── test-k8s-result.png │ ├── tf-pytorch.png │ ├── workspace │ ├── workspace-project-step1.png │ ├── workspace-project-step2-blank.png │ ├── workspace-project-step2-git.png │ ├── workspace-project-step2-template.png │ ├── workspace-project-step2-upload.png │ ├── workspace-project-step3.png │ └── workspace-project.png │ └── yarn-k8s.png ├── versioned_docs ├── version-0.6.0 │ ├── adminDocs │ │ └── yarn │ │ │ ├── README.md │ │ │ ├── TestAndTroubleshooting.md │ │ │ └── workbench │ │ │ ├── HowToRun.md │ │ │ ├── README.md │ │ │ ├── README.zh-CN.md │ │ │ └── notebook │ │ │ ├── jupyter.yaml │ │ │ └── setup-jupyter.md │ ├── api │ │ ├── environment.md │ │ ├── experiment-template.md │ │ ├── experiment.md │ │ └── notebook.md │ ├── community │ │ ├── HowToCommit.md │ │ ├── README.md │ │ └── contributing.md │ ├── designDocs │ │ ├── architecture-and-requirements.md │ │ ├── environments-implementation.md │ │ ├── experiment-implementation.md │ │ ├── implementation-notes.md │ │ ├── notebook-implementation.md │ │ ├── storage-implementation.md │ │ ├── submarine-server │ │ │ ├── architecture.md │ │ │ └── experimentSpec.md │ │ └── wip-designs │ │ │ ├── security-implementation.md │ │ │ ├── submarine-clusterServer.md │ │ │ └── submarine-launcher.md │ ├── devDocs │ │ ├── BuildFromCode.md │ │ ├── Dependencies.md │ │ ├── Development.md │ │ ├── IntegrationTestE2E.md │ │ ├── IntegrationTestK8s.md │ │ └── README.md │ ├── download.md │ ├── ecosystem │ │ └── kaldi │ │ │ ├── RunningDistributedThchs30KaldiJobs.md │ │ │ ├── WriteDockerfileKaldi.md │ │ │ ├── base │ │ │ └── ubuntu-18.04 │ │ │ │ └── Dockerfile.gpu.kaldi_latest │ │ │ ├── build-all.sh │ │ │ └── sge │ │ │ ├── gencfs.sh │ │ │ ├── group │ │ │ ├── passwd │ │ │ ├── resolv.conf │ │ │ └── sge_run.sh │ ├── gettingStarted │ │ ├── helm.md │ │ ├── kind.md │ │ ├── localDeployment.md │ │ ├── notebook.md │ │ ├── python-sdk.md │ │ └── quickstart.md │ └── userDocs │ │ ├── api │ │ ├── environment.md │ │ ├── experiment-template.md │ │ ├── experiment.md │ │ └── notebook.md │ │ ├── others │ │ ├── mlflow.md │ │ └── tensorboard.md │ │ ├── submarine-sdk │ │ ├── README.md │ │ ├── experiment-client.md │ │ ├── model-client.md │ │ ├── pysubmarine │ │ │ └── development.md │ │ └── tracking.md │ │ ├── submarine-security │ │ └── spark-security │ │ │ ├── README.md │ │ │ └── build-submarine-spark-security-plugin.md │ │ └── yarn │ │ ├── Dockerfiles.md │ │ ├── TestAndTroubleshooting.md │ │ ├── WriteDockerfileMX.md │ │ ├── WriteDockerfilePT.md │ │ ├── WriteDockerfileTF.md │ │ ├── YARNRuntimeGuide.md │ │ └── docker │ │ ├── mxnet │ │ ├── base │ │ │ └── ubuntu-18.04 │ │ │ │ ├── Dockerfile.cpu.mx_latest │ │ │ │ └── Dockerfile.gpu.mx_latest │ │ ├── build-all.sh │ │ └── cifar10 │ │ │ └── Dockerfile.cifar10.mx_1.5.1 │ │ ├── pytorch │ │ ├── base │ │ │ └── ubuntu-18.04 │ │ │ │ └── Dockerfile.gpu.pytorch_latest │ │ ├── build-all.sh │ │ └── with-cifar10-models │ │ │ ├── cifar10_tutorial.py │ │ │ └── ubuntu-18.04 │ │ │ └── Dockerfile.gpu.pytorch_latest │ │ └── tensorflow │ │ ├── base │ │ └── ubuntu-18.04 │ │ │ ├── Dockerfile.cpu.tf_1.13.1 │ │ │ └── Dockerfile.gpu.tf_1.13.1 │ │ ├── build-all.sh │ │ ├── mnist │ │ └── Dockerfile.tony.tf.mnist.tf_1.13.1 │ │ ├── with-cifar10-models │ │ └── ubuntu-18.04 │ │ │ ├── Dockerfile.cpu.tf_1.13.1 │ │ │ ├── Dockerfile.gpu.tf_1.13.1 │ │ │ └── cifar10_estimator_tf_1.13.1 │ │ │ ├── README.md │ │ │ ├── cifar10.py │ │ │ ├── cifar10_main.py │ │ │ ├── cifar10_model.py │ │ │ ├── cifar10_utils.py │ │ │ ├── generate_cifar10_tfrecords.py │ │ │ └── model_base.py │ │ └── zeppelin-notebook-example │ │ ├── Dockerfile.gpu │ │ ├── run_container.sh │ │ ├── shiro.ini │ │ └── zeppelin-site.xml ├── version-0.7.0 │ ├── api │ │ ├── environment.md │ │ ├── experiment-template.md │ │ ├── experiment.md │ │ ├── model-version.md │ │ ├── notebook.md │ │ ├── register-model.md │ │ └── serve.md │ ├── community │ │ ├── Bylaws.md │ │ ├── HowToBecomeCommitter.md │ │ ├── HowToCommit.md │ │ ├── HowToVoteCommitterOrPMC.md │ │ ├── README.md │ │ ├── Resources.md │ │ └── contributing.md │ ├── designDocs │ │ ├── architecture-and-requirements.md │ │ ├── environments-implementation.md │ │ ├── experiment-implementation.md │ │ ├── implementation-notes.md │ │ ├── notebook-implementation.md │ │ ├── storage-implementation.md │ │ ├── submarine-server │ │ │ ├── architecture.md │ │ │ └── experimentSpec.md │ │ └── wip-designs │ │ │ ├── security-implementation.md │ │ │ ├── submarine-clusterServer.md │ │ │ └── submarine-launcher.md │ ├── devDocs │ │ ├── BuildFromCode.md │ │ ├── Dependencies.md │ │ ├── Development.md │ │ ├── HowToRelease.md │ │ ├── HowToVerify.md │ │ ├── IntegrationTestE2E.md │ │ ├── IntegrationTestK8s.md │ │ └── README.md │ ├── download.md │ ├── gettingStarted │ │ ├── helm.md │ │ ├── notebook.md │ │ ├── python-sdk.md │ │ └── quickstart.md │ └── userDocs │ │ ├── others │ │ ├── mlflow.md │ │ └── tensorboard.md │ │ └── submarine-sdk │ │ ├── README.md │ │ ├── experiment-client.md │ │ ├── pysubmarine │ │ └── development.md │ │ ├── submarine-cli.md │ │ ├── submarine-client.md │ │ └── tracking.md └── version-0.8.0 │ ├── api │ ├── environment.md │ ├── experiment-template.md │ ├── experiment.md │ ├── model-version.md │ ├── notebook.md │ ├── register-model.md │ └── serve.md │ ├── community │ ├── Bylaws.md │ ├── HowToBecomeCommitter.md │ ├── HowToCommit.md │ ├── HowToVoteCommitterOrPMC.md │ ├── README.md │ ├── Resources.md │ └── contributing.md │ ├── designDocs │ ├── architecture-and-requirements.md │ ├── environments-implementation.md │ ├── experiment-implementation.md │ ├── implementation-notes.md │ ├── notebook-implementation.md │ ├── storage-implementation.md │ ├── submarine-server │ │ ├── architecture.md │ │ └── experimentSpec.md │ └── wip-designs │ │ ├── security-implementation.md │ │ └── submarine-launcher.md │ ├── devDocs │ ├── BuildFromCode.md │ ├── Dependencies.md │ ├── Development.md │ ├── HowToRelease.md │ ├── HowToVerify.md │ ├── IntegrationTestE2E.md │ ├── IntegrationTestK8s.md │ └── README.md │ ├── download.md │ ├── gettingStarted │ ├── helm.md │ ├── notebook.md │ ├── python-sdk.md │ └── quickstart.md │ └── userDocs │ ├── others │ ├── mlflow.md │ └── tensorboard.md │ └── submarine-sdk │ ├── README.md │ ├── experiment-client.md │ ├── pysubmarine │ └── development.md │ ├── submarine-cli.md │ ├── submarine-client.md │ └── tracking.md ├── versioned_sidebars ├── version-0.6.0-sidebars.json ├── version-0.7.0-sidebars.json └── version-0.8.0-sidebars.json ├── versions.json ├── versionsReleaseNoteOnly.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | # tab indentation (no size specified) 13 | [{Makefile,go.mod,go.sum,*.go}] 14 | indent_style = tab 15 | 16 | # 2 space indentation 17 | [*.{sh,json,xml}] 18 | indent_style = space 19 | indent_size = 2 20 | 21 | # 4 space indentation 22 | [*.{py,R,js}] 23 | indent_style = space 24 | indent_size = 4 25 | 26 | # Don't enforce indent size for java. maven check-style will handle other styles 27 | [*.java] 28 | indent_style = space 29 | max_line_length = 110 30 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | [flake8] 19 | max-line-length = 110 20 | extend-ignore = E203 # https://black.readthedocs.io/en/stable/faq.html#why-are-flake8-s-e203-and-w503-violated 21 | -------------------------------------------------------------------------------- /dev-support/examples/mnist-pytorch/DDP/readme.md: -------------------------------------------------------------------------------- 1 | # Pytorch DistributedDataParallel(DDP) Example 2 | 3 | ## Usage 4 | 5 | This is an easy mnist example of how to train a distributed pytorch model using DistributedDataParallel(DDP) method and track the metric and paramater in submarine-sdk. 6 | 7 | ## How to execute 8 | 9 | 0. Set up (for a single terminal, only need to do this one time) 10 | 11 | ```bash 12 | eval $(minikube -p minikube docker-env) 13 | ``` 14 | 15 | 1. Build the docker image 16 | 17 | ```bash 18 | ./dev-support/examples/mnist-pytorch/DDP/build.sh 19 | ``` 20 | 21 | 2. Submit a post request 22 | 23 | ```bash 24 | ./dev-support/examples/mnist-pytorch/DDP/post.sh 25 | ``` 26 | -------------------------------------------------------------------------------- /dev-support/examples/mnist-tensorflow/MirroredStrategy/readme.md: -------------------------------------------------------------------------------- 1 | # TF MirroredStrategy Example 2 | 3 | ## Usage 4 | 5 | This is an easy mnist example of how to train a distributed tensorflow model using MirroredStrategy and track the metric and paramater in submarine-sdk. 6 | 7 | ## How to execute 8 | 9 | 0. Set up (for a single terminal, only need to do this one time) 10 | 11 | ```bash 12 | eval $(minikube -p minikube docker-env) 13 | ``` 14 | 15 | 1. Build the docker image 16 | 17 | ```bash 18 | ./dev-support/examples/mnist-tensorflow/MirroredStrategy/build.sh 19 | ``` 20 | 21 | 2. Submit a post request 22 | 23 | ```bash 24 | ./dev-support/examples/mnist-tensorflow/MirroredStrategy/post.sh 25 | ``` 26 | -------------------------------------------------------------------------------- /dev-support/examples/mnist-tensorflow/MultiWorkerMirroredStrategy/readme.md: -------------------------------------------------------------------------------- 1 | # TF MultiWorkerMirroredStrategy Example 2 | 3 | ## Usage 4 | 5 | This is an easy mnist example of how to train a distributed tensorflow model using MultiWorkerMirroredStrategy and track the metric in submarine-sdk. 6 | 7 | ## How to execute 8 | 9 | 0. Set up (for a single terminal, only need to do this one time) 10 | 11 | ```bash 12 | eval $(minikube -p minikube docker-env) 13 | ``` 14 | 15 | 1. Build the docker image 16 | 17 | ```bash 18 | ./dev-support/examples/mnist-tensorflow/MultiWorkerMirroredStrategy/build.sh 19 | ``` 20 | 21 | 2. Submit a post request 22 | 23 | ```bash 24 | ./dev-support/examples/mnist-tensorflow/MultiWorkerMirroredStrategy/post.sh 25 | ``` 26 | -------------------------------------------------------------------------------- /dev-support/examples/mnist-tensorflow/ParameterServerStrategy/readme.md: -------------------------------------------------------------------------------- 1 | # TF ParameterServerStrategy Example (Beta) 2 | 3 | ## Usage 4 | 5 | This is an easy mnist example of how to train a distributed tensorflow model using ParameterServerStrategy and track the metric and paramater in submarine-sdk. 6 | 7 | ## How to execute 8 | 9 | 0. Set up (for a single terminal, only need to do this one time) 10 | 11 | ```bash 12 | eval $(minikube -p minikube docker-env) 13 | ``` 14 | 15 | 1. Build the docker image 16 | 17 | ```bash 18 | ./dev-support/examples/mnist-tensorflow/ParameterServerStrategy/build.sh 19 | ``` 20 | 21 | 2. Submit a post request 22 | 23 | ```bash 24 | ./dev-support/examples/mnist-tensorflow/ParameterServerStrategy/post.sh 25 | ``` 26 | -------------------------------------------------------------------------------- /dev-support/examples/nn-pytorch/readme.md: -------------------------------------------------------------------------------- 1 | # Save_model Example 2 | 3 | ## Usage 4 | 5 | This is an easy example of saving a pytorch linear model to model registry. 6 | 7 | ## How to execute 8 | 9 | 1. Build the docker image 10 | 11 | ```bash 12 | ./dev-support/examples/nn-pytorch/build.sh 13 | ``` 14 | 15 | 2. Submit a post request 16 | 17 | ```bash 18 | ./dev-support/examples/nn-pytorch/post.sh 19 | ``` 20 | -------------------------------------------------------------------------------- /dev-support/examples/tracking/Dockerfile: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | FROM python:3.7 17 | MAINTAINER Apache Software Foundation 18 | 19 | ADD ./tmp/submarine-sdk /opt/ 20 | RUN pip install /opt/pysubmarine 21 | 22 | ADD ./tracking.py /opt/ -------------------------------------------------------------------------------- /dev-support/examples/tracking/readme.md: -------------------------------------------------------------------------------- 1 | # Tracking Example 2 | 3 | ## Usage 4 | This is an easy example of how to track the metric and paramater in submarine-sdk. Basically, the sdk will detect which experiment and worker-id are you at, and log your data to the corresponding place. 5 | 6 | For example, you start an experiment with 3 workers. Suppose the experiment is assigned with an ID `experiment_12345678`, and the operator launches 3 pods with worker_id `worker-0`, `worker-1` and `worker-2` respectively. 7 | 8 | The logging of `worker-i` will be directed to `experiment_12345678` / `worker-i` in the submarine server 9 | 10 | ## How to execute 11 | 12 | 1. Build the docker image 13 | 14 | ```bash 15 | ./dev-support/examples/tracking/build.sh 16 | ``` 17 | 18 | 2. Submit a post request 19 | 20 | ```bash 21 | ./dev-support/examples/tracking/post.sh 22 | ``` 23 | -------------------------------------------------------------------------------- /dev-support/k8s/notebook-controller/cluster-role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: role-binding 5 | roleRef: 6 | apiGroup: rbac.authorization.k8s.io 7 | kind: ClusterRole 8 | name: role 9 | subjects: 10 | - kind: ServiceAccount 11 | name: service-account 12 | -------------------------------------------------------------------------------- /dev-support/k8s/notebook-controller/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: deployment 5 | spec: 6 | template: 7 | metadata: 8 | annotations: 9 | sidecar.istio.io/inject: "false" 10 | spec: 11 | containers: 12 | - name: manager 13 | image: apache/submarine:notebook-controller-v1.1.0-g253890cb 14 | command: 15 | - /manager 16 | imagePullPolicy: IfNotPresent 17 | livenessProbe: 18 | httpGet: 19 | path: /metrics 20 | port: 8080 21 | initialDelaySeconds: 30 22 | periodSeconds: 30 23 | serviceAccountName: service-account 24 | -------------------------------------------------------------------------------- /dev-support/k8s/notebook-controller/deployment_patch.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: deployment 5 | spec: 6 | template: 7 | spec: 8 | containers: 9 | - name: manager 10 | env: 11 | # We use a patch to set the USE_ISTIO because in other patches 12 | # we want to set it to a configMapRef and so if we include the value 13 | # in the base when we do the merge we end up with 2 fields setting the value. 14 | - name: USE_ISTIO 15 | value: "false" -------------------------------------------------------------------------------- /dev-support/k8s/notebook-controller/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: service-account 5 | -------------------------------------------------------------------------------- /dev-support/k8s/notebook-controller/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: service 5 | spec: 6 | ports: 7 | - port: 443 8 | -------------------------------------------------------------------------------- /dev-support/k8s/pytorchjob/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | #apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: pytorch-operator 6 | namespace: default 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | name: pytorch-operator 12 | template: 13 | metadata: 14 | labels: 15 | name: pytorch-operator 16 | spec: 17 | containers: 18 | - command: 19 | - /pytorch-operator.v1 20 | - --alsologtostderr 21 | - -v=1 22 | - --monitoring-port=8443 23 | env: 24 | - name: MY_POD_NAMESPACE 25 | valueFrom: 26 | fieldRef: 27 | fieldPath: metadata.namespace 28 | - name: MY_POD_NAME 29 | valueFrom: 30 | fieldRef: 31 | fieldPath: metadata.name 32 | image: apache/submarine:pytorch-operator-v1.1.0-gd596e904 33 | name: pytorch-operator 34 | serviceAccountName: pytorch-operator 35 | -------------------------------------------------------------------------------- /dev-support/k8s/pytorchjob/namespace.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: submarine 5 | -------------------------------------------------------------------------------- /dev-support/k8s/pytorchjob/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | prometheus.io/path: /metrics 6 | prometheus.io/port: "8443" 7 | prometheus.io/scrape: "true" 8 | labels: 9 | app: pytorch-operator 10 | name: pytorch-operator 11 | namespace: default 12 | spec: 13 | ports: 14 | - name: monitoring-port 15 | port: 8443 16 | targetPort: 8443 17 | selector: 18 | name: pytorch-operator 19 | type: ClusterIP 20 | -------------------------------------------------------------------------------- /dev-support/k8s/tfjob/operator/cluster-role-binding.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: rbac.authorization.k8s.io/v1beta1 3 | kind: ClusterRoleBinding 4 | metadata: 5 | labels: 6 | app: tf-job-operator 7 | name: tf-job-operator 8 | roleRef: 9 | apiGroup: rbac.authorization.k8s.io 10 | kind: ClusterRole 11 | name: tf-job-operator 12 | subjects: 13 | - kind: ServiceAccount 14 | name: tf-job-operator 15 | -------------------------------------------------------------------------------- /dev-support/k8s/tfjob/operator/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: tf-job-operator 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: tf-job-operator 12 | annotations: 13 | sidecar.istio.io/inject: "false" 14 | spec: 15 | containers: 16 | - args: 17 | - --alsologtostderr 18 | - -v=1 19 | - --monitoring-port=8443 20 | env: 21 | - name: MY_POD_NAMESPACE 22 | valueFrom: 23 | fieldRef: 24 | fieldPath: metadata.namespace 25 | - name: MY_POD_NAME 26 | valueFrom: 27 | fieldRef: 28 | fieldPath: metadata.name 29 | image: apache/submarine:tf_operator-v1.1.0-g92389064 30 | name: tf-job-operator 31 | serviceAccountName: tf-job-operator 32 | -------------------------------------------------------------------------------- /dev-support/k8s/tfjob/operator/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | namespace: default 4 | resources: 5 | - cluster-role-binding.yaml 6 | - cluster-role.yaml 7 | - deployment.yaml 8 | - service-account.yaml 9 | - service.yaml 10 | commonLabels: 11 | kustomize.component: tf-job-operator 12 | images: 13 | - name: apache/submarine 14 | newName: apache/submarine 15 | newTag: tf_operator-v1.1.0-g92389064 16 | -------------------------------------------------------------------------------- /dev-support/k8s/tfjob/operator/service-account.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | labels: 6 | app: tf-job-dashboard 7 | name: tf-job-dashboard 8 | --- 9 | apiVersion: v1 10 | kind: ServiceAccount 11 | metadata: 12 | labels: 13 | app: tf-job-operator 14 | name: tf-job-operator 15 | -------------------------------------------------------------------------------- /dev-support/k8s/tfjob/operator/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | annotations: 6 | prometheus.io/path: /metrics 7 | prometheus.io/scrape: "true" 8 | prometheus.io/port: "8443" 9 | labels: 10 | app: tf-job-operator 11 | name: tf-job-operator 12 | spec: 13 | ports: 14 | - name: monitoring-port 15 | port: 8443 16 | targetPort: 8443 17 | selector: 18 | name: tf-job-operator 19 | type: ClusterIP 20 | -------------------------------------------------------------------------------- /dev-support/k8s/traefik/service-account.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | apiVersion: v1 19 | kind: ServiceAccount 20 | metadata: 21 | name: traefik-ingress-controller 22 | -------------------------------------------------------------------------------- /dev-support/kind-config.yaml: -------------------------------------------------------------------------------- 1 | kind: Cluster 2 | apiVersion: kind.x-k8s.io/v1alpha4 3 | nodes: 4 | - role: control-plane 5 | kubeadmConfigPatches: 6 | - | 7 | kind: InitConfiguration 8 | nodeRegistration: 9 | kubeletExtraArgs: 10 | node-labels: "ingress-ready=true" 11 | authorization-mode: "AlwaysAllow" 12 | extraPortMappings: 13 | - containerPort: 32080 14 | hostPort: 32080 15 | protocol: TCP 16 | - containerPort: 443 17 | hostPort: 443 18 | protocol: TCP 19 | extraMounts: 20 | - hostPath: /mnt/data 21 | containerPath: /submarine 22 | 23 | -------------------------------------------------------------------------------- /dev-support/mini-submarine/conf/exclude-nodes.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | -------------------------------------------------------------------------------- /dev-support/mini-submarine/conf/excludeNodes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/mini-submarine/conf/excludeNodes.txt -------------------------------------------------------------------------------- /dev-support/mini-submarine/conf/include-nodes.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | -------------------------------------------------------------------------------- /dev-support/mini-submarine/conf/slaves: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | localhost 17 | -------------------------------------------------------------------------------- /dev-support/mini-submarine/conf/tony.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /dev-support/misc/flask/readme.md: -------------------------------------------------------------------------------- 1 | ## Lightweight flask server image 2 | 3 | An lightweight flask server for debugging the connectivity in the cluster -------------------------------------------------------------------------------- /dev-support/proto/README.md: -------------------------------------------------------------------------------- 1 | 14 | 15 | ### installation 16 | ``` 17 | export PROTOC_VERSION=3.14.0 18 | wget https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip 19 | unzip protoc-${PROTOC_VERSION}-linux-x86_64.zip -d $HOME/.local 20 | export PATH="$PATH:$HOME/.local/bin" 21 | ``` 22 | 23 | ### generate the protobuf API 24 | ``` 25 | ./dev-support/proto/gen-proto.sh 26 | ``` 27 | -------------------------------------------------------------------------------- /dev-support/proto/license-header.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /dev-support/pysubmarine/license-header.ts.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /dev-support/pysubmarine/license-header.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | -------------------------------------------------------------------------------- /dev-support/pysubmarine/swagger_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageName" : "submarine.client", 3 | "projectName" : "submarine.client", 4 | "packageVersion": "0.9.0-SNAPSHOT" 5 | } 6 | -------------------------------------------------------------------------------- /dev-support/style-check/python/lint-requirements.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | black[jupyter]==22.8.0 17 | click==8.1.3 18 | flake8==5.0.4 19 | isort==5.10.1 20 | -------------------------------------------------------------------------------- /dev-support/style-check/python/mypy-requirements.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | mypy 17 | sqlalchemy[mypy]<2.0.0 18 | types-certifi 19 | types-python-dateutil 20 | types-PyYAML 21 | types-requests 22 | types-six -------------------------------------------------------------------------------- /dev-support/submarine-installer/assets/submarine-installer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/submarine-installer/assets/submarine-installer.gif -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/calico/calicoctl.cfg: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | apiVersion: v1 18 | kind: calicoApiConfig 19 | metadata: 20 | spec: 21 | datastoreType: "etcdv2" 22 | etcdEndpoints: ETCD_ENDPOINTS_REPLACE -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/etc: -------------------------------------------------------------------------------- 1 | etc_secure/ -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/etc_insecure/hadoop/resource-types.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | yarn.resource-types 4 | yarn.io/gpu 5 | 6 | 7 | -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/etc_secure/hadoop/resource-types.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | yarn.resource-types 4 | yarn.io/gpu 5 | 6 | 7 | -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.a -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so.0 -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so.0.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/dev-support/submarine-installer/package/hadoop/yarn/lib/native/libgplcompression.so.0.0.0 -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/sbin/start-mr-jobhistory.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | 18 | cd `dirname $0` 19 | common_bin=`pwd` 20 | YARN_LOGFILE=mr-jobhistory.log ${common_bin}/mr-jobhistory-daemon.sh start historyserver 21 | -------------------------------------------------------------------------------- /dev-support/submarine-installer/package/hadoop/yarn/sbin/stop-mr-jobhistory.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | 18 | cd `dirname $0` 19 | common_bin=`pwd` 20 | YARN_LOGFILE=mr-jobhistory.log ${common_bin}/mr-jobhistory-daemon.sh stop historyserver 21 | -------------------------------------------------------------------------------- /helm-charts/submarine/charts/notebook-controller/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | apiVersion: v1 18 | kind: ServiceAccount 19 | metadata: 20 | name: notebook-controller-service-account 21 | labels: 22 | app: notebook-controller 23 | -------------------------------------------------------------------------------- /helm-charts/submarine/charts/training-operator/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | apiVersion: v1 19 | kind: ServiceAccount 20 | metadata: 21 | labels: 22 | app: training-operator 23 | name: training-operator 24 | -------------------------------------------------------------------------------- /helm-charts/submarine/templates/storageclass.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | apiVersion: storage.k8s.io/v1 19 | kind: StorageClass 20 | metadata: 21 | name: submarine-storageclass 22 | {{- template "storageClass.fields" . }} 23 | 24 | -------------------------------------------------------------------------------- /submarine-client/src/test/resources/core-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /submarine-client/src/test/resources/hdfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /submarine-cloud-v2/artifacts/submarine/submarine-observer-rbac.yaml: -------------------------------------------------------------------------------- 1 | # Source: submarine/templates/rbac.yaml 2 | apiVersion: rbac.authorization.k8s.io/v1 3 | kind: Role 4 | metadata: 5 | name: "submarine-observer" 6 | rules: 7 | - apiGroups: 8 | - kubeflow.org 9 | resources: 10 | - tfjobs 11 | - tfjobs/status 12 | - pytorchjobs 13 | - pytorchjobs/status 14 | - xgboostjobs 15 | - xgboostjobs/status 16 | - notebooks 17 | - notebooks/status 18 | verbs: 19 | - get 20 | - list 21 | - watch 22 | - apiGroups: 23 | - "" 24 | resources: 25 | - pods 26 | - pods/log 27 | - services 28 | - persistentvolumeclaims 29 | - events 30 | - configmaps 31 | verbs: 32 | - get 33 | - list 34 | - watch 35 | --- 36 | kind: RoleBinding 37 | apiVersion: rbac.authorization.k8s.io/v1 38 | metadata: 39 | name: "submarine-observer" 40 | subjects: 41 | - kind: ServiceAccount 42 | name: "default" 43 | roleRef: 44 | kind: Role 45 | name: "submarine-observer" 46 | apiGroup: rbac.authorization.k8s.io 47 | -------------------------------------------------------------------------------- /submarine-cloud-v2/hack/boilerplate.go.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/apis/submarine/v1alpha1/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | // +k8s:deepcopy-gen=package 18 | // +groupName=submarine.apache.org 19 | 20 | package v1alpha1 21 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/client/clientset/versioned/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // Code generated by client-gen. DO NOT EDIT. 19 | 20 | // This package has the automatically generated clientset. 21 | package versioned 22 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/client/clientset/versioned/fake/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // Code generated by client-gen. DO NOT EDIT. 19 | 20 | // This package has the automatically generated fake clientset. 21 | package fake 22 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/client/clientset/versioned/scheme/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // Code generated by client-gen. DO NOT EDIT. 19 | 20 | // This package contains the scheme of the automatically generated clientset. 21 | package scheme 22 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/controller/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | // Package controller implements the controller for submarine applications 19 | package controller 20 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/signals/signal_posix.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package signals 19 | 20 | import ( 21 | "os" 22 | "syscall" 23 | ) 24 | 25 | var shutdownSignals = []os.Signal{os.Interrupt, syscall.SIGTERM} 26 | -------------------------------------------------------------------------------- /submarine-cloud-v2/pkg/signals/signal_windows.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package signals 19 | 20 | import ( 21 | "os" 22 | ) 23 | 24 | var shutdownSignals = []os.Signal{os.Interrupt} 25 | -------------------------------------------------------------------------------- /submarine-cloud-v3/.dockerignore: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | 19 | # More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file 20 | # Ignore build and test binaries. 21 | bin/ 22 | testbin/ 23 | -------------------------------------------------------------------------------- /submarine-cloud-v3/config/prometheus/kustomization.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | resources: 19 | - monitor.yaml 20 | -------------------------------------------------------------------------------- /submarine-cloud-v3/config/rbac/service_account.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | apiVersion: v1 19 | kind: ServiceAccount 20 | metadata: 21 | name: controller-manager 22 | namespace: system 23 | -------------------------------------------------------------------------------- /submarine-cloud-v3/config/samples/kustomization.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | ## Append samples you want in your CSV to this file as resources ## 19 | resources: 20 | - _v1_submarine.yaml 21 | #+kubebuilder:scaffold:manifestskustomizesamples 22 | -------------------------------------------------------------------------------- /submarine-cloud-v3/config/scorecard/bases/config.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | apiVersion: scorecard.operatorframework.io/v1alpha3 19 | kind: Configuration 20 | metadata: 21 | name: config 22 | stages: 23 | - parallel: true 24 | tests: [] 25 | -------------------------------------------------------------------------------- /submarine-cloud-v3/hack/boilerplate.go.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | -------------------------------------------------------------------------------- /submarine-cloud-v3/hack/boilerplate.yaml.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | -------------------------------------------------------------------------------- /submarine-commons/commons-utils/src/main/resources/submarine.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, 13 | # software distributed under the License is distributed on an 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | # KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations 17 | # under the License. 18 | # 19 | 20 | project.version=${project.version} 21 | -------------------------------------------------------------------------------- /submarine-experiment-prehandler/fs_prehandler/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from fs_prehandler.fs_prehandler import FsPreHandler # noqa: F401 17 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/deepfm.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["./data/tr.libsvm"], 4 | "valid_data": ["./data/va.libsvm"], 5 | "test_data": ["./data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "./experiment", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "batch_norm_decay": 0.9, 20 | "l2_reg": 0.0001, 21 | "deep_layers": [400, 400, 400], 22 | "dropout": [0.3, 0.3, 0.3], 23 | "batch_norm": false, 24 | "optimizer": "adam", 25 | "log_steps": 10, 26 | "seed": 77, 27 | "mode": "local" 28 | }, 29 | "resource": { 30 | "num_cpu": 4, 31 | "num_gpu": 0, 32 | "num_thread": 0 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/tensorflow/ccpm/ccpm.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["../../data/tr.libsvm"], 4 | "valid_data": ["../../data/va.libsvm"], 5 | "test_data": ["../../data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "./experiment", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "batch_norm_decay": 0.9, 20 | "l2_reg": 0.0001, 21 | "deep_layers": [400, 400, 400], 22 | "conv_kernel_width": [6,5], 23 | "conv_filters": [4,4], 24 | "dropout": [0.3, 0.3, 0.3], 25 | "batch_norm": false, 26 | "optimizer": "adam", 27 | "log_steps": 10, 28 | "seed": 77, 29 | "mode": "local" 30 | }, 31 | "resource": { 32 | "num_cpu": 4, 33 | "num_gpu": 0, 34 | "num_thread": 0 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/tensorflow/deepfm/deepfm.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["../../data/tr.libsvm"], 4 | "valid_data": ["../../data/va.libsvm"], 5 | "test_data": ["../../data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "./experiment", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "batch_norm_decay": 0.9, 20 | "l2_reg": 0.0001, 21 | "deep_layers": [400, 400, 400], 22 | "dropout": [0.3, 0.3, 0.3], 23 | "batch_norm": false, 24 | "optimizer": "adam", 25 | "log_steps": 10, 26 | "seed": 77, 27 | "mode": "local" 28 | }, 29 | "resource": { 30 | "num_cpu": 4, 31 | "num_gpu": 0, 32 | "num_thread": 0 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/tensorflow/deepfm/deepfm_distributed.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["hdfs:///user/submarine/data/tr.libsvm"], 4 | "valid_data": ["hdfs:///user/submarine/data/va.libsvm"], 5 | "test_data": ["hdfs:///user/submarine/data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "hdfs:///user/submarine/deepfm", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "batch_norm_decay": 0.9, 20 | "l2_reg": 0.0001, 21 | "deep_layers": [400, 400, 400], 22 | "dropout": [0.3, 0.3, 0.3], 23 | "batch_norm": false, 24 | "optimizer": "adam", 25 | "log_steps": 10, 26 | "seed": 77, 27 | "mode": "distributed" 28 | }, 29 | "resource": { 30 | "num_cpu": 4, 31 | "num_gpu": 0, 32 | "num_thread": 0 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/tensorflow/fm/fm.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["../../data/tr.libsvm"], 4 | "valid_data": ["../../data/va.libsvm"], 5 | "test_data": ["../../data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "./experiment", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "l2_reg": 0.0001, 20 | "optimizer": "adam", 21 | "log_steps": 10, 22 | "seed": 77, 23 | "mode": "local" 24 | }, 25 | "resource": { 26 | "num_cpu": 4, 27 | "num_gpu": 0, 28 | "num_thread": 0 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/example/tensorflow/fm/fm_distributed.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "train_data": ["hdfs:///user/submarine/data/tr.libsvm"], 4 | "valid_data": ["hdfs:///user/submarine/data/va.libsvm"], 5 | "test_data": ["hdfs:///user/submarine/data/te.libsvm"], 6 | "type": "libsvm" 7 | }, 8 | "output": { 9 | "save_model_dir": "hdfs:///user/submarine/deepfm", 10 | "metric": "auc" 11 | }, 12 | "training": { 13 | "batch_size" : 512, 14 | "field_size": 39, 15 | "num_epochs": 3, 16 | "feature_size": 117581, 17 | "embedding_size": 256, 18 | "learning_rate": 0.0005, 19 | "l2_reg": 0.0001, 20 | "optimizer": "adam", 21 | "log_steps": 10, 22 | "seed": 77, 23 | "mode": "distributed" 24 | }, 25 | "resource": { 26 | "num_cpu": 4, 27 | "num_gpu": 0, 28 | "num_thread": 0 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/github-actions/pypi-requirements.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | pip==20.1.1 17 | setuptools==47.3.1 18 | twine==3.1.1 19 | wheel==0.34.2 20 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/pytest.ini: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | [pytest] 19 | markers = 20 | e2e 21 | addopts = -vs --strict-markers --cov submarine --cov-report term-missing 22 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/artifacts/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from submarine.artifacts.repository import Repository 17 | 18 | __all__ = [ 19 | "Repository", 20 | ] 21 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/cli/config/cli_config.yaml: -------------------------------------------------------------------------------- 1 | connection: 2 | hostname: "localhost" 3 | port: 32080 4 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/cli/sandbox/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from submarine.cli.sandbox.command import delete_sandbox, start_sandbox 17 | 18 | __all__ = [ 19 | "start_sandbox", 20 | "delete_sandbox", 21 | ] 22 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/client/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from submarine.client.utils.api_utils import generate_host, get_api_client 17 | 18 | __all__ = [ 19 | "generate_host", 20 | "get_api_client", 21 | ] 22 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/input/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/model/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/model/ctr/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .afm import AFM 17 | from .deepfm import DeepFM 18 | 19 | __all__ = ["DeepFM", "AFM"] 20 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/pytorch/registries.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .input.libsvm_dataset import libsvm_input_fn 17 | 18 | LIBSVM = "libsvm" 19 | 20 | input_fn_registry = {LIBSVM: libsvm_input_fn} 21 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow/input/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .input import libsvm_input_fn 17 | 18 | __all__ = ["libsvm_input_fn"] 19 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow/layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow/model/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .ccpm import CCPM 17 | from .deepfm import DeepFM 18 | from .fm import FM 19 | from .nfm import NFM 20 | 21 | __all__ = ["DeepFM", "FM", "NFM", "CCPM"] 22 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow/registries.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from submarine.ml.tensorflow.input import libsvm_input_fn 17 | 18 | LIBSVM = "libsvm" 19 | 20 | input_fn_registry = {LIBSVM: libsvm_input_fn} 21 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow_v2/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow_v2/input/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .input import libsvm_input_fn 17 | 18 | __all__ = ["libsvm_input_fn"] 19 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow_v2/layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow_v2/model/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .ccpm import CCPM 17 | from .deepfm import DeepFM 18 | from .fm import FM 19 | from .nfm import NFM 20 | 21 | __all__ = ["DeepFM", "FM", "NFM", "CCPM"] 22 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/ml/tensorflow_v2/registries.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from submarine.ml.tensorflow_v2.input import libsvm_input_fn 17 | 18 | LIBSVM = "libsvm" 19 | 20 | input_fn_registry = {LIBSVM: libsvm_input_fn} 21 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/models/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | Unless required by applicable law or agreed to in writing, 11 | software distributed under the License is distributed on an 12 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 13 | KIND, either express or implied. See the License for the 14 | specific language governing permissions and limitations 15 | under the License. 16 | """ 17 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/models/tensorflow.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | def save_model(model, artifact_path: str): 18 | model.save(artifact_path) 19 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/store/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | DEFAULT_SUBMARINE_JDBC_URL = "mysql+pymysql://submarine:password@submarine-database:3306/submarine" 18 | 19 | __all__ = ["DEFAULT_SUBMARINE_JDBC_URL"] 20 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/store/database/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/store/model_registry/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/store/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/submarine/tracking/constant.py: -------------------------------------------------------------------------------- 1 | """ 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | Unless required by applicable law or agreed to in writing, 11 | software distributed under the License is distributed on an 12 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 13 | KIND, either express or implied. See the License for the 14 | specific language governing permissions and limitations 15 | under the License. 16 | """ 17 | 18 | S3_ENDPOINT_URL = "http://submarine-minio-service:9000" 19 | AWS_ACCESS_KEY_ID = "submarine_minio" 20 | AWS_SECRET_ACCESS_KEY = "submarine_minio" 21 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/artifacts/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/ml/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/ml/tensorflow/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/ml/tensorflow/model/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/ml/tensorflow_v2/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/store/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/store/model_registry/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/store/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-sdk/pysubmarine/tests/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /submarine-serve/README.md: -------------------------------------------------------------------------------- 1 | 14 | 15 | # Submarine Serve 16 | 17 | Submarine serve uses istio 1.13.+ (default) and seldon-core 1.10.0 for serving. 18 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/environment/test_env_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-submarine-env", 3 | "dockerImage" : "continuumio/anaconda3", 4 | "kernelSpec" : { 5 | "name" : "team_default_python_3.7", 6 | "channels" : ["defaults"], 7 | "condaDependencies" : 8 | ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0", 9 | "alabaster=0.7.12=py37_0", 10 | "anaconda=2020.02=py37_0", 11 | "anaconda-client=1.7.2=py37_0", 12 | "anaconda-navigator=1.9.12=py37_0"], 13 | "pipDependencies" : 14 | ["apache-submarine==0.5.0", 15 | "pyarrow==0.17.0"] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/environment/test_env_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-submarine-env", 3 | "dockerImage" : "continuumio/miniconda3", 4 | "kernelSpec" : { 5 | "name" : "team_default_python_3.7", 6 | "channels" : ["defaults"], 7 | "condaDependencies" : 8 | ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0"], 9 | "pipDependencies" : [] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/environment/test_env_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-submarine-env", 3 | "dockerImage" : "apache/submarine:jupyter-notebook-0.5.0", 4 | "kernelSpec" : { 5 | "name" : "team_default_python_3.7", 6 | "channels" : ["defaults"], 7 | "condaDependencies" : 8 | ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0"], 9 | "pipDependencies" : [] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/experiment/new_spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tensorflow-dist-mnist-new", 4 | "namespace": "submarine", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV_1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Worker": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/experiment/result.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"tensorflow-dist-mnist", 3 | "uid":"c9f6bf7a-5bc2-11eb-8f96-0242a5374496", 4 | "status":"Created", 5 | "acceptedTime":"2021-01-21T16:29:33.000+08:00", 6 | "createdTime":"2021-01-21T16:29:33.000+08:00" 7 | } 8 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/experiment/spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tensorflow-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | }, 10 | "tags": [ 11 | "default", "stable" 12 | ] 13 | }, 14 | "environment": { 15 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 16 | }, 17 | "spec": { 18 | "Worker": { 19 | "replicas": 1, 20 | "resources": "cpu=1,memory=1024M" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/experiment/status.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"tensorflow-dist-mnist", 3 | "uid":"c9f6bf7a-5bc2-11eb-8f96-0242a5374496", 4 | "status":"Deleted" 5 | } 6 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/experimentTemplate/test_template_1_submit.json: -------------------------------------------------------------------------------- 1 | { 2 | "params" :{ 3 | "experiment_name": "new-test", 4 | "learning_rate": 0.2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed under the Apache License, Version 2.0 (the "License"); 2 | # you may not use this file except in compliance with the License. 3 | # You may obtain a copy of the License at 4 | # 5 | # http://www.apache.org/licenses/LICENSE-2.0 6 | # 7 | # Unless required by applicable law or agreed to in writing, software 8 | # distributed under the License is distributed on an "AS IS" BASIS, 9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | # See the License for the specific language governing permissions and 11 | # limitations under the License. See accompanying LICENSE file. 12 | log4j.rootLogger = info, stdout 13 | 14 | log4j.appender.stdout = org.apache.log4j.ConsoleAppender 15 | log4j.appender.stdout.Target = System.out 16 | log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 17 | log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n 18 | 19 | log4j.logger.org.apache.submarine = debug 20 | log4j.logger.org.pac4j = debug 21 | -------------------------------------------------------------------------------- /submarine-server/server-core/src/test/resources/security/user-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "uid": "oidc_test", 3 | "sub": "677ecaf0-2d94-4fa5-8cc1-f3caecac09f9", 4 | "email_verified": false, 5 | "displayName": "oidc_test", 6 | "name": "oidc_test", 7 | "preferred_username": "oidc_test", 8 | "given_name": "oidc_test", 9 | "family_name": "0", 10 | "userId": "ffa47159-a80c-450c-999a-dd9420d393da", 11 | "policy": "public_read_write_policy" 12 | } 13 | -------------------------------------------------------------------------------- /submarine-server/server-database/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed under the Apache License, Version 2.0 (the "License"); 2 | # you may not use this file except in compliance with the License. 3 | # You may obtain a copy of the License at 4 | # 5 | # http://www.apache.org/licenses/LICENSE-2.0 6 | # 7 | # Unless required by applicable law or agreed to in writing, software 8 | # distributed under the License is distributed on an "AS IS" BASIS, 9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | # See the License for the specific language governing permissions and 11 | # limitations under the License. See accompanying LICENSE file. 12 | log4j.rootLogger = info, stdout 13 | 14 | log4j.appender.stdout = org.apache.log4j.ConsoleAppender 15 | log4j.appender.stdout.Target = System.out 16 | log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 17 | log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n 18 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/discovery-api.json: -------------------------------------------------------------------------------- 1 | {"kind":"APIVersions","versions":["v1"],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0","serverAddress":"192.168.65.3:6443"}]} -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/discovery-apis.json: -------------------------------------------------------------------------------- 1 | {"kind":"APIGroupList","apiVersion":"v1","groups":[]} -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/experiment/pytorch-delete-api.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiVersion": "v1", 3 | "details": { 4 | "group": "kubeflow.org", 5 | "kind": "PyTorchJob", 6 | "name": "experiment-1658656463509-0001", 7 | "uid": "b95d6769-26ff-469c-a346-d5399f543f39" 8 | }, 9 | "kind": "Status", 10 | "metadata": {}, 11 | "status": "Success" 12 | } 13 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/experiment/tf-delete-api.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiVersion": "v1", 3 | "details": { 4 | "group": "kubeflow.org", 5 | "kind": "TFJob", 6 | "name": "experiment-1659167632755-0001", 7 | "uid": "d9b3c2dd-ce17-400a-a4f7-2781294ff3d5" 8 | }, 9 | "kind": "Status", 10 | "metadata": {}, 11 | "status": "Success" 12 | } 13 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/experiment/xgboost-delete-api.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiVersion": "v1", 3 | "details": { 4 | "group": "kubeflow.org", 5 | "kind": "TFJob", 6 | "name": "experiment-1659181695811-0001", 7 | "uid": "2e5a067e-153a-4a29-bee0-4e3ebfefad22" 8 | }, 9 | "kind": "Status", 10 | "metadata": {}, 11 | "status": "Success" 12 | } 13 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/client/notebook/notebook-delete-api.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiVersion": "v1", 3 | "details": { 4 | "group": "kubeflow.org", 5 | "kind": "notebooks", 6 | "name": "notebook-1642402491519-0003-test-notebook", 7 | "uid": "375ac48a-4d90-43bb-a056-a5d857a0d8dc" 8 | }, 9 | "kind": "Status", 10 | "metadata": {}, 11 | "status": "Success" 12 | } 13 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/notebook_req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "my-nb", 4 | "namespace": "default", 5 | "ownerId": "e9ca23d68d884d4ebb19d07889727dae" 6 | }, 7 | "environment": { 8 | "name": "my-submarine-env" 9 | }, 10 | "spec": { 11 | "envVars": { 12 | "env": "env" 13 | }, 14 | "resources": "cpu=1,memory=1Gi" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/pytorch_job_req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "name": "master", 17 | "replicas": 1, 18 | "resources": "cpu=2,memory=2048M" 19 | }, 20 | "Worker": { 21 | "name": "worker", 22 | "replicas": 2, 23 | "resources": "cpu=1,memory=1024M" 24 | } 25 | }, 26 | "experimentHandlerSpec": { 27 | "FILE_SYSTEM_TYPE": "HDFS", 28 | "HDFS_HOST": "127.0.0.1", 29 | "HDFS_PORT": "9000", 30 | "HDFS_SOURCE": "/tmp", 31 | "ENABLE_KERBEROS": "false" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/pytorch_job_req_env.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "name": "my-submarine-env" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "name": "master", 17 | "replicas": 1, 18 | "resources": "cpu=2,memory=2048M" 19 | }, 20 | "Worker": { 21 | "name": "worker", 22 | "replicas": 2, 23 | "resources": "cpu=1,memory=1024M" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/pytorch_job_req_http_git_code_localizer.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "name": "master", 17 | "replicas": 1, 18 | "resources": "cpu=2,memory=2048M" 19 | }, 20 | "Worker": { 21 | "name": "worker", 22 | "replicas": 2, 23 | "resources": "cpu=1,memory=1024M" 24 | } 25 | }, 26 | "code": { 27 | "syncMode": "git", 28 | "git": { 29 | "url" : "https://github.com/apache/submarine.git" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/pytorch_job_req_invalid_env.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "name": "my-submarine-env", 13 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 14 | }, 15 | "spec": { 16 | "Master": { 17 | "name": "master", 18 | "replicas": 1, 19 | "resources": "cpu=2,memory=2048M" 20 | }, 21 | "Worker": { 22 | "name": "worker", 23 | "replicas": 2, 24 | "resources": "cpu=1,memory=1024M" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/pytorch_job_req_ssh_git_code_localizer.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "name": "master", 17 | "replicas": 1, 18 | "resources": "cpu=2,memory=2048M" 19 | }, 20 | "Worker": { 21 | "name": "worker", 22 | "replicas": 2, 23 | "resources": "cpu=1,memory=1024M" 24 | } 25 | }, 26 | "code": { 27 | "syncMode": "git", 28 | "git": { 29 | "url" : "ssh://git@github.com/apache/submarine.git" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_mnist_req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tensorflow-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Ps": { 16 | "replicas": 1, 17 | "resources": "cpu=4,memory=2048M" 18 | }, 19 | "Worker": { 20 | "replicas": 2, 21 | "resources": "cpu=2,memory=1024M,nvidia.com/gpu=1" 22 | } 23 | }, 24 | "experimentHandlerSpec": { 25 | "FILE_SYSTEM_TYPE": "HDFS", 26 | "HDFS_HOST": "127.0.0.1", 27 | "HDFS_PORT": "9000", 28 | "HDFS_SOURCE": "/tmp", 29 | "ENABLE_KERBEROS": "false" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/tf_tfboard_mnist_req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tensorflow-tensorboard-dist-mnist", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/logs/mylog --learning_rate=0.01 --batch_size=20", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Worker": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /submarine-server/server-submitter/submitter-k8s/src/test/resources/xgboost_job_req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "xgboost-dist-mnist", 4 | "namespace": "submarine", 5 | "framework": "XGBoost", 6 | "cmd": "python /opt/mlkube/main.py --job_type=Train --xgboost_parameter=objective:multi:softprob,num_class:3 --n_estimators=10 --learning_rate=0.1", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:xgboost-dist-iris-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "name": "master", 17 | "replicas": 1, 18 | "resources": "cpu=2,memory=2048M" 19 | }, 20 | "Worker": { 21 | "name": "worker", 22 | "replicas": 2, 23 | "resources": "cpu=1,memory=1024M" 24 | } 25 | }, 26 | "experimentHandlerSpec": { 27 | "FILE_SYSTEM_TYPE": "HDFS", 28 | "HDFS_HOST": "127.0.0.1", 29 | "HDFS_PORT": "9000", 30 | "HDFS_SOURCE": "/tmp", 31 | "ENABLE_KERBEROS": "false" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/notebook/notebook-req-2.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "test-nb-2", 4 | "namespace": "default", 5 | "ownerId": "e9ca23d68d884d4ebb19d07889727dae" 6 | }, 7 | "environment": { 8 | "name": "my-submarine-env" 9 | }, 10 | "spec": { 11 | "envVars": { 12 | "TEST_ENV": "test" 13 | }, 14 | "resources": "cpu=1,memory=1.0Gi" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/notebook/notebook-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "test-nb", 4 | "namespace": "default", 5 | "ownerId": "e9ca23d68d884d4ebb19d07889727dae" 6 | }, 7 | "environment": { 8 | "name": "my-submarine-env" 9 | }, 10 | "spec": { 11 | "envVars": { 12 | "TEST_ENV": "test" 13 | }, 14 | "resources": "cpu=1,memory=1.0Gi" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/notebook/notebook-req.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | meta: 3 | name: test-nb 4 | namespace: default 5 | ownerId: e9ca23d68d884d4ebb19d07889727dae 6 | environment: 7 | name: my-submarine-env 8 | spec: 9 | envVars: 10 | TEST_ENV: test 11 | resources: cpu=1,memory=1.0Gi 12 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/pytorch/pt-mnist-patch-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "mnist-json", 4 | "namespace": "default", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | }, 19 | "Worker": { 20 | "replicas": 2, 21 | "resources": "cpu=1,memory=1024M" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/pytorch/pt-mnist-patch-req.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | meta: 3 | name: pytorch-mnist-yaml 4 | namespace: default 5 | framework: PyTorch 6 | cmd: python /var/mnist.py --backend gloo 7 | envVars: 8 | ENV_1: ENV1 9 | environment: 10 | image: apache/submarine:pytorch-dist-mnist-1.0 11 | spec: 12 | Master: 13 | replicas: 1 14 | resources: cpu=1,memory=1024M 15 | Worker: 16 | replicas: s 17 | resources: cpu=1,memory=1024M 18 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/pytorch/pt-mnist-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "pytorch-mnist-json", 4 | "namespace": "default", 5 | "framework": "PyTorch", 6 | "cmd": "python /var/mnist.py --backend gloo", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:pytorch-dist-mnist-1.0" 13 | }, 14 | "spec": { 15 | "Master": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | }, 19 | "Worker": { 20 | "replicas": 1, 21 | "resources": "cpu=1,memory=1024M" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/pytorch/pt-mnist-req.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | meta: 3 | name: pytorch-mnist-yaml 4 | namespace: default 5 | framework: PyTorch 6 | cmd: python /var/mnist.py --backend gloo 7 | envVars: 8 | ENV_1: ENV1 9 | environment: 10 | image: apache/submarine:pytorch-dist-mnist-1.0 11 | spec: 12 | Master: 13 | replicas: 1 14 | resources: cpu=1,memory=1024M 15 | Worker: 16 | replicas: 1 17 | resources: cpu=1,memory=1024M 18 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Worker": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-patch-req.yaml: -------------------------------------------------------------------------------- 1 | meta: 2 | name: "tf-mnist-yaml" 3 | namespace: "default" 4 | framework: "TensorFlow" 5 | cmd: "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150" 6 | envVars: 7 | ENV_1: "ENV1" 8 | environment: 9 | image: "apache/submarine:tf-mnist-with-summaries-1.0" 10 | spec: 11 | Worker: 12 | replicas: 1 13 | resources: "cpu=4,memory=2048M" 14 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Ps": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=512M" 18 | }, 19 | "Worker": { 20 | "replicas": 1, 21 | "resources": "cpu=1,memory=512M" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-req.yaml: -------------------------------------------------------------------------------- 1 | meta: 2 | name: "tf-mnist-yaml" 3 | namespace: "default" 4 | framework: "TensorFlow" 5 | cmd: "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150" 6 | envVars: 7 | ENV_1: "ENV1" 8 | environment: 9 | image: "apache/submarine:tf-mnist-with-summaries-1.0" 10 | spec: 11 | Ps: 12 | replicas: 1 13 | resources: "cpu=1,memory=512M" 14 | Worker: 15 | replicas: 1 16 | resources: "cpu=1,memory=512M" 17 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-patch-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "name": "my-submarine-env" 13 | }, 14 | "spec": { 15 | "Worker": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=1024M" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-env-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0", 13 | "name": "my-submarine-env" 14 | }, 15 | "spec": { 16 | "Ps": { 17 | "replicas": 1, 18 | "resources": "cpu=1,memory=512M" 19 | }, 20 | "Worker": { 21 | "replicas": 1, 22 | "resources": "cpu=1,memory=512M" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-http-git-code-localizer-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Ps": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=512M" 18 | }, 19 | "Worker": { 20 | "replicas": 1, 21 | "resources": "cpu=1,memory=512M" 22 | } 23 | }, 24 | "code": { 25 | "syncMode": "git", 26 | "git": { 27 | "url" : "https://github.com/apache/submarine.git" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /submarine-test/test-k8s/src/test/resources/tensorflow/tf-mnist-with-ssh-git-code-localizer-req.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "name": "tf-mnist-json", 4 | "namespace": "default", 5 | "framework": "TensorFlow", 6 | "cmd": "python /var/tf_mnist/mnist_with_summaries.py --log_dir=/train/log --learning_rate=0.01 --batch_size=150", 7 | "envVars": { 8 | "ENV_1": "ENV1" 9 | } 10 | }, 11 | "environment": { 12 | "image": "apache/submarine:tf-mnist-with-summaries-1.0" 13 | }, 14 | "spec": { 15 | "Ps": { 16 | "replicas": 1, 17 | "resources": "cpu=1,memory=512M" 18 | }, 19 | "Worker": { 20 | "replicas": 1, 21 | "resources": "cpu=1,memory=512M" 22 | } 23 | }, 24 | "code": { 25 | "syncMode": "git", 26 | "git": { 27 | "url" : "ssh://git@github.com/apache/submarine.git" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /submarine-workbench-v2/.gitignore: -------------------------------------------------------------------------------- 1 | coverage/ -------------------------------------------------------------------------------- /submarine-workbench-v2/.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.md 2 | **/*.less 3 | **/*.scss 4 | **/*.svg 5 | -------------------------------------------------------------------------------- /submarine-workbench-v2/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": false, 3 | "printWidth": 120, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "htmlWhitespaceSensitivity": "ignore", 7 | "overrides": [ 8 | { 9 | "files": ".prettierrc", 10 | "options": { 11 | "parser": "json", 12 | "trailingComma": "none" 13 | } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /submarine-workbench-v2/public/logo-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench-v2/public/logo-128.png -------------------------------------------------------------------------------- /submarine-workbench-v2/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench-v2/public/logo.png -------------------------------------------------------------------------------- /submarine-workbench-v2/src/App.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | .app-layout { 21 | transition: padding-left 0.2s; 22 | } -------------------------------------------------------------------------------- /submarine-workbench-v2/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /// 21 | -------------------------------------------------------------------------------- /submarine-workbench-v2/tests/setup.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | import "@testing-library/jest-dom"; 21 | 22 | // react 18 env variable 23 | // globalThis.IS_REACT_ACT_ENVIRONMENT = true; 24 | -------------------------------------------------------------------------------- /submarine-workbench-v2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@submarine/*": ["./src/*"], 6 | "@submarine-test/*": ["./tests/*"] 7 | }, 8 | "target": "ESNext", 9 | "useDefineForClassFields": true, 10 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 11 | "allowJs": false, 12 | "skipLibCheck": false, 13 | "esModuleInterop": false, 14 | "allowSyntheticDefaultImports": true, 15 | "strict": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "module": "ESNext", 18 | "moduleResolution": "Node", 19 | "resolveJsonModule": true, 20 | "isolatedModules": true, 21 | "noEmit": true, 22 | "jsx": "react-jsx" 23 | }, 24 | "include": ["src", "tests"], 25 | "references": [{ "path": "./tsconfig.node.json" }] 26 | } 27 | -------------------------------------------------------------------------------- /submarine-workbench-v2/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "esnext", 5 | "moduleResolution": "node" 6 | }, 7 | "include": ["vite.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /submarine-workbench/interpreter/spark-interpreter/src/test/resources/hive-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | hive.metastore.warehouse.dir 4 | ${user.home}/hive/warehouse 5 | location of default database for the warehouse 6 | 7 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | end_of_line=lf 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events*.json 15 | speed-measure-plugin*.json 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | .c9/ 22 | *.launch 23 | .settings/ 24 | *.sublime-workspace 25 | 26 | # IDE - VSCode 27 | .vscode/* 28 | !.vscode/settings.json 29 | !.vscode/tasks.json 30 | !.vscode/launch.json 31 | !.vscode/extensions.json 32 | .history/* 33 | 34 | # misc 35 | /.sass-cache 36 | /connect.lock 37 | /coverage 38 | /libpeerconnection.log 39 | npm-debug.log 40 | yarn-error.log 41 | testem.log 42 | /typings 43 | 44 | # System Files 45 | .DS_Store 46 | Thumbs.db 47 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.md 2 | **/*.less 3 | **/*.scss 4 | **/*.svg 5 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "printWidth": 120, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "htmlWhitespaceSensitivity": "ignore", 7 | "overrides": [ 8 | { 9 | "files": ".prettierrc", 10 | "options": { 11 | "parser": "json", 12 | "trailingComma": "none" 13 | } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/LICENSE: -------------------------------------------------------------------------------- 1 | Licensed to the Apache Software Foundation (ASF) under one 2 | or more contributor license agreements. See the NOTICE file 3 | distributed with this work for additional information 4 | regarding copyright ownership. The ASF licenses this file 5 | to you under the Apache License, Version 2.0 (the 6 | "License"); you may not use this file except in compliance 7 | with the License. You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, 12 | software distributed under the License is distributed on an 13 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | KIND, either express or implied. See the License for the 15 | specific language governing permissions and limitations 16 | under the License. 17 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | .app-layout { 21 | height: 100vh; 22 | } 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/components/page-layout/page-layout.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/core/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export * from './public-api'; 21 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/core/public-api.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export * from './auth/auth.guard'; 21 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/action.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export interface Action { 21 | action: string; 22 | defaultCheck: boolean; 23 | describe: string; 24 | } 25 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/experiment-template-submit.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export interface ExperimentTemplateSubmit { 21 | params: { [key: string]: string }; 22 | } 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export * from './public-api'; 21 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/mlflow-info.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export interface MlflowInfo { 21 | available: boolean; 22 | url: string; 23 | } 24 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/model-serve.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export interface ServeSpec { 21 | id: number, 22 | modelName: string, 23 | modelVersion: number, 24 | } 25 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/interfaces/tensorboard-info.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export interface TensorboardInfo { 21 | available: boolean; 22 | url: string; 23 | } 24 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/user/register/register.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | [nz-form] { 21 | max-width: 600px; 22 | } 23 | 24 | .register-area { 25 | margin-bottom: 8px; 26 | } 27 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/environment/environment-home/environment-form/environment-form.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/environment/environment-home/environment-home.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/environment/environment.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-home.component.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-home/experiment-list/experiment-list.component.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/experiment/experiment-info/artifacts/register-model-form/register-model-form.component.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/home/home.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | p { 21 | margin: 0; 22 | } 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/interpreter/interpreter-add-modal/interpreter-add-modal.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/manager/data-dict-config-modal/data-dict-config-modal.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | .dictItem-table-operate { 21 | margin-bottom: 16px; 22 | } 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/manager/data-dict-modal/data-dict-modal.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/manager/manager.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/manager/user-password-modal/user-password-modal.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/model/model-home/model-cards/model-cards.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/model/model-home/model-form/model-form.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/model/model-home/model-home.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/model/model-version/model-version.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/model/model.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-home.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook-home/notebook-list/notebook-list.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/notebook/notebook.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/template/template-home/template-home.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/template/template-home/template-list/template-list.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/template/template-info/template-info.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/pages/workbench/template/template.component.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/app/services/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export * from './public-api'; 21 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench/workbench-web/src/assets/.gitkeep -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/assets/logo-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench/workbench-web/src/assets/logo-128.png -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench/workbench-web/src/assets/logo.png -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/assets/security/provider.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | (function () { 21 | window.GLOBAL_CONFIG = { 22 | "type": "simple" 23 | }; 24 | })(); 25 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export const environment = { 21 | production: true 22 | }; 23 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/submarine-workbench/workbench-web/src/favicon.ico -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/styles.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /* You can add global styles to this file, and also import other style files */ 21 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/src/types/index.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | export {}; 21 | 22 | declare global { 23 | interface Window { 24 | GLOBAL_CONFIG: { 25 | type: string 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.ts" 13 | ], 14 | "exclude": [ 15 | "src/test.ts", 16 | "src/**/*.spec.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "paths": { 6 | "@submarine/*": [ 7 | "./src/app/*", 8 | "./src/environments/*" 9 | ] 10 | }, 11 | "outDir": "./dist/out-tsc", 12 | "sourceMap": true, 13 | "declaration": false, 14 | "downlevelIteration": true, 15 | "experimentalDecorators": true, 16 | "module": "esnext", 17 | "moduleResolution": "node", 18 | "importHelpers": true, 19 | "target": "es5", 20 | "typeRoots": [ 21 | "node_modules/@types", "./src/types" 22 | ], 23 | "lib": [ 24 | "es2018", 25 | "dom" 26 | ] 27 | }, 28 | "angularCompilerOptions": { 29 | "fullTemplateTypeCheck": true, 30 | "strictInjectionParameters": true 31 | }, 32 | "moduleResolution": "node" 33 | } 34 | -------------------------------------------------------------------------------- /submarine-workbench/workbench-web/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /website/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | package-lock.json 4 | 5 | # Production 6 | /build 7 | 8 | # Generated files 9 | .docusaurus 10 | .cache-loader 11 | 12 | # Misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* -------------------------------------------------------------------------------- /website/babel.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | module.exports = { 21 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 22 | }; 23 | -------------------------------------------------------------------------------- /website/i18n/zh-cn/docusaurus-plugin-content-pages/releases/submarine-release-0.2.0.md: -------------------------------------------------------------------------------- 1 | 14 | 15 | # Apache Submarine Release 0.2.0 16 | 17 | Apache Submarine 社区很高兴地宣布 `0.2.0` 版本已经发布。 18 | 19 | 自上次发布以来,社区投入了大量精力来改进 Apache Submarine。 20 | 总计有 46 个用于改进和错误修复的补丁。 21 | 22 | 我们推荐 [下载](../docs/download) 最新版本进行体验和使用,并非常欢迎通过 [邮件列表](../docs/community/) 提供反馈。 23 | 24 | 您还可以访问 [问题跟踪器](https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12343240&styleName=&projectId=12316221) 以获取已解决问题的完整列表。 25 | 26 | -------------------------------------------------------------------------------- /website/i18n/zh-cn/docusaurus-plugin-content-pages/styles.module.css: -------------------------------------------------------------------------------- 1 | ../../../src/pages/styles.module.css -------------------------------------------------------------------------------- /website/i18n/zh-cn/docusaurus-theme-classic/footer.json: -------------------------------------------------------------------------------- 1 | { 2 | "link.item.label.API docs": { 3 | "message": "API 文档" 4 | }, 5 | "link.item.label.Getting Started": { 6 | "message": "入门教程" 7 | }, 8 | "link.title.Docs": { 9 | "message": "文档" 10 | }, 11 | "link.title.Community": { 12 | "message": "社区" 13 | }, 14 | "link.title.More": { 15 | "message": "更多" 16 | }, 17 | "link.item.label.Blog": { 18 | "message": "博客" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /website/i18n/zh-cn/docusaurus-theme-classic/navbar.json: -------------------------------------------------------------------------------- 1 | { 2 | "item.label.Docs": { 3 | "message": "文档" 4 | }, 5 | "item.label.Download": { 6 | "message": "下载" 7 | }, 8 | "item.label.Apache Software Foundation": { 9 | "message": "Apache 软件基金会" 10 | }, 11 | "item.label.Apache License": { 12 | "message": "Apache 授权" 13 | }, 14 | "item.label.Thanks": { 15 | "message": "感谢" 16 | }, 17 | "item.label.Security": { 18 | "message": "安全" 19 | }, 20 | "item.label.Sponsorship": { 21 | "message": "赞助" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "website", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "docusaurus start", 8 | "build": "docusaurus build", 9 | "swizzle": "docusaurus swizzle", 10 | "deploy": "docusaurus deploy", 11 | "serve": "docusaurus serve", 12 | "clear": "docusaurus clear" 13 | }, 14 | "dependencies": { 15 | "@docusaurus/core": "2.0.0-beta.18", 16 | "@docusaurus/preset-classic": "2.0.0-beta.18", 17 | "@mdx-js/react": "^1.6.22", 18 | "clsx": "^1.1.1", 19 | "docusaurus-lunr-search": "^2.1.15", 20 | "react": "^17.0.2", 21 | "react-dom": "^17.0.2" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.5%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /website/static/.asf.yaml: -------------------------------------------------------------------------------- 1 | # This file allow Apache to hlep us automatically update the website, 2 | # when we push commit to https://github.com/apache/submarine-site 3 | publish: 4 | whoami: asf-site 5 | 6 | github: 7 | description: "Apache Submarine website" 8 | homepage: https://submarine.apache.org/ 9 | enabled_merge_buttons: 10 | squash: true 11 | merge: false 12 | rebase: false 13 | -------------------------------------------------------------------------------- /website/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/.nojekyll -------------------------------------------------------------------------------- /website/static/img/apache_incubator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/apache_incubator.png -------------------------------------------------------------------------------- /website/static/img/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/architecture.png -------------------------------------------------------------------------------- /website/static/img/asf_feather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/asf_feather.png -------------------------------------------------------------------------------- /website/static/img/check_ci_pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/check_ci_pass.png -------------------------------------------------------------------------------- /website/static/img/compare_pull_request_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/compare_pull_request_button.png -------------------------------------------------------------------------------- /website/static/img/created-notebook-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/created-notebook-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/created-notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/created-notebook.png -------------------------------------------------------------------------------- /website/static/img/design/experiments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/design/experiments.png -------------------------------------------------------------------------------- /website/static/img/design/multi-dc-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/design/multi-dc-cloud.png -------------------------------------------------------------------------------- /website/static/img/icons/128-black-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/128-black-white.png -------------------------------------------------------------------------------- /website/static/img/icons/128-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/128-black.png -------------------------------------------------------------------------------- /website/static/img/icons/128-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/128-white.png -------------------------------------------------------------------------------- /website/static/img/icons/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/128.png -------------------------------------------------------------------------------- /website/static/img/icons/256-black-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/256-black-white.png -------------------------------------------------------------------------------- /website/static/img/icons/256-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/256-black.png -------------------------------------------------------------------------------- /website/static/img/icons/256-white-backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/256-white-backup.png -------------------------------------------------------------------------------- /website/static/img/icons/256-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/256-white.png -------------------------------------------------------------------------------- /website/static/img/icons/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/256.png -------------------------------------------------------------------------------- /website/static/img/icons/32-black-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/32-black-white.png -------------------------------------------------------------------------------- /website/static/img/icons/32-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/32-black.png -------------------------------------------------------------------------------- /website/static/img/icons/32-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/32-white.png -------------------------------------------------------------------------------- /website/static/img/icons/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/32.png -------------------------------------------------------------------------------- /website/static/img/icons/64-black-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/64-black-white.png -------------------------------------------------------------------------------- /website/static/img/icons/64-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/64-black.png -------------------------------------------------------------------------------- /website/static/img/icons/64-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/64-white.png -------------------------------------------------------------------------------- /website/static/img/icons/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/64.png -------------------------------------------------------------------------------- /website/static/img/icons/color_logo_with_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/color_logo_with_text.png -------------------------------------------------------------------------------- /website/static/img/icons/color_logo_with_text.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/color_logo_with_text.psd -------------------------------------------------------------------------------- /website/static/img/icons/logo-UEDC.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/logo-UEDC.psd -------------------------------------------------------------------------------- /website/static/img/icons/logo-org.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/logo-org.psd -------------------------------------------------------------------------------- /website/static/img/icons/logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/icons/logo.psd -------------------------------------------------------------------------------- /website/static/img/jira_number_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/jira_number_example.png -------------------------------------------------------------------------------- /website/static/img/job-logs-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/job-logs-ui.png -------------------------------------------------------------------------------- /website/static/img/kind-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/kind-dashboard.png -------------------------------------------------------------------------------- /website/static/img/mlflow-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/mlflow-ui.png -------------------------------------------------------------------------------- /website/static/img/multiple-tensorboard-jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/multiple-tensorboard-jobs.png -------------------------------------------------------------------------------- /website/static/img/notebook-form-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/notebook-form-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/notebook-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/notebook-form.png -------------------------------------------------------------------------------- /website/static/img/notebook-list-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/notebook-list-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/notebook-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/notebook-list.png -------------------------------------------------------------------------------- /website/static/img/pull_request_template_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/pull_request_template_example.png -------------------------------------------------------------------------------- /website/static/img/quickstart-artifacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-artifacts.png -------------------------------------------------------------------------------- /website/static/img/quickstart-mlflow-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-mlflow-2.png -------------------------------------------------------------------------------- /website/static/img/quickstart-mlflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-mlflow.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-1-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-1-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-1.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-2-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-2-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-2.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-3-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-3-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-3.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-4-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-4-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/quickstart-submit-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-submit-4.png -------------------------------------------------------------------------------- /website/static/img/quickstart-ui-0-7-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-ui-0-7-0.png -------------------------------------------------------------------------------- /website/static/img/quickstart-worbench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/quickstart-worbench.png -------------------------------------------------------------------------------- /website/static/img/sge/sge_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/sge/sge_cluster.png -------------------------------------------------------------------------------- /website/static/img/sge/sge_stat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/sge/sge_stat.png -------------------------------------------------------------------------------- /website/static/img/spark-flink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/spark-flink.png -------------------------------------------------------------------------------- /website/static/img/submarine-installer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine-installer.gif -------------------------------------------------------------------------------- /website/static/img/submarine-model-registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine-model-registry.png -------------------------------------------------------------------------------- /website/static/img/submarine-register-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine-register-model.png -------------------------------------------------------------------------------- /website/static/img/submarine-serve-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine-serve-model.png -------------------------------------------------------------------------------- /website/static/img/submarine-serve-prediction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine-serve-prediction.png -------------------------------------------------------------------------------- /website/static/img/submarine.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/submarine.ico -------------------------------------------------------------------------------- /website/static/img/tensorboard-experiment-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/tensorboard-experiment-page.png -------------------------------------------------------------------------------- /website/static/img/tensorboard-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/tensorboard-service.png -------------------------------------------------------------------------------- /website/static/img/tensorboard-webpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/tensorboard-webpage.png -------------------------------------------------------------------------------- /website/static/img/test-k8s-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/test-k8s-result.png -------------------------------------------------------------------------------- /website/static/img/tf-pytorch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/tf-pytorch.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step1.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step2-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step2-blank.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step2-git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step2-git.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step2-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step2-template.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step2-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step2-upload.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project-step3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project-step3.png -------------------------------------------------------------------------------- /website/static/img/workspace/workspace-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/workspace/workspace-project.png -------------------------------------------------------------------------------- /website/static/img/yarn-k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/submarine/7a1d551798c6785fc68fe028fc46f74c3ee6976d/website/static/img/yarn-k8s.png -------------------------------------------------------------------------------- /website/versions.json: -------------------------------------------------------------------------------- 1 | [ 2 | "0.8.0", 3 | "0.7.0", 4 | "0.6.0" 5 | ] 6 | -------------------------------------------------------------------------------- /website/versionsReleaseNoteOnly.json: -------------------------------------------------------------------------------- 1 | [ 2 | "0.5.0", 3 | "0.4.0", 4 | "0.3.0", 5 | "0.2.0" 6 | ] 7 | --------------------------------------------------------------------------------