Skip to content

Commit e3f0cba

Browse files
renetapopovaBledi Feshti
andauthored
5.x backup support generic s3 endpoints (#2076)
Cherry-picked from #2066 --------- Co-authored-by: Bledi Feshti <[email protected]>
1 parent 7ec5560 commit e3f0cba

File tree

1 file changed

+72
-13
lines changed

1 file changed

+72
-13
lines changed

modules/ROOT/pages/kubernetes/operations/backup-restore.adoc

Lines changed: 72 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -289,30 +289,49 @@ You need to create the persistent volume and persistent volume claim before inst
289289
For more information, see xref:kubernetes/persistent-volumes.adoc[Volume mounts and persistent volumes].
290290
====
291291

292-
==== Configure the _backup-values.yaml_ file for using MinIO
292+
==== Configure S3-compatible storage endpoints
293293

294-
_This feature is available from Neo4j 5.14._
294+
The backup system supports any S3-compatible storage service.
295+
You can configure both TLS and non-TLS endpoints using the following parameters in your _backup-values.yaml_ file:
295296

296-
MinIO is an AWS S3-compatible object storage API.
297-
You can specify the `minioEndpoint` parameter in the _backup-values.yaml_ file to push your backups to your MinIO bucket.
298-
This endpoint must be a s3 API endpoint or else the backup Helm chart will fail.
299-
Only non-TLS/SSL endpoints are supported.
300-
For example:
297+
[source, yaml]
298+
----
299+
backup:
300+
# Specify your S3-compatible endpoint (e.g., https://s3.amazonaws.com or your custom endpoint)
301+
s3Endpoint: "https://s3.custom-provider.com"
301302
302-
[source, yaml, role='noheader']
303+
# Enable TLS for secure connections (default: false)
304+
s3EndpointTLS: true
305+
306+
# Optional: Provide a base64-encoded CA certificate for custom certificate authorities
307+
s3CACert: "base64_encoded_ca_cert_data"
308+
309+
# Optional: Skip TLS verification (not recommended for production)
310+
s3SkipVerify: false
311+
----
312+
313+
The following are examples of how to configure the backup system for different S3-compatible storage providers:
314+
315+
[.tabbed-example]
316+
=====
317+
[.include-with-S3-standard-endpoint]
318+
======
319+
.AWS S3 standard endpoint
320+
[source, yaml]
303321
----
304322
neo4j:
305323
image: "neo4j/helm-charts-backup"
306-
imageTag: "5.14.0"
324+
imageTag: "5.26.0"
307325
jobSchedule: "* * * * *"
308326
successfulJobsHistoryLimit: 3
309327
failedJobsHistoryLimit: 1
310328
backoffLimit: 3
311329
312330
backup:
313331
bucketName: "my-bucket"
314-
databaseAdminServiceName: "standalone-admin"
315-
minioEndpoint: "http://demo.minio.svc.cluster.local:9000"
332+
databaseAdminServiceName: "standalone-admin"
333+
s3Endpoint: "https://s3.amazonaws.com"
334+
s3EndpointTLS: true
316335
database: "neo4j,system"
317336
cloudProvider: "aws"
318337
secretName: "awscreds"
@@ -321,13 +340,53 @@ backup:
321340
consistencyCheck:
322341
enabled: true
323342
----
343+
======
344+
[.include-with-S3-custom-endpoint]
345+
======
346+
347+
.Custom S3-compatible provider with self-signed certificate
348+
[source, yaml]
349+
----
350+
backup:
351+
bucketName: "my-bucket"
352+
s3Endpoint: "https://custom-s3.example.com"
353+
s3EndpointTLS: true
354+
s3CACert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t..." # Base64-encoded CA cert
355+
cloudProvider: "aws"
356+
secretName: "awscreds"
357+
secretKeyName: "credentials"
358+
----
359+
======
360+
[.include-with-legacy-MinIO-support]
361+
======
362+
[role=label--new-5.14 label--deprecated-5.26]
363+
.Legacy MinIO support
364+
[source, yaml]
365+
----
366+
backup:
367+
bucketName: "my-bucket"
368+
databaseAdminServiceName: "standalone-admin"
369+
minioEndpoint: "http://minio.example.com:9000" # Deprecated: Use s3Endpoint instead
370+
database: "neo4j,system"
371+
cloudProvider: "aws"
372+
secretName: "awscreds"
373+
secretKeyName: "credentials"
374+
----
375+
======
376+
=====
377+
378+
[IMPORTANT]
379+
====
380+
* The `s3EndpointTLS` parameter must be set to `true` when using HTTPS endpoints.
381+
* When using custom CA certificates, provide them base64-encoded in the `s3CACert` parameter.
382+
* The `s3SkipVerify` parameter should only be used in development environments.
383+
* Legacy MinIO support through the `minioEndpoint` parameter is deprecated - use `s3Endpoint` instead.
384+
====
324385

325386
[role=label--new-5.16]
326387
[[kubernetes-neo4j-backup-on-prem]]
327388
== Prepare to back up a database(s) to on-premises storage
328389

329-
_This feature is available from Neo4j 5.16._
330-
331390
You can perform a backup of a Neo4j database(s) to on-premises storage using the _neo4j/neo4j-admin_ Helm chart.
332391
When configuring the _backup-values.yaml_ file, keep the “cloudProvider” field empty and provide a persistent volume in the `tempVolume` section to ensure the backup files are persistent if the pod is deleted.
333392

0 commit comments

Comments
 (0)