1
1
# Provision SQLFlow Desktop for Linux
2
2
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.
5
6
6
7
The general architecture of SQLFlow is as the following:
7
8
@@ -13,3 +14,34 @@ and MySQL running in a container executing the
13
14
running on the VM. The deployment is shown in the folllowing figure:
14
15
15
16
![ ] ( 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