Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion helm/cluster-chart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ It is the workload-facing companion to the [RavenDB Operator chart](../chart/REA
- Deploys resources into the release namespace (the namespace must already exist, or be created at install time with `helm install --create-namespace`).
- Provisions cert and license Secrets from `--set-file` inputs (or references pre-existing Secrets when no file is provided).
- Renders a `RavenDBCluster` CR from `values.yaml` (values mirror `RavenDBClusterSpec` 1:1).
- When `externalAccessConfiguration.type == ingress-controller` and `ingressClassName == traefik`, renders one `IngressRouteTCP` per node for HTTPS (port 443) and TCP (port 38888), with TLS passthrough. Hostnames are extracted from `publicServerUrl` and `publicServerUrlTcp`. Both routes target the per-node Service `ravendb-<tag>` (created by the operator). Traefik entrypoint names are configurable via `traefik.entryPoints.https` and `traefik.entryPoints.tcp`.
- When `externalAccessConfiguration.type == ingress-controller` and `ingressClassName == traefik`, renders one `IngressRouteTCP` per node for HTTPS (port 443) and TCP (port 38888), with TLS passthrough. Hostnames are extracted from `publicServerUrl` and `publicServerUrlTcp`. Both routes target the per-node Service `ravendb-<tag>` (created by the operator). Traefik entrypoint names are configurable via `traefik.entryPoints.https` and `traefik.entryPoints.tcp`; annotations for all generated routes are configurable via `traefik.annotations`.

## What this chart does NOT do

Expand Down Expand Up @@ -94,6 +94,7 @@ Pass `--create-namespace` if the namespace doesn't already exist. Installing int
| `spec.*` | Mirrors `RavenDBClusterSpec` 1:1. Required fields fail at template time if missing. |
| `traefik.entryPoints.https` | Traefik entrypoint name for HTTPS routes. Default: `websecure`. |
| `traefik.entryPoints.tcp` | Traefik entrypoint name for TCP routes. Default: `tcp`. |
| `traefik.annotations` | Annotations applied to all generated Traefik `IngressRouteTCP` resources. Default: `{}`. |

See [`values.yaml`](values.yaml) for the full shape and inline documentation, including all `spec.*` fields (nodes, mode, domain, external access types, storage, env, additional volumes, …).

Expand Down
9 changes: 9 additions & 0 deletions helm/cluster-chart/templates/traefik-ingressroutetcp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
{{- if eq (default "" $ic.ingressClassName) "traefik" }}
{{- $httpsEntry := required "traefik.entryPoints.https is required" .Values.traefik.entryPoints.https }}
{{- $tcpEntry := required "traefik.entryPoints.tcp is required" .Values.traefik.entryPoints.tcp }}
{{- $annotations := default dict .Values.traefik.annotations }}
{{- range .Values.spec.nodes }}
{{- /* k8s object names must be RFC 1035 lowercase; the operator lowercases the tag when building Service names, so we do the same to match. The CR-level .tag stays as-is (RavenDB convention preserves case). */}}
{{- $svcName := printf "ravendb-%s" (.tag | lower) }}
Expand All @@ -25,6 +26,10 @@ metadata:
namespace: {{ $.Release.Namespace }}
labels:
{{- include "ravendb-cluster.labels" $ | nindent 4 }}
{{- with $annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
entryPoints:
- {{ $httpsEntry }}
Expand All @@ -43,6 +48,10 @@ metadata:
namespace: {{ $.Release.Namespace }}
labels:
{{- include "ravendb-cluster.labels" $ | nindent 4 }}
{{- with $annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
entryPoints:
- {{ $tcpEntry }}
Expand Down
2 changes: 2 additions & 0 deletions helm/cluster-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ nameOverride: ""
# and one for TCP, with TLS passthrough.
#
# entryPoints map to entrypoint names configured at Traefik install time.
# annotations are applied to every generated Traefik IngressRouteTCP.
# ------------------------------------------------------------------------------
traefik:
entryPoints:
https: websecure
tcp: tcp
annotations: {}

# ------------------------------------------------------------------------------
# Secrets - hybrid model: provision via --set-file, OR reference existing Secrets.
Expand Down