diff --git a/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx b/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx index 7cfd0ef69..3177efd6b 100644 --- a/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx +++ b/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx @@ -283,7 +283,7 @@ Memgraph HA uses **client-side routing**, so DNS resolution happens internal Clu one more type of network which will be used for clients accessing instances from outside the cluster. Our HA supports out of the box following K8s resources used to setup external access: -- **IngressNginx** - one LoadBalancer for all instances. +- **IngressNginx** - one LoadBalancer for all instances. TCP port bases are configured under `externalAccessConfig.ingress`. - **NodePort** - exposes ports on each node (requires public node IPs). - **LoadBalancer** - one LoadBalancer per instance (highest cost). - **CommonLoadBalancer (coordinators only)** - single LB for all coordinators. @@ -802,6 +802,19 @@ helm install mem-ha-test ./charts/memgraph-high-availability --set \ When using these settings, the chart will automatically install and configure **IngressNginx**, including all required TCP routing setup for Memgraph. +Each instance is exposed on a distinct Bolt port. Data instance ports are +assigned as `dataPortBase + array index` (default: 9000, 9001, ...) and +coordinator ports as `coordinatorPortBase + coordinator id` (default: 9011, +9012, 9013). These base ports are configured independently from the Gateway API +under `externalAccessConfig.ingress`: + +```yaml +externalAccessConfig: + ingress: + dataPortBase: 9000 + coordinatorPortBase: 9010 +``` + ## Probes @@ -1321,6 +1334,8 @@ and their default values. | `externalAccessConfig.coordinator.annotations` | Annotations for external services attached to coordinators. | `{}` | | `externalAccessConfig.dataInstance.serviceType` | IngressNginx, NodePort or LoadBalancer. By default, no external service will be created. | `""` | | `externalAccessConfig.dataInstance.annotations` | Annotations for external services attached to data instances. | `{}` | +| `externalAccessConfig.ingress.dataPortBase` | Base port for data instance IngressNginx TCP ports (`dataPortBase + index`). | `9000` | +| `externalAccessConfig.ingress.coordinatorPortBase` | Base port for coordinator IngressNginx TCP ports (`coordinatorPortBase + id`). | `9010` | | `externalAccessConfig.gateway.enabled` | Enable Gateway API external access. | `false` | | `externalAccessConfig.gateway.gatewayClassName` | Name of a pre-existing GatewayClass. Required when creating a new Gateway. | `""` | | `externalAccessConfig.gateway.existingGatewayName` | Name of an existing Gateway to attach routes to. Skips Gateway creation. | `""` |