Install Neo4J with HelmChart - Plugins Apoc and Graph DataScience

Hello,
I installed neo4 5.9 with helm chart addedhelm repo add neo4j https://helm.neo4j.com/neo4j .

I then install neo4j with :
helm install neo4j neo4j/neo4j -f values.yaml

Where values.yaml :
neo4j:
edition: community
name: neo4j-test
resources:
cpu: "0.5"
memory: "2Gi"
offlineMaintenanceModeEnabled: false
password: stargate
volumes:
data:
mode: defaultStorageClass
defaultStorageClass:
requests:
storage: 2Gi
plugins:
mode: "share"
share:
name: "data"
env :
NEO4J_PLUGINS: '["graph-data-science"]'
config:
server.directories.plugins: "/var/lib/neo4j/labs"
dbms.security.procedures.unrestricted: "gds.,apoc."
dbms.security.procedures.allowlist: "gds.,apoc."
server.config.strict_validation.enabled: "false"

When i run my cypher shell with :

kubectl run --rm -it --namespace "stargate" --image "neo4j:5.9.0" cypher-shell \
     -- cypher-shell -a "neo4j://neo4j.stargate.svc.cluster.local:7687"

GDS is not working and i don't understand why, could someone help ?

Hello @equandalle ,
On first glance, the allow list looks unusual.
Could you try
dbms.security.procedures.unrestricted: "gds.*,apoc.*" and dbms.security.procedures.allowlist: "gds.*,apoc.*". Note the * wildcard in these lines :)

Another idea would be server.directories.plugins: "/var/lib/neo4j/labs" I would assume that the GDS plugin lives under /neo4j/plugins/. (also not seeing this entry at Plugins - Operations Manual)

Hello @florentin_dorre

Thank you for your answer.

Yes, in the procedure lists, I did have the "*" which disappeared when I copy-paste my yaml file.

The reason why i put is because of this this web page : kubernetes plugins neo4j that mentions to put

server.directories.plugins: "/var/lib/neo4j/labs"

With this i have the jar of apoc in /labs directory and the jar of graph-datascience in /plugins but gds.version() is not working

Capture d’écran 2023-07-17 à 11.29.01

If i put "/var/lib/neo4j/plugins"` instead i have still the jar of apoc in labs but the comand "RETURN apoc.version();" return an error.

Hi @equandalle

I am able to install GDS CE with Neo4j EE using the below config.
From your config it seems you are setting plugins directory to "/var/lib/neo4j/labs" but your plugins are in /var/lib/neo4j/plugins.

Try with this config and it should work just fine.

neo4j:
  name: licenses2
  acceptLicenseAgreement: "yes"
  edition: enterprise
  password: my-password
volumes:
  data:
    mode: defaultStorageClass

env:  
  NEO4J_PLUGINS: '["graph-data-science"]'
config:
  dbms.security.procedures.unrestricted: "gds.*,apoc.*,bloom.*"

Thanks,
Harshit

I was able to install both GDS and APOC on the kubernetes standalone deployment with the following values.yaml

neo4j:
  name: my-standalone
  resources:
    cpu: "0.5"
    memory: "2Gi"

  # Uncomment to set the initial password
  password: "password"

  # Uncomment to use enterprise edition
  edition: "community"
  #acceptLicenseAgreement: "yes"

volumes:
  data:
    mode: "dynamic"
    dynamic:
     # gp2 is a general-purpose SSD volume
     storageClassName: gp2

env:
  NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
config:
#  server.directories.plugins: "/var/lib/neo4j/labs"
  dbms.security.procedures.unrestricted: "gds.*,apoc.*"
  dbms.security.procedures.allowlist: "gds.*,apoc.*"
  server.config.strict_validation.enabled: "false"

Please note I used the version Neo4j 5.21