{"id":25037342,"url":"https://github.com/ontotext-ad/graphdb-helm","last_synced_at":"2026-01-22T14:55:23.896Z","repository":{"id":37961475,"uuid":"345699776","full_name":"Ontotext-AD/graphdb-helm","owner":"Ontotext-AD","description":"Official Helm chart for GraphDB","archived":false,"fork":false,"pushed_at":"2026-01-15T09:19:09.000Z","size":761,"stargazers_count":26,"open_issues_count":15,"forks_count":23,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-01-15T15:29:15.851Z","etag":null,"topics":["graphdb","helm","kubernetes","ontotext","rdf","semantic"],"latest_commit_sha":null,"homepage":"https://www.ontotext.com/products/graphdb/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ontotext-AD.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-08T15:19:52.000Z","updated_at":"2026-01-15T09:18:35.000Z","dependencies_parsed_at":"2024-02-19T17:09:36.866Z","dependency_job_id":"197c1646-ee23-44b3-9817-590362505d4d","html_url":"https://github.com/Ontotext-AD/graphdb-helm","commit_stats":null,"previous_names":[],"tags_count":92,"template":false,"template_full_name":null,"purl":"pkg:github/Ontotext-AD/graphdb-helm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ontotext-AD%2Fgraphdb-helm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ontotext-AD%2Fgraphdb-helm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ontotext-AD%2Fgraphdb-helm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ontotext-AD%2Fgraphdb-helm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ontotext-AD","download_url":"https://codeload.github.com/Ontotext-AD/graphdb-helm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ontotext-AD%2Fgraphdb-helm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28664763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T14:01:31.714Z","status":"ssl_error","status_checked_at":"2026-01-22T13:59:23.143Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphdb","helm","kubernetes","ontotext","rdf","semantic"],"created_at":"2025-02-06T01:32:02.756Z","updated_at":"2026-01-22T14:55:23.883Z","avatar_url":"https://github.com/Ontotext-AD.png","language":"Shell","readme":"# Helm Chart for GraphDB\n\n[![CI](https://github.com/Ontotext-AD/graphdb-helm/actions/workflows/ci.yml/badge.svg)](https://github.com/Ontotext-AD/graphdb-helm/actions/workflows/ci.yml)\n![Version: 12.2.1](https://img.shields.io/badge/Version-12.2.1-informational?style=flat-square)\n![AppVersion: 11.2.1](https://img.shields.io/badge/AppVersion-11.2.1-informational?style=flat-square)\n\n\u003c!--\nTODO: Add ArtifactHub badge when ready\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/ontotext)](https://artifacthub.io/packages/helm/ontotext/graphdb)\n--\u003e\n\nWelcome to the official [Helm](https://helm.sh/) chart repository for [GraphDB](https://www.ontotext.com/products/graphdb/)!\nThis Helm chart makes it easy to deploy and manage [GraphDB](https://www.ontotext.com/products/graphdb/) on your [Kubernetes](https://kubernetes.io/) cluster.\n\n---\n\n:warning: **Important**: Beginning from version 11, the Helm chart has its own release cycle and is no longer tied to the version of GraphDB.\n\n---\n\n## Quickstart\n\n```shell\nhelm repo add ontotext https://maven.ontotext.com/repository/helm-public/\nhelm install graphdb ontotext/graphdb\n```\n\n## About GraphDB\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.ontotext.com/products/graphdb/\"\u003e\n    \u003cpicture\u003e\n      \u003cimg src=\"https://www.ontotext.com/wp-content/uploads/2022/09/Logo-GraphDB.svg\" alt=\"GraphDB logo\" title=\"GraphDB\" height=\"75\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nOntotext GraphDB is a highly efficient, scalable and robust graph database with RDF and SPARQL support. With excellent enterprise features,\nintegration with external search applications, compatibility with industry standards, and both community and commercial support, GraphDB is the\npreferred database choice of both small independent developers and big enterprises.\n\n\u003c!--\nTODO: Info about the basic Helm chart features ?\n## Features\n--\u003e\n\n## Prerequisites\n\n* Kubernetes v1.26+\n* Helm v3.8+\n\n### Getting Started\n\nIf this is your first time installing a Helm chart, you should read the following introductions before continuing:\n\n- Docker https://docs.docker.com/get-started/\n- Kubernetes concepts https://kubernetes.io/docs/concepts/\n- Helm https://helm.sh/docs/intro/quickstart/\n\nAfter getting familiar with the above, you need to install the following binaries on your machine:\n\n- Install Helm 3: https://helm.sh/docs/intro/install/\n- Install `kubectl`: https://kubernetes.io/docs/tasks/tools/install-kubectl/\n\nNext, you would need access to a Kubernetes cluster. You can set up a local one or use one of the cloud providers, e.g.:\n\n* Minikube https://minikube.sigs.k8s.io/docs/\n* kind https://kind.sigs.k8s.io/\n* Amazon EKS https://aws.amazon.com/eks/\n* Azure AKS https://azure.microsoft.com/en-us/products/kubernetes-service\n* Google GKE https://cloud.google.com/kubernetes-engine\n\n### GraphDB License\n\nTo use GraphDB Enterprise Edition features, you need a license.\nIf you have a GraphDB license, create a Secret object with a `graphdb.license` data entry:\n\n```shell\nkubectl create secret generic graphdb-license --from-file graphdb.license=graphdb.license\n```\n\nThen add the secret name to the values.yaml file under the `license.existingSecret` configuration.\n\n**Note**: Secret names can differ from the given examples in the [values.yaml](values.yaml), but their configurations should be updated\nto refer to the correct ones. Note that the licenses can be set for all node instances. Please setup correctly according to the licensing agreements.\n\n## Install\n\n### Version Compatability\n\nThe next table highlights the version mapping between the Helm chart and the deployed GraphDB.\n\n| Helm chart version | GraphDB version |\n|--------------------|-----------------|\n| 10.x               | 10.0 - 10.6.4   |\n| 11.x               | 10.6.4+         |\n| 12.x               | 11.0+           |\n\n### Install from Repository\n\n1. Add Ontotext repository\n\n    ```shell\n    helm repo add ontotext https://maven.ontotext.com/repository/helm-public/\n    ```\n\n2. Install GraphDB\n\n    ```shell\n    helm install graphdb ontotext/graphdb\n    ```\n\n3. Upgrade GraphDB deployment\n\n   ```shell\n   helm upgrade --install graphdb ontotext/graphdb\n   ```\n\nSee [Configuration](#configuration) and [values.yaml](values.yaml) on how to customize your GraphDB deployment.\n\n### Provenance\n\nHelm can verify the origin and integrity of the Helm chart by:\n\n1. Importing the public GnuPG key for GraphDB Helm:\n\n    ```shell\n    gpg --keyserver keyserver.ubuntu.com --recv-keys 8E1B45AF8157DB82\n    # Helm uses the legacy gpg format\n    gpg --export \u003e ~/.gnupg/pubring.gpg\n    ```\n\n2. Running `helm install` with the `--verify` flag, i.e.:\n\n    ```shell\n    helm install --verify graphdb ontotext/graphdb\n    ```\n\n**Note**: The verification works only when installing from a local tar.gz or when installing from the repository.\n\nCheck the official documentation for more information https://helm.sh/docs/topics/provenance/\n\n### Uninstall\n\nTo remove the deployed GraphDB, use:\n\n```shell\nhelm uninstall graphdb\n```\n\n**Note**: It is important to note that this will not remove any data, so the next time it is installed, the data will be loaded by its components.\n\n## Upgrading\n\nThe Helm chart follows [Semantic Versioning v2](https://semver.org/) so any breaking changes will be rolled out only in MAJOR versions of the chart.\n\nPlease, always check out the migration guides in [UPGRADE.md](UPGRADE.md) before switching to another major version of the Helm chart.\n\n## Configuration\n\nEvery component and resource is configured with sensible defaults in [values.yaml](values.yaml).\nMake sure you read it thoroughly, understand each property and the impact of changing any one of them.\n\nHelm allows you to override values from [values.yaml](values.yaml) in several ways.\nSee https://helm.sh/docs/chart_template_guide/values_files/.\n\n* Using a separate values.yaml with overrides:\n  ```shell\n  helm install graphdb ontotext/graphdb -f overrides.yaml\n  ```\n\n* Overriding specific values:\n  ```shell\n  helm install graphdb ontotext/graphdb --set security.enabled=true\n  ```\n\n### Ontop repositories\n\nOntop repositories require a JDBC driver. To use this type of repository, you have to provide a JDBC driver named `jdbc-driver.jar`.\nIt must be located in each GraphDB instance in which you wish to use with Ontop repository, in the folder `/opt/graphdb/home/jdbc-driver`.\nThe directory is part of the GraphDB home directory which is persistent, so the driver will persist after a restart or reschedule of a GraphDB pod.\n\n### Customizing GraphDB cluster and GraphDB specific properties\n\nGraphDB's Helm chart is made to be highly customizable regarding GraphDB's specific options and properties.\nThere are 3 important configuration sections:\n- GraphDB cluster configuration\n- GraphDB node configuration\n- GraphDB cluster proxy configuration\n\n#### GraphDB cluster configuration\n\nWith the release of GraphDB 10, master nodes are no longer needed for a cluster, so the size of the cluster is controlled by just one property: `replicas`.\nYou will need at least three GraphDB installations to create a fully functional cluster. Remember that the Raft algorithm recommends an odd number of nodes, so a cluster of five nodes is a good choice.\n\nNote: If `1` is selected as node count, the launched node will be standalone and no instances of the cluster proxy will be deployed!\n\n- The section `cluster.config` can be used to configure a GraphDB cluster.\n\nSee more about the cluster here: https://graphdb.ontotext.com/documentation/11.2/cluster-basics.html\n\n### Deploying GraphDB with security\n\nGraphDB's Helm chart supports deploying GraphDB with or without security. This can be toggled through `security.enabled`.\nIf it is deployed with security enabled, a special provisioning user is used for repository provisioning, cluster linking, health checks and so on.\nAdditional users can be added through the users file: `files/config/users.js`. The users are described with their roles, username and a bcrypt64 password.\n\nThe file can be provisioned before GraphDB's startup with the `security.initialUsers` configurations.\nIt can be overridden with other configmap containing the `users.js` file with `security.initialUsers.existingSecret`.\nNote that the `provisioning` user is required when security is turned on!\n\nBy default, if the security is turned on, GraphDB's basic security method is used. More complicated security configurations\ncan be configured using additional configurations in `graphdb.properties`.\n\nSee https://graphdb.ontotext.com/documentation/11.2/access-control.html\n\nPrior to GraphDB 10.0.0 the users and their settings were saved in the `settings.js` file.\n\n### Provisioning additional properties and settings\n\nMost of GraphDB's properties can be passed through `configuration.properties` or `configuration.javaArguments`.\nAnother option is to supply a `graphdb.properties` file.\nThis file can be provisioned on during GraphDB's startup using `configuration.extraProperties.existingConfigmap`.\n\nThe `graphdb.properties` file is also used for more complex security configurations such as LDAP, Oauth, Kerberos.\n\nSome additional settings are kept in the `settings.js` file. Most of those settings are internal for GraphDB and better left managed by the client.\nThe file can be provisioned before GraphDB's startup with the `configuration.initialSettings.existingSecret` configuration.\nNote the `settings.js` must contain `security.enabled\" : true` property when security is turned on!\n\nGraphDB uses Logback to configure logging using the `logback.xml` file.\nThe file can be provisioned before GraphDB's startup with the `configuration.logback.existingConfigmap` configuration.\n\nSee https://graphdb.ontotext.com/documentation/11.2/directories-and-config-properties.html#configuration-properties\n\nSee https://graphdb.ontotext.com/documentation/11.2/access-control.html\n\n### Importing data from existing persistent volume\n\nGraphDB supports attaching a folder as an import directory. The directory's content s visible in the Workbench and can be imported.\nIn the Helm chart you can use existing PV as an import directory. This is done through `import.volumeMount` using a `volumeClaimTemplateSpec`.\nThis way a dynamic PV/PVC can be provisioned, or you can use an existing PV with an appropriate `claimRef`.\n\n### Networking\n\nBy default, GraphDB's Helm chart comes with a default Ingress.\nThe Ingress can be disabled by switching `ingress.enabled` to false.\n\n### Cloud deployments specifics\n\nSome cloud Kubernetes clusters have some specifics that should be noted. Here are some useful tips on some cloud K8s clusters:\n\n##### Microsoft Azure\n\nWe recommend not to use the Microsoft Azure storage of type `azurefile`. The write speeds of this storage type when used in a Kubernetes cluster is\nnot good enough for GraphDB, and we recommend against using it in production environments.\n\nSee https://github.com/Azure/AKS/issues/223\n\n### Deployment\n\nSome important properties to update according to your deployment are:\n\n* `configuration.externalUrl` - Configures the address at which the Ingress controller and GraphDB are accessible.\n\n### Resources\n\nEach component is defined with default resource limits that are sufficient to deploy the chart\nand use it with small sets of data. However, for production deployments it is obligatory to revise\nthese resource limits and tune them for your environment. You should consider common requirements\nlike amount of data, users, expected traffic.\n\nLook for `\u003ccomponent\u003e.resources` blocks in [values.yaml](values.yaml). During Helm's template\nrendering, these YAML blocks are inserted in the Kubernetes pod configurations as pod resource\nlimits. Most resource configuration blocks are referring to official documentations.\n\nSee the Kubernetes documentation\nhttps://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\nabout defining resource limits.\n\n## Examples\n\nCheckout the [examples/](examples) folder in this repository.\n\n## Guides\n\n### Updating an expired GraphDB license\n\nWhen the license expires, you will have to update the Secret object and restart the GraphDB pods in order to load the new license.\n\nIn avoid restarting your current GraphDB instances, you can copy the new license directly into your GraphDB containers, in the folder `/opt/graphdb/home/conf`.\nIt's important to name your file exactly `graphdb.license`!\n\n```shell\nkubectl delete secret graphdb-license\nkubectl create secret generic graphdb-license --from-file graphdb.license=graphdb.license\nkubectl cp graphdb.license graphdb-pod-0:/opt/graphdb/home/conf/\nkubectl cp graphdb.license graphdb-pod-1:/opt/graphdb/home/conf/\nkubectl cp graphdb.license graphdb-pod-2:/opt/graphdb/home/conf/\n```\n\n## Values\n\n\u003c!--\nIMPORTANT: This is generated by helm-docs, do not attempt modifying it on hand as it will be automatically generated.\n--\u003e\n\n| Key | Type | Default | Description |\n|-----|------|---------|-------------|\n| affinity | object | `{}` |  |\n| annotations | object | `{}` |  |\n| args | list | `[]` |  |\n| automountServiceAccountToken | bool | `false` |  |\n| backup.cloud.bucketUri | string | `\"\"` |  |\n| backup.enabled | bool | `false` |  |\n| backup.extraEnv | list | `[]` |  |\n| backup.extraEnvFrom | list | `[]` |  |\n| backup.failedJobsHistoryLimit | int | `3` |  |\n| backup.local.existingPVC | string | `\"\"` |  |\n| backup.local.mountPath | string | `\"/opt/graphdb/backups/\"` |  |\n| backup.options.backupSystemData | bool | `true` |  |\n| backup.optionsSecret.existingSecret | string | `\"\"` |  |\n| backup.optionsSecret.secretKey | string | `\"backup_options.json\"` |  |\n| backup.schedule | string | `\"@midnight\"` |  |\n| backup.successfulJobsHistoryLimit | int | `3` |  |\n| backup.timezone | string | `\"\"` |  |\n| backup.type | string | `\"cloud\"` |  |\n| cluster.clusterCreationTimeout | int | `60` |  |\n| cluster.config.configmapKey | string | `\"cluster-config.json\"` |  |\n| cluster.config.existingConfigmap | string | `\"\"` |  |\n| cluster.config.params.electionMinTimeout | int | `8000` |  |\n| cluster.config.params.electionRangeTimeout | int | `6000` |  |\n| cluster.config.params.heartbeatInterval | int | `2000` |  |\n| cluster.config.params.messageSizeKB | int | `64` |  |\n| cluster.config.params.transactionLogMaximumSizeGB | int | `50` |  |\n| cluster.config.params.verificationTimeout | int | `1500` |  |\n| cluster.jobs.createCluster.enabled | bool | `true` |  |\n| cluster.jobs.patchCluster.enabled | bool | `true` |  |\n| cluster.jobs.scaleCluster.enabled | bool | `true` |  |\n| cluster.tls.certificate.certificateKey | string | `\"certificate.pem\"` |  |\n| cluster.tls.certificate.existingSecret | string | `\"\"` |  |\n| cluster.tls.certificateChain.certificateChainKey | string | `\"certChain.pem\"` |  |\n| cluster.tls.certificateChain.existingSecret | string | `\"\"` |  |\n| cluster.tls.certificateKey.existingSecret | string | `\"\"` |  |\n| cluster.tls.certificateKey.privateKeyKey | string | `\"privatekey.pem\"` |  |\n| cluster.tls.certificateKey.privateKeyPasswordKey | string | `\"privatekey_password\"` |  |\n| cluster.tls.certificateRevocationList.certificateRevocationListKey | string | `\"crl.pem\"` |  |\n| cluster.tls.certificateRevocationList.existingSecret | string | `\"\"` |  |\n| cluster.tls.keystore.existingSecret | string | `\"\"` |  |\n| cluster.tls.keystore.keyAlias | string | `\"graphdb\"` |  |\n| cluster.tls.keystore.keystoreKey | string | `\"keystore.jks\"` |  |\n| cluster.tls.keystore.keystorePasswordKey | string | `\"keystore_password\"` |  |\n| cluster.tls.keystore.keystoreProvider | string | `\"SUN\"` |  |\n| cluster.tls.keystore.keystoreType | string | `\"JKS\"` |  |\n| cluster.tls.mode | string | `\"DEFAULT\"` |  |\n| cluster.tls.mountPath | string | `\"/etc/graphdb/tls/grpc/\"` |  |\n| cluster.tls.rootCerts.existingSecret | string | `\"\"` |  |\n| cluster.tls.rootCerts.rootCertsKey | string | `\"rootCerts.pem\"` |  |\n| cluster.tls.truststore.existingSecret | string | `\"\"` |  |\n| cluster.tls.truststore.truststoreKey | string | `\"truststore.jks\"` |  |\n| cluster.tls.truststore.truststorePasswordKey | string | `\"truststore_password\"` |  |\n| cluster.tls.truststore.truststoreProvider | string | `\"SUN\"` |  |\n| cluster.tls.truststore.truststoreType | string | `\"JKS\"` |  |\n| cluster.token.existingSecret | string | `\"\"` |  |\n| cluster.token.secret | string | `\"s3cr37\"` |  |\n| cluster.token.secretKey | string | `\"\"` |  |\n| command | list | `[]` |  |\n| configuration.defaultJavaArguments | string | `\"-XX:+UseContainerSupport -XX:MaxRAMPercentage=70 -XX:-UseCompressedOops -Ddefault.min.distinct.threshold=100m\"` |  |\n| configuration.externalUrl | string | `\"http://graphdb.127.0.0.1.nip.io/\"` |  |\n| configuration.extraProperties.configmapKey | string | `\"graphdb.properties\"` |  |\n| configuration.extraProperties.existingConfigmap | string | `\"\"` |  |\n| configuration.extraProperties.existingSecret | string | `\"\"` |  |\n| configuration.extraProperties.secretKey | string | `\"graphdb.properties\"` |  |\n| configuration.initialSettings.configmapKey | string | `\"settings.js\"` |  |\n| configuration.initialSettings.existingConfigmap | string | `\"\"` |  |\n| configuration.javaArguments | string | `\"\"` |  |\n| configuration.logback.configmapKey | string | `\"logback.xml\"` |  |\n| configuration.logback.existingConfigmap | string | `\"\"` |  |\n| configuration.properties | object | `{}` |  |\n| configuration.secretProperties | object | `{}` |  |\n| configuration.tls.certificateRevocationList.certificateRevocationListKey | string | `\"crl.pem\"` |  |\n| configuration.tls.certificateRevocationList.existingSecret | string | `\"\"` |  |\n| configuration.tls.keystore.existingSecret | string | `\"\"` |  |\n| configuration.tls.keystore.keyAlias | string | `\"graphdb\"` |  |\n| configuration.tls.keystore.keystoreKey | string | `\"keystore.jks\"` |  |\n| configuration.tls.keystore.keystorePasswordKey | string | `\"keystore_password\"` |  |\n| configuration.tls.keystore.keystoreProvider | string | `\"SUN\"` |  |\n| configuration.tls.keystore.keystoreType | string | `\"JKS\"` |  |\n| configuration.tls.mountPath | string | `\"/etc/graphdb/tls/tomcat/\"` |  |\n| configuration.tls.truststore.existingSecret | string | `\"\"` |  |\n| configuration.tls.truststore.truststoreKey | string | `\"truststore.jks\"` |  |\n| configuration.tls.truststore.truststorePasswordKey | string | `\"truststore_password\"` |  |\n| configuration.tls.truststore.truststoreProvider | string | `\"SUN\"` |  |\n| configuration.tls.truststore.truststoreType | string | `\"JKS\"` |  |\n| containerPorts.http | int | `7200` |  |\n| containerPorts.rpc | int | `7300` |  |\n| dnsConfig | object | `{}` |  |\n| dnsPolicy | string | `\"\"` |  |\n| extraContainerPorts | object | `{}` |  |\n| extraContainers | list | `[]` |  |\n| extraEnv | list | `[]` |  |\n| extraEnvFrom | list | `[]` |  |\n| extraInitContainers | list | `[]` |  |\n| extraObjects | list | `[]` |  |\n| extraVolumeClaimTemplates | list | `[]` |  |\n| extraVolumeMounts | list | `[]` |  |\n| extraVolumes | list | `[]` |  |\n| fullnameOverride | string | `\"\"` |  |\n| global.clusterDomain | string | `\"cluster.local\"` |  |\n| global.imagePullSecrets | list | `[]` |  |\n| global.imageRegistry | string | `\"\"` |  |\n| headlessService.annotations | object | `{}` |  |\n| headlessService.enabled | bool | `true` |  |\n| headlessService.extraPorts | list | `[]` |  |\n| headlessService.labels | object | `{}` |  |\n| headlessService.ports.http | int | `7200` |  |\n| headlessService.ports.rpc | int | `7300` |  |\n| image.digest | string | `\"\"` |  |\n| image.pullPolicy | string | `\"IfNotPresent\"` |  |\n| image.pullSecrets | list | `[]` |  |\n| image.registry | string | `\"docker.io\"` |  |\n| image.repository | string | `\"ontotext/graphdb\"` |  |\n| image.tag | string | `\"\"` |  |\n| import.volumeMount.enabled | bool | `false` |  |\n| import.volumeMount.volumeClaimTemplate.annotations | object | `{}` |  |\n| import.volumeMount.volumeClaimTemplate.labels | object | `{}` |  |\n| import.volumeMount.volumeClaimTemplate.name | string | `\"import\"` |  |\n| import.volumeMount.volumeClaimTemplate.spec.accessModes[0] | string | `\"ReadWriteOnce\"` |  |\n| import.volumeMount.volumeClaimTemplate.spec.resources.requests.storage | string | `\"10Gi\"` |  |\n| indices.existingConfigmap | string | `\"\"` |  |\n| ingress.annotations | object | `{}` |  |\n| ingress.className | string | `\"\"` |  |\n| ingress.enabled | bool | `true` |  |\n| ingress.extraHosts | list | `[]` |  |\n| ingress.extraTLS | list | `[]` |  |\n| ingress.host | string | `\"\"` |  |\n| ingress.labels | object | `{}` |  |\n| ingress.path | string | `\"\"` |  |\n| ingress.pathType | string | `\"Prefix\"` |  |\n| ingress.tls.enabled | bool | `false` |  |\n| ingress.tls.secretName | string | `\"\"` |  |\n| initContainerDataPermissions.enabled | bool | `false` |  |\n| initContainerDataPermissions.securityContext.runAsNonRoot | bool | `false` |  |\n| initContainerDataPermissions.securityContext.runAsUser | int | `0` |  |\n| initContainerResources.limits.cpu | string | `\"50m\"` |  |\n| initContainerResources.limits.memory | string | `\"16Mi\"` |  |\n| initContainerResources.requests.cpu | string | `\"50m\"` |  |\n| initContainerResources.requests.memory | string | `\"16Mi\"` |  |\n| initContainerSecurityContext.allowPrivilegeEscalation | bool | `false` |  |\n| initContainerSecurityContext.capabilities.drop[0] | string | `\"ALL\"` |  |\n| initContainerSecurityContext.readOnlyRootFilesystem | bool | `true` |  |\n| initContainerSecurityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| jobs.affinity | object | `{}` |  |\n| jobs.backoffLimit | int | `10` |  |\n| jobs.dnsConfig | object | `{}` |  |\n| jobs.dnsPolicy | string | `\"\"` |  |\n| jobs.nodeSelector | object | `{}` |  |\n| jobs.persistence.emptyDir.sizeLimit | string | `\"10Mi\"` |  |\n| jobs.podSecurityContext.fsGroup | int | `10001` |  |\n| jobs.podSecurityContext.fsGroupChangePolicy | string | `\"OnRootMismatch\"` |  |\n| jobs.podSecurityContext.runAsGroup | int | `10001` |  |\n| jobs.podSecurityContext.runAsNonRoot | bool | `true` |  |\n| jobs.podSecurityContext.runAsUser | int | `10001` |  |\n| jobs.podSecurityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| jobs.priorityClassName | string | `\"\"` |  |\n| jobs.resources.limits.cpu | string | `\"50m\"` |  |\n| jobs.resources.limits.ephemeral-storage | string | `\"10Mi\"` |  |\n| jobs.resources.limits.memory | string | `\"16Mi\"` |  |\n| jobs.resources.requests.cpu | string | `\"50m\"` |  |\n| jobs.resources.requests.ephemeral-storage | string | `\"10Mi\"` |  |\n| jobs.resources.requests.memory | string | `\"16Mi\"` |  |\n| jobs.schedulerName | string | `\"\"` |  |\n| jobs.securityContext.allowPrivilegeEscalation | bool | `false` |  |\n| jobs.securityContext.capabilities.drop[0] | string | `\"ALL\"` |  |\n| jobs.securityContext.readOnlyRootFilesystem | bool | `true` |  |\n| jobs.securityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| jobs.tolerations | list | `[]` |  |\n| jobs.topologySpreadConstraints | list | `[]` |  |\n| jobs.ttlSecondsAfterFinished | int | `300` |  |\n| labels | object | `{}` |  |\n| license.existingSecret | string | `\"\"` |  |\n| license.licenseFilename | string | `\"graphdb.license\"` |  |\n| license.mountPath | string | `\"/opt/graphdb/home/conf/license/\"` |  |\n| license.optional | bool | `false` |  |\n| license.readOnly | bool | `true` |  |\n| livenessProbe.httpGet.path | string | `\"/protocol\"` |  |\n| livenessProbe.httpGet.port | string | `\"http\"` |  |\n| livenessProbe.initialDelaySeconds | int | `60` |  |\n| livenessProbe.periodSeconds | int | `10` |  |\n| livenessProbe.timeoutSeconds | int | `5` |  |\n| nameOverride | string | `\"\"` |  |\n| namespaceOverride | string | `\"\"` |  |\n| nodeSelector | object | `{}` |  |\n| persistence.emptyDir.sizeLimit | string | `\"1Gi\"` |  |\n| persistence.enabled | bool | `true` |  |\n| persistence.volumeClaimRetentionPolicy | object | `{}` |  |\n| persistence.volumeClaimTemplate.annotations | object | `{}` |  |\n| persistence.volumeClaimTemplate.labels | object | `{}` |  |\n| persistence.volumeClaimTemplate.name | string | `\"storage\"` |  |\n| persistence.volumeClaimTemplate.spec.accessModes[0] | string | `\"ReadWriteOnce\"` |  |\n| persistence.volumeClaimTemplate.spec.resources.requests.storage | string | `\"5Gi\"` |  |\n| podAnnotations | object | `{}` |  |\n| podAntiAffinity.enabled | bool | `true` |  |\n| podAntiAffinity.preset | string | `\"soft\"` |  |\n| podAntiAffinity.topology | string | `\"kubernetes.io/hostname\"` |  |\n| podDisruptionBudget.enabled | bool | `true` |  |\n| podDisruptionBudget.maxUnavailable | string | `\"\"` |  |\n| podDisruptionBudget.minAvailable | string | `\"51%\"` |  |\n| podLabels | object | `{}` |  |\n| podManagementPolicy | string | `\"Parallel\"` |  |\n| podSecurityContext.fsGroup | int | `10001` |  |\n| podSecurityContext.fsGroupChangePolicy | string | `\"OnRootMismatch\"` |  |\n| podSecurityContext.runAsGroup | int | `10001` |  |\n| podSecurityContext.runAsNonRoot | bool | `true` |  |\n| podSecurityContext.runAsUser | int | `10001` |  |\n| podSecurityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| priorityClassName | string | `\"\"` |  |\n| proxy.affinity | object | `{}` |  |\n| proxy.annotations | object | `{}` |  |\n| proxy.args | list | `[]` |  |\n| proxy.command | list | `[]` |  |\n| proxy.configuration.defaultJavaArguments | string | `\"-XX:+UseContainerSupport -XX:MaxRAMPercentage=70\"` |  |\n| proxy.configuration.extraProperties.configmapKey | string | `\"graphdb.properties\"` |  |\n| proxy.configuration.extraProperties.existingConfigmap | string | `\"\"` |  |\n| proxy.configuration.extraProperties.existingSecret | string | `\"\"` |  |\n| proxy.configuration.extraProperties.secretKey | string | `\"graphdb.properties\"` |  |\n| proxy.configuration.javaArguments | string | `\"\"` |  |\n| proxy.configuration.logback.configmapKey | string | `\"logback.xml\"` |  |\n| proxy.configuration.logback.existingConfigmap | string | `\"\"` |  |\n| proxy.configuration.properties | object | `{}` |  |\n| proxy.configuration.secretProperties | object | `{}` |  |\n| proxy.containerPorts.http | int | `7200` |  |\n| proxy.containerPorts.rpc | int | `7300` |  |\n| proxy.dnsConfig | object | `{}` |  |\n| proxy.dnsPolicy | string | `\"\"` |  |\n| proxy.extraContainerPorts | object | `{}` |  |\n| proxy.extraContainers | list | `[]` |  |\n| proxy.extraEnv | list | `[]` |  |\n| proxy.extraEnvFrom | list | `[]` |  |\n| proxy.extraInitContainers | list | `[]` |  |\n| proxy.extraVolumeClaimTemplates | list | `[]` |  |\n| proxy.extraVolumeMounts | list | `[]` |  |\n| proxy.extraVolumes | list | `[]` |  |\n| proxy.fullnameOverride | string | `\"\"` |  |\n| proxy.headlessService.annotations | object | `{}` |  |\n| proxy.headlessService.enabled | bool | `true` |  |\n| proxy.headlessService.extraPorts | list | `[]` |  |\n| proxy.headlessService.labels | object | `{}` |  |\n| proxy.headlessService.ports.http | int | `7200` |  |\n| proxy.headlessService.ports.rpc | int | `7300` |  |\n| proxy.initContainerDataPermissions.enabled | bool | `false` |  |\n| proxy.initContainerDataPermissions.securityContext.runAsNonRoot | bool | `false` |  |\n| proxy.initContainerDataPermissions.securityContext.runAsUser | int | `0` |  |\n| proxy.initContainerResources.limits.cpu | string | `\"50m\"` |  |\n| proxy.initContainerResources.limits.memory | string | `\"16Mi\"` |  |\n| proxy.initContainerResources.requests.cpu | string | `\"50m\"` |  |\n| proxy.initContainerResources.requests.memory | string | `\"16Mi\"` |  |\n| proxy.initContainerSecurityContext.allowPrivilegeEscalation | bool | `false` |  |\n| proxy.initContainerSecurityContext.capabilities.drop[0] | string | `\"ALL\"` |  |\n| proxy.initContainerSecurityContext.readOnlyRootFilesystem | bool | `true` |  |\n| proxy.initContainerSecurityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| proxy.labels | object | `{}` |  |\n| proxy.livenessProbe.httpGet.path | string | `\"/proxy/health\"` |  |\n| proxy.livenessProbe.httpGet.port | string | `\"http\"` |  |\n| proxy.livenessProbe.initialDelaySeconds | int | `60` |  |\n| proxy.livenessProbe.periodSeconds | int | `10` |  |\n| proxy.livenessProbe.timeoutSeconds | int | `5` |  |\n| proxy.nameOverride | string | `\"\"` |  |\n| proxy.nodeSelector | object | `{}` |  |\n| proxy.persistence.emptyDir.sizeLimit | string | `\"500Mi\"` |  |\n| proxy.persistence.enabled | bool | `true` |  |\n| proxy.persistence.volumeClaimRetentionPolicy | object | `{}` |  |\n| proxy.persistence.volumeClaimTemplate.annotations | object | `{}` |  |\n| proxy.persistence.volumeClaimTemplate.labels | object | `{}` |  |\n| proxy.persistence.volumeClaimTemplate.name | string | `\"storage\"` |  |\n| proxy.persistence.volumeClaimTemplate.spec.accessModes[0] | string | `\"ReadWriteOnce\"` |  |\n| proxy.persistence.volumeClaimTemplate.spec.resources.requests.storage | string | `\"500Mi\"` |  |\n| proxy.podAnnotations | object | `{}` |  |\n| proxy.podAntiAffinity.enabled | bool | `true` |  |\n| proxy.podAntiAffinity.preset | string | `\"soft\"` |  |\n| proxy.podAntiAffinity.topology | string | `\"kubernetes.io/hostname\"` |  |\n| proxy.podDisruptionBudget.enabled | bool | `true` |  |\n| proxy.podDisruptionBudget.maxUnavailable | string | `\"\"` |  |\n| proxy.podDisruptionBudget.minAvailable | string | `\"51%\"` |  |\n| proxy.podLabels | object | `{}` |  |\n| proxy.podManagementPolicy | string | `\"Parallel\"` |  |\n| proxy.podSecurityContext.fsGroup | int | `10001` |  |\n| proxy.podSecurityContext.fsGroupChangePolicy | string | `\"OnRootMismatch\"` |  |\n| proxy.podSecurityContext.runAsGroup | int | `10001` |  |\n| proxy.podSecurityContext.runAsNonRoot | bool | `true` |  |\n| proxy.podSecurityContext.runAsUser | int | `10001` |  |\n| proxy.podSecurityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| proxy.priorityClassName | string | `\"\"` |  |\n| proxy.readinessProbe.httpGet.path | string | `\"/proxy/ready\"` |  |\n| proxy.readinessProbe.httpGet.port | string | `\"http\"` |  |\n| proxy.readinessProbe.periodSeconds | int | `10` |  |\n| proxy.readinessProbe.timeoutSeconds | int | `5` |  |\n| proxy.replicas | int | `3` |  |\n| proxy.resources.limits.memory | string | `\"1500Mi\"` |  |\n| proxy.resources.requests.cpu | string | `\"100m\"` |  |\n| proxy.resources.requests.memory | string | `\"1500Mi\"` |  |\n| proxy.revisionHistoryLimit | int | `10` |  |\n| proxy.schedulerName | string | `\"\"` |  |\n| proxy.securityContext.allowPrivilegeEscalation | bool | `false` |  |\n| proxy.securityContext.capabilities.drop[0] | string | `\"ALL\"` |  |\n| proxy.securityContext.readOnlyRootFilesystem | bool | `true` |  |\n| proxy.securityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| proxy.service.annotations | object | `{}` |  |\n| proxy.service.enabled | bool | `true` |  |\n| proxy.service.externalIPs | list | `[]` |  |\n| proxy.service.externalTrafficPolicy | string | `\"\"` |  |\n| proxy.service.extraPorts | list | `[]` |  |\n| proxy.service.healthCheckNodePort | string | `\"\"` |  |\n| proxy.service.labels | object | `{}` |  |\n| proxy.service.loadBalancerClass | string | `\"\"` |  |\n| proxy.service.loadBalancerSourceRanges | list | `[]` |  |\n| proxy.service.nodePort | string | `\"\"` |  |\n| proxy.service.ports.http | int | `7200` |  |\n| proxy.service.type | string | `\"ClusterIP\"` |  |\n| proxy.startupProbe.failureThreshold | int | `120` |  |\n| proxy.startupProbe.httpGet.path | string | `\"/proxy/ready\"` |  |\n| proxy.startupProbe.httpGet.port | string | `\"http\"` |  |\n| proxy.startupProbe.periodSeconds | int | `3` |  |\n| proxy.startupProbe.timeoutSeconds | int | `1` |  |\n| proxy.terminationGracePeriodSeconds | int | `30` |  |\n| proxy.tolerations | list | `[]` |  |\n| proxy.topologySpreadConstraints | list | `[]` |  |\n| proxy.updateStrategy.type | string | `\"RollingUpdate\"` |  |\n| readinessProbe.httpGet.path | string | `\"/protocol\"` |  |\n| readinessProbe.httpGet.port | string | `\"http\"` |  |\n| readinessProbe.periodSeconds | int | `10` |  |\n| readinessProbe.timeoutSeconds | int | `5` |  |\n| replicas | int | `1` |  |\n| repositories.existingConfigmap | string | `\"\"` |  |\n| resources.limits.memory | string | `\"4Gi\"` |  |\n| resources.requests.cpu | string | `\"500m\"` |  |\n| resources.requests.memory | string | `\"4Gi\"` |  |\n| revisionHistoryLimit | int | `10` |  |\n| schedulerName | string | `\"\"` |  |\n| security.admin.initialPassword | string | `\"\"` |  |\n| security.enabled | bool | `false` |  |\n| security.initialUsers.existingSecret | string | `\"\"` |  |\n| security.initialUsers.secretKey | string | `\"users.js\"` |  |\n| security.initialUsers.users | object | `{}` |  |\n| security.overrideUsers | bool | `false` |  |\n| security.provisioner.existingSecret | string | `\"\"` |  |\n| security.provisioner.password | string | `\"iHaveSuperpowers\"` |  |\n| security.provisioner.passwordHash | string | `\"\"` |  |\n| security.provisioner.tokenKey | string | `\"GRAPHDB_AUTH_TOKEN\"` |  |\n| security.provisioner.username | string | `\"provisioner\"` |  |\n| securityContext.allowPrivilegeEscalation | bool | `false` |  |\n| securityContext.capabilities.drop[0] | string | `\"ALL\"` |  |\n| securityContext.readOnlyRootFilesystem | bool | `true` |  |\n| securityContext.seccompProfile.type | string | `\"RuntimeDefault\"` |  |\n| service.annotations | object | `{}` |  |\n| service.enabled | bool | `true` |  |\n| service.externalIPs | list | `[]` |  |\n| service.externalTrafficPolicy | string | `\"\"` |  |\n| service.extraPorts | list | `[]` |  |\n| service.healthCheckNodePort | string | `\"\"` |  |\n| service.labels | object | `{}` |  |\n| service.loadBalancerClass | string | `\"\"` |  |\n| service.loadBalancerSourceRanges | list | `[]` |  |\n| service.nodePort | string | `\"\"` |  |\n| service.ports.http | int | `7200` |  |\n| service.type | string | `\"ClusterIP\"` |  |\n| serviceAccount.annotations | object | `{}` |  |\n| serviceAccount.create | bool | `false` |  |\n| serviceAccount.name | string | `\"\"` |  |\n| startupProbe.failureThreshold | int | `300` |  |\n| startupProbe.httpGet.path | string | `\"/protocol\"` |  |\n| startupProbe.httpGet.port | string | `\"http\"` |  |\n| startupProbe.periodSeconds | int | `3` |  |\n| startupProbe.timeoutSeconds | int | `1` |  |\n| tempVolume.emptyDir.sizeLimit | string | `\"128Mi\"` |  |\n| tempVolume.enabled | bool | `true` |  |\n| terminationGracePeriodSeconds | int | `120` |  |\n| tolerations | list | `[]` |  |\n| topologySpreadConstraints | list | `[]` |  |\n| updateStrategy.type | string | `\"RollingUpdate\"` |  |\n\n## Troubleshooting\n\n**Helm install hangs**\n\nIf there is no output after `helm install`, it is likely that a hook cannot execute.\nCheck their logs with `kubectl logs`.\n\nAnother reason could be that the default timeout of 5 minutes for Helm `install` or `upgrade` is not enough.\nYou can increase the timeout by adding `--timeout 10m` (or more) to the Helm command.\n\n**Connection issues**\n\nIf connections time out or the pods cannot resolve each other, it is likely that the Kubernetes\nDNS is broken. This is a common issue with Minikube between system restarts or when inappropriate\nMinikube driver is used. Please refer to\nhttps://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/.\n\n**Filesystem provisioning errors (in Multi-Node Minikube Cluster)**\n\nWhen expanding your Minikube cluster from one to two or more nodes to deploy different GraphDB\ninstances across multiple nodes to ensure high availability, you may encounter errors when\nsetting up persistent storage. These issues are due to implementation problems with the storage\nprovisioner included with Minikube. To resolve this, you need to adjust your environment accordingly.\nFollow the steps outlined in the official Minikube documentation under the [\"CSI Driver and Volume\nSnapshots\"](https://minikube.sigs.k8s.io/docs/tutorials/volume_snapshots_and_csi/) section, specifically\nin the \"Multi-Node Clusters\" chapter.\n\n## Maintainers\n\n| Name | Email | Url |\n| ---- | ------ | --- |\n| Ontotext GraphDB team | \u003cgraphdb-support@ontotext.com\u003e |  |\n\n## Contributing\n\nIf you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.\n\n## License\n\nThis code is released under the Apache 2.0 License. See [LICENSE](LICENSE) for more details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fontotext-ad%2Fgraphdb-helm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fontotext-ad%2Fgraphdb-helm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fontotext-ad%2Fgraphdb-helm/lists"}