Skip to content

Commit b8c27bd

Browse files
committed
support cypher query
Signed-off-by: Lei Wang <[email protected]>
1 parent bd06c54 commit b8c27bd

File tree

4 files changed

+15
-7
lines changed

4 files changed

+15
-7
lines changed

charts/gart/templates/configmap.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ data:
4545
GART_CONTROLLER_SERVER: {{ $controller_service | quote }}
4646
ETCD_SERVICE: {{ $etcd_service | quote }}
4747
GIE_GREMLIN_PORT: {{ .Values.gie_frontend.gremlinPort | quote }}
48+
GIE_CYPHER_PORT: {{ .Values.gie_frontend.cypherPort | quote }}
4849
GIE_EXECUTOR_RPC_PORT: {{ .Values.gie_executor.GAIA_RPC_PORT | quote }}
4950
GIE_EXECUTOR_ENGINE_PORT: {{ .Values.gie_executor.ENGINE_PORT | quote }}
5051
NAME_SPACE: {{ .Release.Namespace | quote }}

charts/gart/templates/converter/svc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ spec:
3030
- protocol: TCP
3131
port: {{ .Values.coordinator.port }}
3232
targetPort: {{ .Values.coordinator.containerPort }}
33+
name: coordinator-port

coordinator/flex/server/controllers/service_controller.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,14 @@ def get_service_status_by_id(graph_id): # noqa: E501
4646
result_dict = {}
4747
k8s_namespace = os.getenv('NAME_SPACE', 'default')
4848
gremlin_service_name = os.getenv('GREMLIN_SERVICE_NAME', 'gremlin-service')
49-
gremlin_service_port = os.getenv('GIE_GREMLIN_PORT', '8182')
49+
gremlin_service_port = os.getenv('GIE_GREMLIN_PORT', '8182')
50+
cypher_service_port = os.getenv('GIE_CYPHER_PORT', '7687')
5051
gremlin_service_ip = get_external_ip_of_a_service(gremlin_service_name, k8s_namespace)
5152
result_dict["graph_id"] = graph_id
5253
result_dict["status"] = "Running"
5354
result_dict["sdk_endpoints"] = {}
5455
result_dict["sdk_endpoints"]["gremlin"] = f"ws://{gremlin_service_ip}:{gremlin_service_port}/gremlin"
56+
result_dict["sdk_endpoints"]["cypher"] = f"neo4j://{gremlin_service_ip}:{cypher_service_port}"
5557
return (ServiceStatus.from_dict(result_dict), 200)
5658

5759

@@ -66,7 +68,8 @@ def list_service_status(): # noqa: E501
6668
result_dict = {}
6769
k8s_namespace = os.getenv('NAME_SPACE', 'default')
6870
gremlin_service_name = os.getenv('GREMLIN_SERVICE_NAME', 'gremlin-service')
69-
gremlin_service_port = os.getenv('GIE_GREMLIN_PORT', '8182')
71+
gremlin_service_port = os.getenv('GIE_GREMLIN_PORT', '8182')
72+
cypher_service_port = os.getenv('GIE_CYPHER_PORT', '7687')
7073
gremlin_service_ip = get_external_ip_of_a_service(gremlin_service_name, k8s_namespace)
7174
try:
7275
with open("/tmp/graph_id.txt", "r") as f:
@@ -77,6 +80,7 @@ def list_service_status(): # noqa: E501
7780
result_dict["status"] = "Running"
7881
result_dict["sdk_endpoints"] = {}
7982
result_dict["sdk_endpoints"]["gremlin"] = f"ws://{gremlin_service_ip}:{gremlin_service_port}/gremlin"
83+
result_dict["sdk_endpoints"]["cypher"] = f"neo4j://{gremlin_service_ip}:{cypher_service_port}"
8084
return ([ServiceStatus.from_dict(result_dict)], 200)
8185

8286

scripts/update_ip_tables.sh

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Function to get the node port for a service
44
get_node_port() {
5-
kubectl get service "$1" -o=jsonpath='{.spec.ports[0].nodePort}' -n "$2"
5+
kubectl get service "$1" -o=jsonpath="{.spec.ports[?(@.name==\"$2\")].nodePort}" -n "$3"
66
}
77

88
# Function to get the Kubernetes API server IP
@@ -23,16 +23,18 @@ update_iptables() {
2323
SOURCE_PORT="$3"
2424
NAME_SPACE="$4"
2525
K8S_API_IP="$5"
26+
SERVICE_PORT_NAME="$6"
2627

2728
echo "Updating iptables rules for $SERVICE_NAME (Source IP: $SOURCE_IP, Port: $SOURCE_PORT)"
2829

29-
NODE_PORT=$(get_node_port "$SERVICE_NAME" "$NAME_SPACE")
30+
NODE_PORT=$(get_node_port "$SERVICE_NAME" "$SERVICE_PORT_NAME" "$NAME_SPACE")
3031

3132
if [ -z "$NODE_PORT" ]; then
3233
echo "Error: Could not get node port for service $SERVICE_NAME"
3334
return 1
3435
fi
3536

37+
echo "socat TCP-LISTEN:${SOURCE_PORT},bind=${SOURCE_IP},fork TCP:${K8S_API_IP}:${NODE_PORT}"
3638
sudo socat TCP-LISTEN:${SOURCE_PORT},bind=${SOURCE_IP},fork TCP:${K8S_API_IP}:${NODE_PORT} &
3739

3840
echo "Updated iptables rules for $SERVICE_NAME (Node Port: $NODE_PORT)"
@@ -51,15 +53,15 @@ echo "Kubernetes API server IP: $K8S_API_IP"
5153
cleanup_iptables
5254

5355
# Update rules for each service
54-
if ! update_iptables gart-release-coordinator-service 0.0.0.0 18080 gart "$K8S_API_IP"; then
56+
if ! update_iptables gart-release-coordinator-service 0.0.0.0 18080 gart "$K8S_API_IP" coordinator-port; then
5557
echo "Failed to update iptables for gart-release-coordinator-service"
5658
fi
5759

58-
if ! update_iptables gart-release-gie-frontend-service 0.0.0.0 8182 gart "$K8S_API_IP"; then
60+
if ! update_iptables gart-release-gie-frontend-service 0.0.0.0 8182 gart "$K8S_API_IP" gremlin-port; then
5961
echo "Failed to update iptables for gart-release-gie-frontend-service gremlin"
6062
fi
6163

62-
if ! update_iptables gart-release-gie-frontend-service 0.0.0.0 7687 gart "$K8S_API_IP"; then
64+
if ! update_iptables gart-release-gie-frontend-service 0.0.0.0 7687 gart "$K8S_API_IP" cypher-port; then
6365
echo "Failed to update iptables for gart-release-gie-frontend-service cypher"
6466
fi
6567

0 commit comments

Comments
 (0)