Skip to content

Commit 39c39db

Browse files
authored
Remove externalService and add services.neo4j.spec.loadBalancerIP (#2494) (#2507)
1 parent 7c921fc commit 39c39db

File tree

2 files changed

+53
-27
lines changed

2 files changed

+53
-27
lines changed

modules/ROOT/pages/kubernetes/accessing-neo4j.adoc

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ kubectl get service `<my-neo4j-name>-lb-neo4j` -ocustom-columns=ip:.status.loadB
291291
kubectl get service -l helm.neo4j.com/service=neo4j,helm.neo4j.com/name=<release-name> -ocustom-columns=ip:.status.loadBalancer.ingress[].ip
292292
----
293293

294-
If the Kubernetes `LoadBalancer` implementation that you are using supports setting a static IP, the IP address of the `LoadBalancer` can be configured in the Neo4j Helm release by setting `externalService.loadBalancerIP`.
294+
If the Kubernetes `LoadBalancer` implementation that you are using supports setting a static IP, the IP address of the `LoadBalancer` can be configured in the Neo4j Helm release by setting `services.neo4j.spec.loadBalancerIP`.
295295
If a static IP address is not explicitly set, then Kubernetes does not guarantee that a dynamically assigned IP address will not change.
296296

297297
When exposing a Neo4j database on the Internet, it is recommended to use a static IP and configure SSL on the exposed services.
@@ -306,33 +306,40 @@ The default values are:
306306
----
307307
services:
308308
neo4j:
309-
annotations: { }
310-
loadBalancerIP: NULL
311-
ports:
312-
http:
313-
enabled: true
314-
# uncomment to publish http on port 80 (neo4j default is 7474)
315-
# port: 80
316-
# targetPort: 7474
317-
# name: http
318-
https:
319-
enabled: true
309+
enabled: true
310+
annotations: { }
311+
spec:
312+
type: LoadBalancer
313+
loadBalancerIP: NULL
314+
ports:
315+
http:
316+
enabled: true # Set this to false to remove HTTP from this service (this does not affect whether http is enabled for the neo4j process)
317+
# uncomment to publish http on port 80 (neo4j default is 7474)
318+
#port: 80
319+
#targetPort: 7474
320+
#name: http
321+
#nodePort: <your-nodeport>, enabled only when type set to NodePort
322+
https:
323+
enabled: true # Set this to false to remove HTTPS from this service (this does not affect whether https is enabled for the neo4j process)
320324
# uncomment to publish http on port 443 (neo4j default is 7473)
321-
# port: 443
322-
# targetPort: 7473
323-
# name: https
324-
bolt:
325-
enabled: true
325+
#port: 443
326+
#targetPort: 7473
327+
#name: https
328+
#nodePort: <your-nodeport>, enabled only when type set to NodePort
329+
bolt:
330+
enabled: true # Set this to false to remove BOLT from this service (this does not affect whether https is enabled for the neo4j process)
326331
# Uncomment to explicitly specify the port to publish Neo4j Bolt (7687 is the default)
327-
# port: 7687
328-
# targetPort: 7687
329-
# name: tcp-bolt
330-
backup:
331-
enabled: false
332+
#port: 7687
333+
#targetPort: 7687
334+
#name: tcp-bolt
335+
#nodePort: <your-nodeport>, enabled only when type set to NodePort
336+
backup:
337+
enabled: false # Set this to true to expose backup port externally (n.b. this could have security implications. Backup is not authenticated by default)
332338
# Uncomment to explicitly specify the port to publish Neo4j Backup (6362 is the default)
333-
# port: 6362
334-
# targetPort: 6362
335-
# name: tcp-backup
339+
#port: 6362
340+
#targetPort: 6362
341+
#name: tcp-backup
342+
#nodePort: <your-nodeport>, enabled only when type set to NodePort
336343
----
337344

338345
Disabling/enabling a port on the `services.neo4j` object removes it from the load balancer but does not affect whether it is disabled/enabled in Neo4j.

modules/ROOT/pages/kubernetes/configuration.adoc

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ For more information, see xref:kubernetes/security.adoc[Configure SSL].
211211

212212

213213
Some examples of possible K8s configurations::
214-
* Configure (or disable completely) the Kubernetes LoadBalancer that exposes Neo4j outside the Kubernetes cluster by modifying the `externalService` object in the _values.yml_ file.
214+
* Configure (or disable completely) the Kubernetes LoadBalancer that exposes Neo4j outside the Kubernetes cluster by modifying the `services.neo4j.spec.loadBalancerIP` object in the _values.yml_ file.
215215
* Set the `securityContext` used by Neo4j Pods by modifying the `securityContext` object in the _values.yml_ file.
216216
* Configure manual persistent volume provisioning or set the `StorageClass` to be used as the Neo4j persistent storage.
217217

@@ -269,7 +269,7 @@ neo4j:
269269
# The operations pod ends successfully if the server is enabled, or it was already enabled
270270
operations:
271271
enableServer: false
272-
image: "neo4j/helm-charts-operations:5.26.0"
272+
image: "neo4j/helm-charts-operations:2025.06.2"
273273
# protocol can be "neo4j or "neo4j+ssc" or "neo4j+s". Default set to neo4j
274274
# Note: Do not specify bolt protocol here...it will FAIL.
275275
protocol: "neo4j"
@@ -283,6 +283,7 @@ neo4j:
283283
# Email inquiries can be directed to: [email protected]
284284
#
285285
# Set acceptLicenseAgreement: "yes" to confirm that you have a Neo4j license agreement.
286+
# Set acceptLicenseAgreement: "eval" to use Neo4j Enterprise Edition for evaluation purposes.
286287
acceptLicenseAgreement: "no"
287288
#
288289
# set offlineMaintenanceModeEnabled: true to restart the StatefulSet without the Neo4j process running
@@ -508,6 +509,9 @@ services:
508509
# If enabled: is set to false, the LoadBalancer will be orphaned and will have to manually deleted post uninstall and the hook job will not be created
509510
cleanup:
510511
enabled: true
512+
# Pod annotations for the cleanup job
513+
podAnnotations:
514+
sidecar.istio.io/inject: "false"
511515
image:
512516
registry: docker.io
513517
repository: bitnami/kubectl
@@ -557,6 +561,14 @@ config:
557561
# server.memory.heap.initial_size: "317m"
558562
# server.memory.heap.max_size: "317m"
559563
564+
# Enable automatic reloading of TLS certificates
565+
dbms.security.tls_reload_enabled: "true"
566+
567+
# SPeeDy (Sharded Property Database) feature flag
568+
# Enables the sharded property database feature for improved performance with large datasets
569+
# Set to "true" to enable SPeeDy, "false" to disable (default: false)
570+
internal.dbms.sharded_property_database.enabled: "false"
571+
560572
apoc_config: {}
561573
# apoc.trigger.enabled: "true"
562574
# apoc.import.file.enabled: "true"
@@ -600,6 +612,8 @@ containerSecurityContext:
600612
# Because Neo4j uses Java these values are large to distinguish between long Garbage Collection pauses (which don't require a restart) and an actual failure.
601613
# These values should mark Neo4j as not ready after at most 5 minutes of problems (20 attempts * max 15 seconds between probes)
602614
readinessProbe:
615+
tcpSocket:
616+
port: 7687
603617
failureThreshold: 20
604618
timeoutSeconds: 10
605619
periodSeconds: 5
@@ -608,6 +622,8 @@ readinessProbe:
608622
# Because Neo4j uses Java these values are large to distinguish between long Garbage Collection pauses (which don't require a restart) and an actual failure.
609623
# These values should trigger a restart after at most 10 minutes of problems (40 attempts * max 15 seconds between probes)
610624
livenessProbe:
625+
tcpSocket:
626+
port: 7687
611627
failureThreshold: 40
612628
timeoutSeconds: 10
613629
periodSeconds: 5
@@ -617,6 +633,8 @@ livenessProbe:
617633
# When restoring Neo4j from a backup it's important that startup probe gives time for Neo4j to recover and/or upgrade store files
618634
# When using Neo4j clusters it's important that startup probe give the Neo4j cluster time to form
619635
startupProbe:
636+
tcpSocket:
637+
port: 7687
620638
failureThreshold: 1000
621639
periodSeconds: 5
622640
@@ -660,6 +678,7 @@ ssl:
660678
# Kubernetes cluster domain suffix
661679
clusterDomain: "cluster.local"
662680
681+
663682
# Override image settings in Neo4j pod
664683
image:
665684
imagePullPolicy: IfNotPresent

0 commit comments

Comments
 (0)