-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'PRO-444-features-for-11-2' into fix/GDB-10777_backup_ex…
…amples
- Loading branch information
Showing
4 changed files
with
101 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# GraphDB External Plugins Examples | ||
|
||
This folder contains examples of how to configure GraphDB with external plugins by providing them to the classpath. | ||
See https://graphdb.ontotext.com/documentation/10.7/plug-in-api.html#adding-external-plugins-to-graphdb for more information and | ||
configuration examples. | ||
|
||
## Using GraphDB Persistence | ||
|
||
For GraphDB to pick up and use external plugins, their JAR files must be registered in the classpath. | ||
The Helm chart configures GraphDB to expect extra plugins at `/opt/graphdb/home/extra-plugins` from where the database will pick them up. | ||
|
||
The directory `/opt/graphdb/home/extra-plugins` is located inside the default persistence volume. | ||
Any extra plugins that have been provisioned in this directory will be available between pod restarts and GraphDB updates. | ||
|
||
There are two common ways to provide extra plugins inside existing PV: | ||
|
||
* Using a custom init container that will download JARs from the internet or from other locations. | ||
* Copying the files manually using `kubectl` from your local system or copying them from another PV. | ||
|
||
This example will focus on copying JAR files with `kubectl`. | ||
|
||
For example, to configure GraphDB with an external plugin inside the GraphDB pod `graphdb-0`, you can use: | ||
|
||
```bash | ||
kubectl cp custom-plugin.jar graphdb-0:/opt/graphdb/home/extra-plugins/ | ||
``` | ||
|
||
In case of a GraphDB cluster setup, you have to provide the plugin to all pods: | ||
|
||
```bash | ||
kubectl cp custom-plugin.jar graphdb-0:/opt/graphdb/home/extra-plugins/ | ||
kubectl cp custom-plugin.jar graphdb-1:/opt/graphdb/home/extra-plugins/ | ||
kubectl cp custom-plugin.jar graphdb-2:/opt/graphdb/home/extra-plugins/ | ||
``` | ||
|
||
## Using Another Persistence Volume | ||
|
||
Another option is to prepare a different PVC and PV, copy the plugins inside that PV and configure GraphDB to use it with: | ||
|
||
```yaml | ||
extraVolumes: | ||
- name: extra-plugins | ||
persistentVolumeClaim: | ||
claimName: graphdb-extra-plugins | ||
|
||
extraVolumeMounts: | ||
- name: extra-plugins | ||
mountPath: /opt/graphdb/home/extra-plugins | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# GraphDB Virtualization Examples | ||
|
||
This folder contains examples of how to configure GraphDB's virtualization features by providing JDBC drivers to GraphDB's classpath. | ||
See https://graphdb.ontotext.com/documentation/10.7/virtualization.html for more information and [Ontop](https://ontop-vkg.org/guide/) | ||
configuration examples. | ||
|
||
## Using GraphDB Persistence | ||
|
||
For GraphDB to pick up and use JDBC drivers, their JAR files must be registered in the classpath. | ||
The Helm chart configures GraphDB to expect JDBC drivers at `/opt/graphdb/home/jdbc-driver` from where the database will pick them up. | ||
This detection is dynamic so you don't need to restart GraphDB when provisioning drivers. | ||
|
||
The directory `/opt/graphdb/home/jdbc-driver` is located inside the default persistence volume. | ||
JDBC drivers that have been provisioned in this directory will be available between pod restarts and GraphDB updates. | ||
|
||
There are two common ways to provide drivers inside existing PV: | ||
|
||
* Using a custom init container that will download JDBC jars from the internet. | ||
* Copying the files manually using `kubectl` or from another PV. | ||
|
||
This example will focus on copying JAR files with `kubectl`. | ||
|
||
For example, to configure GraphDB with a JDBC driver for PostgreSQL inside the GraphDB pod `graphdb-0`, you can use: | ||
|
||
```bash | ||
kubectl cp postgresql-42.7.4.jar graphdb-0:/opt/graphdb/home/jdbc-driver/ | ||
``` | ||
|
||
In case of a GraphDB cluster setup, you have to provide the driver to all pods: | ||
|
||
```bash | ||
kubectl cp postgresql-42.7.4.jar graphdb-0:/opt/graphdb/home/jdbc-driver/ | ||
kubectl cp postgresql-42.7.4.jar graphdb-1:/opt/graphdb/home/jdbc-driver/ | ||
kubectl cp postgresql-42.7.4.jar graphdb-2:/opt/graphdb/home/jdbc-driver/ | ||
``` | ||
|
||
## Using Another Persistence Volume | ||
|
||
Another option is to prepare a different PVC and PV, copy the JDBC drivers inside that PV and configure GraphDB to use this with: | ||
|
||
```yaml | ||
extraVolumes: | ||
- name: jdbc-drivers | ||
persistentVolumeClaim: | ||
claimName: jdbc-drivers | ||
|
||
extraVolumeMounts: | ||
- name: jdbc-drivers | ||
mountPath: /opt/graphdb/home/jdbc-driver | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters