From d391b87681298782fd835126bfae00960a733c74 Mon Sep 17 00:00:00 2001 From: Dimosthenis Schizas Date: Tue, 28 Apr 2026 16:59:17 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=90=9B=20(templates/service.yaml):=20?= =?UTF-8?q?fix=20bug=20with=20appProtocol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/service.yaml | 4 ++-- tests/service_test.yaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/service.yaml b/templates/service.yaml index e1b6c52..315d7c2 100644 --- a/templates/service.yaml +++ b/templates/service.yaml @@ -12,7 +12,7 @@ spec: - port: {{ .Values.service.port }} targetPort: http protocol: TCP - appProtocol: http2 + appProtocol: http name: http selector: {{- include "typesense.selectorLabels" . | nindent 4 }} @@ -33,7 +33,7 @@ spec: - port: {{ .Values.service.port }} targetPort: http protocol: TCP - appProtocol: http2 + appProtocol: tcp name: http - port: 8107 targetPort: tcp-peering diff --git a/tests/service_test.yaml b/tests/service_test.yaml index e154e22..15abb03 100644 --- a/tests/service_test.yaml +++ b/tests/service_test.yaml @@ -31,7 +31,7 @@ tests: port: 8108 targetPort: http protocol: TCP - appProtocol: http2 + appProtocol: tcp name: http - contains: path: .spec.ports @@ -82,7 +82,7 @@ tests: port: 8108 targetPort: http protocol: TCP - appProtocol: http2 + appProtocol: http name: http - it: should render the service when gateway is enabled with correct spec set: @@ -106,7 +106,7 @@ tests: port: 8108 targetPort: http protocol: TCP - appProtocol: http2 + appProtocol: http name: http - it: should be possible to override the service port for both services set: From f9e3f70ce67eaf2095d624c53d0c24ad71930238 Mon Sep 17 00:00:00 2001 From: Dimosthenis Schizas Date: Tue, 28 Apr 2026 16:59:53 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=94=96=20update=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Chart.yaml | 2 +- README.md | 2 +- values.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Chart.yaml b/Chart.yaml index cac775f..ea60f87 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -3,7 +3,7 @@ name: typesense description: >- Deploy Typesense search engine on Kubernetes with Raft-based HA clustering, Prometheus metrics, and Gateway API support. This chart is not officially maintained by or affiliated with the Typesense project. type: application -version: 1.1.2 +version: 1.1.3 appVersion: "30.1" icon: https://typesense.org/typesense-logo.svg home: https://github.com/hackthebox/typesense-helm diff --git a/README.md b/README.md index 3dd1dfe..7eb5e3d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # typesense -![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 30.1](https://img.shields.io/badge/AppVersion-30.1-informational?style=flat-square) +![Version: 1.1.3](https://img.shields.io/badge/Version-1.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 30.1](https://img.shields.io/badge/AppVersion-30.1-informational?style=flat-square) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/typesense)](https://artifacthub.io/packages/search?repo=typesense) diff --git a/values.md b/values.md index 3dd1dfe..7eb5e3d 100644 --- a/values.md +++ b/values.md @@ -1,6 +1,6 @@ # typesense -![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 30.1](https://img.shields.io/badge/AppVersion-30.1-informational?style=flat-square) +![Version: 1.1.3](https://img.shields.io/badge/Version-1.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 30.1](https://img.shields.io/badge/AppVersion-30.1-informational?style=flat-square) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/typesense)](https://artifacthub.io/packages/search?repo=typesense) From efe8bba2222fdfbfb6f4323f7a60937c8fa5b00d Mon Sep 17 00:00:00 2001 From: Dimosthenis Schizas Date: Tue, 28 Apr 2026 17:00:38 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=93=9D=20(values.schema.json):=20upda?= =?UTF-8?q?te=20values=20schema=20(old)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- values.schema.json | 139 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 122 insertions(+), 17 deletions(-) diff --git a/values.schema.json b/values.schema.json index 675a0a0..62caa3f 100644 --- a/values.schema.json +++ b/values.schema.json @@ -2,7 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "affinity": { - "description": "Affinity rules for pod scheduling. When unset and replicaCount \u003e 1, a soft pod anti-affinity on kubernetes.io/hostname is automatically applied. Set to a non-empty affinity object to override.", + "description": "Affinity rules for pod scheduling. When unset or empty and replicaCount \u003e 1, a soft pod anti-affinity on kubernetes.io/hostname is automatically applied. Set to a non-empty affinity object to override this default behavior.", "required": [], "title": "affinity", "type": "object" @@ -180,13 +180,12 @@ "livenessProbe": { "properties": { "failureThreshold": { - "default": "2", + "default": "6", "description": "Number of failed liveness checks before restarting the container", "required": [], "title": "failureThreshold" }, "httpGet": { - "description": "HTTP GET path and port to check Typesense health for liveness", "properties": { "path": { "default": "/health", @@ -203,16 +202,46 @@ "path", "port" ], - "title": "httpGet" + "title": "httpGet", + "type": "object" }, "periodSeconds": { - "default": "10", + "default": "20", "description": "Period (in seconds) to perform the liveness check", "required": [], "title": "periodSeconds" + }, + "tcpSocket": { + "properties": { + "port": { + "default": "http", + "title": "port", + "type": "string" + } + }, + "required": [ + "port" + ], + "title": "tcpSocket", + "type": "object" + }, + "timeoutSeconds": { + "default": 3, + "title": "timeoutSeconds", + "type": "integer" + }, + "type": { + "default": "tcpSocket", + "description": "Probe type: 'tcpSocket' or 'httpGet'. Default is tcpSocket to check only that the process is alive and listening. Avoid httpGet /health for liveness: Typesense returns 503 when the write queue exceeds --healthy-write-lag (default 500), which occurs normally during Raft catch-up after a restart, causing a liveness-triggered restart loop that prevents the cluster from ever recovering.", + "required": [], + "title": "type" } }, - "required": [], + "required": [ + "httpGet", + "tcpSocket", + "timeoutSeconds" + ], "title": "livenessProbe", "type": "object" }, @@ -380,13 +409,12 @@ "readinessProbe": { "properties": { "failureThreshold": { - "default": "3", + "default": "12", "description": "Number of failed readiness checks before marking the pod as unready", "required": [], "title": "failureThreshold" }, "httpGet": { - "description": "HTTP GET path and port to check Typesense readiness", "properties": { "path": { "default": "/health", @@ -403,16 +431,46 @@ "path", "port" ], - "title": "httpGet" + "title": "httpGet", + "type": "object" }, "periodSeconds": { - "default": "5", + "default": "10", "description": "Period (in seconds) to perform the readiness check", "required": [], "title": "periodSeconds" + }, + "tcpSocket": { + "properties": { + "port": { + "default": "http", + "title": "port", + "type": "string" + } + }, + "required": [ + "port" + ], + "title": "tcpSocket", + "type": "object" + }, + "timeoutSeconds": { + "default": 3, + "title": "timeoutSeconds", + "type": "integer" + }, + "type": { + "default": "httpGet", + "description": "Probe type: 'httpGet' or 'tcpSocket'", + "required": [], + "title": "type" } }, - "required": [], + "required": [ + "httpGet", + "tcpSocket", + "timeoutSeconds" + ], "title": "readinessProbe", "type": "object" }, @@ -424,8 +482,26 @@ "type": "integer" }, "resources": { - "description": "Resource requests and limits for the Typesense container", - "required": [], + "description": "Resource requests and limits for the Typesense container. Typesense requires at least 2 vCPUs to operate correctly. No CPU limit is set by default to avoid throttling during indexing and Raft catch-up.", + "properties": { + "requests": { + "properties": { + "cpu": { + "default": "2000m", + "title": "cpu", + "type": "string" + } + }, + "required": [ + "cpu" + ], + "title": "requests", + "type": "object" + } + }, + "required": [ + "requests" + ], "title": "resources" }, "secrets": { @@ -568,13 +644,12 @@ "startupProbe": { "properties": { "failureThreshold": { - "default": "10", + "default": "60", "description": "Number of failed startup checks before marking the container as unhealthy", "required": [], "title": "failureThreshold" }, "httpGet": { - "description": "HTTP GET path and port to check Typesense health for startup", "properties": { "path": { "default": "/health", @@ -591,16 +666,46 @@ "path", "port" ], - "title": "httpGet" + "title": "httpGet", + "type": "object" }, "periodSeconds": { "default": "10", "description": "Period (in seconds) to perform the startup check", "required": [], "title": "periodSeconds" + }, + "tcpSocket": { + "properties": { + "port": { + "default": "http", + "title": "port", + "type": "string" + } + }, + "required": [ + "port" + ], + "title": "tcpSocket", + "type": "object" + }, + "timeoutSeconds": { + "default": 3, + "title": "timeoutSeconds", + "type": "integer" + }, + "type": { + "default": "httpGet", + "description": "Probe type: 'httpGet' or 'tcpSocket'", + "required": [], + "title": "type" } }, - "required": [], + "required": [ + "httpGet", + "tcpSocket", + "timeoutSeconds" + ], "title": "startupProbe", "type": "object" },