Unable to connect to server via browser UI

Currently using the neo4j helm charts to deploy neo4j:5.15.0-community and everything seems to be working locally with no issues. I am able to run the cypher shell command to test out the auto-generated password and that works.

NAME          READY   STATUS    RESTARTS   AGE
pod/neo4j-0   1/1     Running   0          3h11m

NAME                     TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
service/neo4j            ClusterIP      10.43.95.215   <none>        7687/TCP,7474/TCP                              3h11m
service/neo4j-admin      ClusterIP      10.43.40.215   <none>        7687/TCP,7474/TCP                              3h11m

I am using Istio to setup a virtual service as a reverse proxy. I can access the applications /browser/ UI just fine, but I'm missing something when it comes to getting the Connect to Neo4J to work. Currently attempting to connect using bolt, which I read used TCP.

Not sure if someone can point me towards some documentation here that may help.

istio Config:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: neo4j-virtual-service
  namespace: neo4j
spec:
  gateways:
    - istio-system/cluster-gateway
  hosts:
    - "neo4j.dev.test.com"
  http:
    - route:
        - destination:
            host: "neo4j.neo4j.svc.cluster.local"
            port:
              number: 7474
  tcp:
    - match:
        - port: 7687
      route:
        - destination:
            host: "neo4j.neo4j.svc.cluster.local"
            port:
              number: 7687

You need to also install the custom Neo4J proxy as documented here

But I also had to enable server side routing and use neo4j+s protocol instead of bolt.
Here is my working example

This is how I did it:

  1. install with helm neo4j
  2. install with helm neo4j reverse proxy
    3 Add 2 virtual services
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: neo4j
  namespace: neo4j
spec:
  gateways:
    - istio-ingress/default-gateway
  hosts:
    - neo4j.foobar.io
  http:
    - match:
        - port: 80
      route:
        - destination:
            host: neo4j-app.neo4j.svc.cluster.local
            port:
              number: 7474
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: neo4jproxy
  namespace: neo4j
spec:
  gateways:
    - istio-ingress/default-gateway
  hosts:
    - neo4jproxy.foobar.io
  http:
    - match:
        - uri:
            prefix: /
      route:
        - destination:
            host: neo4j-reverse-proxy-app-reverseproxy-service.neo4j.svc.cluster.local
            port:
              number: 80
  1. Then Access neo4j UI
  • open: https://neo4j.foobar.io/
    • You will be redirected to /browser
  • Press "server connect"
  • Use the following credentials:
    • connect url: neo4j+s://neo4jproxy.foobar.io:443. # IMPORTANT it has to be :443
    • Authentication/type: Username/Password
    • Username: neo4j
    • Password: use the initial password or whatever you set in values yaml

You can change password in UI using command:

ALTER USER neo4j SET PASSWORD '<new-password>'

Notice name of my servers: