Skip to content

Commit 81a5177

Browse files
committed
Enrich README
1 parent 786a57a commit 81a5177

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

README.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Provision SQLFlow Desktop for Linux
22

3-
This is an experimental work to check deploying the whole SQLFlow
4-
service mesh on a Ubuntu 18.04 VM.
3+
This is an experimental work to check deploying the whole
4+
[SQLFlow](https://sqlflow.org/sqlflow) service mesh on Windows, Linux,
5+
or macOS desktop.
56

67
The general architecture of SQLFlow is as the following:
78

@@ -13,3 +14,34 @@ and MySQL running in a container executing the
1314
running on the VM. The deployment is shown in the folllowing figure:
1415

1516
![](figures/arch_vm.svg)
17+
18+
I chose this deployment plan for reasons:
19+
20+
1. We don't have a well-written local workflow engine, and at the
21+
right moment, we need to focus on the Kubernetes-native engine.
22+
So, we use minikube and install Argo on minikube.
23+
24+
1. We can install minikube directly on users' desktop computers
25+
running Windows, Linux, macOS. However, writing a shell script to
26+
do that requires us to consider many edge cases. To have a clear
27+
deployment environment, I introduced VM.
28+
29+
1. To make the VM manageable in a programmatic way, I used Vagrant.
30+
Please be aware that Vagrant is the only software users need to
31+
install to use SQLFlow on their desktop computer. And Vagrant
32+
provides official support for Windows, Linux, and macOS.
33+
34+
1. We can run the SQLFlow server container (`sqlflow/sqlflow:latest`)
35+
on minikube as well. But that would add challenge to export ports.
36+
Running the container directly in the VM but out of minikube, we
37+
38+
1. expoe the in-container port by adding `EXPOSE` statement in the
39+
Dockerfile, and
40+
1. expose the docker port for accessing from outside of the VM by
41+
adding the following code snippet to the Vagrantfile.
42+
43+
```ruby
44+
config.vm.network "forwarded_port", guest: 3306, host: 3306
45+
config.vm.network "forwarded_port", guest: 50051, host: 50051
46+
config.vm.network "forwarded_port", guest: 8888, host: 8888
47+
```

0 commit comments

Comments
 (0)