{"id":19767521,"url":"https://github.com/sql-machine-learning/playground","last_synced_at":"2025-07-22T20:05:00.162Z","repository":{"id":55336062,"uuid":"264560504","full_name":"sql-machine-learning/playground","owner":"sql-machine-learning","description":"Deploy SQLFlow service mesh on Windows, macOS, and Linux desktop computers","archived":false,"fork":false,"pushed_at":"2023-08-14T22:17:22.000Z","size":94,"stargazers_count":12,"open_issues_count":16,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-15T06:48:45.546Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sqlflow.org","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sql-machine-learning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-17T01:25:19.000Z","updated_at":"2024-04-01T18:34:20.000Z","dependencies_parsed_at":"2024-11-12T04:40:38.211Z","dependency_job_id":null,"html_url":"https://github.com/sql-machine-learning/playground","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sql-machine-learning/playground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sql-machine-learning%2Fplayground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sql-machine-learning%2Fplayground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sql-machine-learning%2Fplayground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sql-machine-learning%2Fplayground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sql-machine-learning","download_url":"https://codeload.github.com/sql-machine-learning/playground/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sql-machine-learning%2Fplayground/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266563915,"owners_count":23948689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T04:30:23.547Z","updated_at":"2025-07-22T20:05:00.118Z","avatar_url":"https://github.com/sql-machine-learning.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Release SQLFlow Desktop Distribution as a VM Image\n\nThis is an experimental work to check deploying the whole\n[SQLFlow](https://sqlflow.org/sqlflow) service mesh on Windows, Linux,\nor macOS desktop.\n\nThe general architecture of SQLFlow is as the following:\n\n![](figures/arch.svg)\n\nIn this deployment, we have Jupyter Notebook server, SQLFlow server,\nand MySQL running in a container executing the\n`sqlflow/sqlflow:latest` image.  Argo runs on a minikube cluster\nrunning on the VM.  The deployment is shown in the folllowing figure:\n\n![](figures/arch_vm.svg)\n\nI chose this deployment plan for reasons:\n\n1. We don't have a well-written local workflow engine, and at the\n   right moment, we need to focus on the Kubernetes-native engine.\n   So, we use minikube and install Argo on minikube.\n\n1. We can install minikube directly on users' desktop computers\n   running Windows, Linux, macOS.  However, writing a shell script to\n   do that requires us to consider many edge cases.  To have a clear\n   deployment environment, I introduced VM.\n\n1. To make the VM manageable in a programmatic way, I used Vagrant.\n   Please be aware that Vagrant is the only software users need to\n   install to use SQLFlow on their desktop computer.  And Vagrant\n   provides official support for Windows, Linux, and macOS.\n\n1. We can run the SQLFlow server container (`sqlflow/sqlflow:latest`)\n   on minikube as well.  But that would add challenge to export ports.\n   Running the container directly in the VM but out of minikube, we\n\n   1. expoe the in-container port by adding `EXPOSE` statement in the\n      Dockerfile, and\n   1. expose the docker port for accessing from outside of the VM by\n      adding the following code snippet to the Vagrantfile.\n\n      ```ruby\n      config.vm.network \"forwarded_port\", guest: 3306, host: 3306\n      config.vm.network \"forwarded_port\", guest: 50051, host: 50051\n      config.vm.network \"forwarded_port\", guest: 8888, host: 8888\n      ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsql-machine-learning%2Fplayground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsql-machine-learning%2Fplayground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsql-machine-learning%2Fplayground/lists"}