Welcome to the Memgraph Helm Charts repository. This repository provides Helm charts for deploying Memgraph, an open-source in-memory graph database.
Helm version 3 or above installed.
Add the Memgraph Helm chart repository to your local Helm setup by running the following command:
helm repo add memgraph https://memgraph.github.io/helm-charts
Make sure to update the repository to fetch the latest Helm charts available:
helm repo update
Deploys standalone Memgraph. For detailed information and usage instructions, please refer to the chart's individual README file.
To install the Memgraph standalone chart, run the following command:
helm install my-release memgraph/memgraph
Replace my-release with a name of your choice for the release.
Once Memgraph is installed, you can access it using the provided services and endpoints. Refer to the Memgraph documentation for details on how to connect to and interact with Memgraph.
To upgrade or uninstall a deployed Memgraph release, you can use the helm upgrade or helm uninstall commands, respectively. Refer to the Helm documentation for more details on these commands.
Deploys Memgraph Lab. For detailed information and usage instructions, please refer to the chart's individual README file.
To install Memgraph Lab, run the following command:
helm install my-release memgraph/memgraph-lab
Replace my-release with a name of your choice for the release.
Refer to the Data visualization in Memgraph Lab for details on how to connect to and interact with Memgraph.
To upgrade or uninstall a deployed Memgraph release, you can use the helm upgrade or helm uninstall commands, respectively. Refer to the Helm documentation for more details on these commands.
Deploys high available Memgraph cluster, that includes two data instances and three coordinators.
For detailed information and usage instructions, please refer to the chart's individual README file.
To install the chart, run the following command:
helm install my-release memgraph/memgraph-high-availability --set env.MEMGRAPH_ENTERPRISE_LICENSE=<your-license>,env.MEMGRAPH_ORGANIZATION_NAME=<your-organization-name>
Replace my-release with a name of your choice for the release.
There are a few additional steps to make the cluster fully operational. Please take a look under the Setting up the cluster docs section.
Once Memgraph cluster is up and running, you can access it using the provided services and endpoints. Refer to the Memgraph documentation for details on how to connect to and interact with Memgraph.
To upgrade or uninstall a deployed Memgraph release, you can use the helm upgrade or helm uninstall commands, respectively. Refer to the Helm documentation for more details on these commands.
Both Memgraph charts support optional remote observability:
- Remote metrics via
vmagentRemoteusing Prometheusremote_write. - Remote logs via
vectorRemoteusing Loki-compatible push API.
This works with VictoriaMetrics/VictoriaLogs, and with other backends that expose compatible Prometheus remote-write and Loki endpoints.
- Enable chart-level Prometheus exporter (
prometheus.enabled=true). - Use a secret containing credentials for your remote endpoints (required for
vmagentRemote; optional forvectorRemote). - For standalone chart, enable Memgraph monitoring ports:
service.enableHttpMonitoring=trueservice.enableWebsocketMonitoring=true
- If
vectorRemote.enabled=true, add Memgraph monitoring flags:- standalone chart: add
--monitoring-port=<service.websocketPortMonitoring>and--monitoring-address=0.0.0.0tomemgraphConfig - HA chart: add
--monitoring-port=<vectorRemote.websocketPort>and--monitoring-address=0.0.0.0to each instance'sargs
- standalone chart: add
- If
vmagentRemote.enabled=trueand you only need remote_write, setprometheus.serviceMonitor.enabled=falseto avoid duplicate scraping ofmg-exporterby both vmagent and kube-prometheus.
prometheus:
enabled: true
namespace: monitoring
serviceMonitor:
enabled: false
service:
enableHttpMonitoring: true
enableWebsocketMonitoring: true
memgraphConfig:
- "--data-directory=/var/lib/memgraph/mg_data"
- "--also-log-to-stderr=true"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"
vmagentRemote:
enabled: true
namespace: monitoring
remoteWrite:
url: "https://<prom-remote-write>/api/v1/write"
basicAuth:
secretName: monitoring-basic-auth
usernameKey: username
passwordKey: password
externalLabels:
cluster_id: "memgraph-standalone"
service_name: "memgraph"
cluster_env: "dev"
vectorRemote:
enabled: true
logsEndpoint: "https://<loki-endpoint>"
# Optional: only set auth when endpoint requires basic auth.
auth:
secretName: monitoring-basic-auth
usernameKey: username
passwordKey: password
extraLabels:
cluster_id: "memgraph-standalone"
service_name: "memgraph"
cluster_env: "dev"
role: "standalone"prometheus:
enabled: true
namespace: monitoring
serviceMonitor:
enabled: false
vmagentRemote:
enabled: true
namespace: monitoring
remoteWrite:
url: "https://<prom-remote-write>/api/v1/write"
basicAuth:
secretName: monitoring-basic-auth
usernameKey: username
passwordKey: password
externalLabels:
cluster_id: "memgraph-testing-cluster-53"
service_name: "Memgraph HA"
cluster_env: "self-hosted-large-01"
vectorRemote:
enabled: true
data: true
coordinators: true
websocketPort: 7444
logsEndpoint: "https://<loki-endpoint>"
# Optional: only set auth when endpoint requires basic auth.
auth:
secretName: monitoring-basic-auth
usernameKey: username
passwordKey: password
extraLabels:
cluster_id: "memgraph-testing-cluster-53"
service_name: "Memgraph HA"
cluster_env: "self-hosted-large-01"
data:
- id: "0"
args:
- "--management-port=10000"
- "--bolt-port=7687"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"
- id: "1"
args:
- "--management-port=10000"
- "--bolt-port=7687"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"
coordinators:
- id: "1"
args:
- "--coordinator-id=1"
- "--coordinator-port=12000"
- "--management-port=10000"
- "--bolt-port=7687"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"
- id: "2"
args:
- "--coordinator-id=2"
- "--coordinator-port=12000"
- "--management-port=10000"
- "--bolt-port=7687"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"
- id: "3"
args:
- "--coordinator-id=3"
- "--coordinator-port=12000"
- "--management-port=10000"
- "--bolt-port=7687"
- "--monitoring-port=7444"
- "--monitoring-address=0.0.0.0"Create the same secret in all namespaces where the components run:
kubectl create secret generic monitoring-basic-auth -n monitoring \
--from-literal=username='<username>' \
--from-literal=password='<password>'For HA and standalone vector sidecars, also create the same secret in the Memgraph release namespace (for example default or memgraph):
kubectl create secret generic monitoring-basic-auth -n <memgraph-namespace> \
--from-literal=username='<username>' \
--from-literal=password='<password>'Creates HA Memgraph cluster with one command. The only thing you need to do is add your license details. Used bridged docker network for communication.
Contributions are welcome! If you have any improvements, bug fixes, or new charts to add, please follow the contribution guidelines outlined in the CONTRIBUTING.md file. If you have questions and are unsure of how to contribute, please join our Discord server to get in touch with us.
Find more details under Debugging Running Pods documentation section.
This repository is licensed under the Apache 2.0 License.