New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate vineyard operator python API with Graphscope #2458
Integrate vineyard operator python API with Graphscope #2458
Conversation
0021083
to
d86b91d
Compare
7c32d13
to
b9791a1
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #2458 +/- ##
===========================================
+ Coverage 39.88% 66.81% +26.93%
===========================================
Files 88 88
Lines 9814 9842 +28
===========================================
+ Hits 3914 6576 +2662
+ Misses 5900 3266 -2634
... and 51 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
a04d75d
to
72de11c
Compare
72de11c
to
12a81bc
Compare
All comments addressed. Also, we could check the ci for creating a multi-node cluster with the specific base image. |
This still exists in frontend container |
You could do |
I have tried creating the multi-node cluster with the latest minikube base image minikube start -p test12 --cpus='12' --memory='32000mb' --disk-size='40000mb' --mount=true --mount-string="/opt/caoye/graphscope/test/gstest:/testingdata" --base-image='gcr.io/k8s-minikube/kicbase:v0.0.32' --nodes 2
😄 [test12] minikube v1.26.0 on Ubuntu 20.04 (amd64)
▪ KUBECONFIG=/opt/caoye/testkubeconfig
✨ Automatically selected the docker driver. Other choices: none, ssh
📌 Using Docker driver with root privileges
👍 Starting control plane node test12 in cluster test12
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=12, Memory=32000MB) ...
🐳 Preparing Kubernetes v1.24.1 on Docker 20.10.17 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔗 Configuring CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
👍 Starting worker node test12-m02 in cluster test12
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=12, Memory=32000MB) ...
🌐 Found network options:
▪ NO_PROXY=192.168.67.2
🐳 Preparing Kubernetes v1.24.1 on Docker 20.10.17 ...
▪ env NO_PROXY=192.168.67.2
🔎 Verifying Kubernetes components...
🏄 Done! kubectl is now configured to use "test12" cluster and "default" namespace by default |
Sure, you could retag and push it on ECS. But it works in your machine doesn't mean it works in the CI... This file limits the total resources of the self-hosted runner. |
Thanks for the detail, I will create a new test ci yaml later. |
## What do these changes do? We will decouple the deploy of vineyard and graphscope (see also #2458) where vineyard and graphscope workers may not aligned. After that, on one kubernetes node, there might be only 1 vineyardd instance and more than one graphscope workers (specially GIE executors) on it. Before this pull request, that workable, but yields wrong (duplication) query results. This pull fixed that by first sync process partition list and splitted the partitions to "local" work processes. To avoid disturbe existing users, the new feature is only availbel when the environment variable `PARALLEL_INTERACTIVE_EXECUTOR_ON_VINEYARD ` is set to `OFF` (both `ON` and `OFF` are covered by CI). Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
c840681
to
ee98085
Compare
5b55f97
to
bd1de63
Compare
* Add relevant ci test. Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
…it doesn't the socket Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
…ment. Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
8acc228
to
5d1bc13
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically LGTM. We cuold this pr merged (as current changeset is not in the critical path) then we can go ahead.
# values: | ||
# - graphscope-system-vineyard-deployment # [vineyard deployment namespace]-[vineyard deployment name] | ||
# topologyKey: kubernetes.io/hostname | ||
def _add_podAffinity_for_vineyard_deployment(self, workload): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_add_podAffinity_for_vineyard_deployment
-> _add_pod_affinity_for_vineyard_deployment
to make it pythonic.
See https://peps.python.org/pep-0257/ for docstring convensions for Python functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sense to me.
except ImportError: | ||
raise RuntimeError( | ||
"vineyard is not installed, please install vineyard first." | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need for the check. As vineyard is a required dependency for coordinator: https://github.com/alibaba/GraphScope/blob/main/coordinator/requirements.txt
The catch would hide the underlying error during importing vineyard.
try: | ||
import vineyard | ||
except ImportError: | ||
raise RuntimeError("vineyard is not installed, please install vineyard first.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need for the check. As commented above.
.github/workflows/k8s-ci.yml
Outdated
@@ -361,6 +361,9 @@ jobs: | |||
with: | |||
path: artifacts | |||
|
|||
#- name: sleep | |||
# run: sleep infinity | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember to delete the debugging logs.
5d1bc13
to
66631b9
Compare
Thanks, I will debug it ASAP to avoid interrupting others‘ work. |
Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
66631b9
to
8abb250
Compare
Signed-off-by: Ye Cao <caoye.cao@alibaba-inc.com>
What do these changes do?
The pr uses Deployment to replace the original Daemonset as the vineyard operator uses
Deployment
to install the vineyard cluster. Also, after specifying the vineyard deployment, we need to use the vineyard operator python API to deploy the engines to vineyard nodes.BTW, the pr needs to wait for the v6d-io/v6d#1183 ready.