fix(searxng): crash port — enableServiceLinks:false + port/bind explicites (#50)

Le pod SearXNG crashait en boucle : granian recevait --port tcp://<ip>:8080
au lieu d'un entier. Cause classique k8s : le Service « searxng » fait injecter
l'env service-link SEARXNG_PORT=tcp://<clusterIP>:8080, que l'entrypoint SearXNG
lit comme port de bind.

- enableServiceLinks:false (coupe l'injection des env service-link, inutiles ici)
- SEARXNG_PORT=8080 + SEARXNG_BIND_ADDRESS=0.0.0.0 explicites (défense en profondeur)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-22 22:50:46 +02:00 committed by GitHub
parent 55344b55ed
commit dc7a2093ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -16,6 +16,11 @@ spec:
# Redéploie le pod quand settings.yml change (le hash bouge → nouveau rollout).
checksum/config: "searxng-settings-v1"
spec:
# CRITIQUE : le Service s'appelle « searxng » → sans ça, k8s injecte la variable
# SEARXNG_PORT=tcp://<clusterIP>:8080 (env « service link » façon Docker), que l'entrypoint
# SearXNG lit comme PORT de bind → granian crash (« 'tcp://…:8080' is not a valid integer »).
# On coupe l'injection des service-links (inutiles ici) ; on fixe aussi le port en dur ci-dessous.
enableServiceLinks: false
# Conformité PodSecurity "restricted" (namespace ai). L'image tourne en uid 977 (searxng).
# fsGroup 977 → l'emptyDir /etc/searxng est accessible en écriture par l'init + le main.
securityContext:
@ -51,6 +56,12 @@ spec:
ports:
- containerPort: 8080
env:
# Port/bind explicites (défense en profondeur vs l'env service-link, déjà coupé
# par enableServiceLinks:false) — l'entrypoint SearXNG lit ces variables.
- name: SEARXNG_PORT
value: "8080"
- name: SEARXNG_BIND_ADDRESS
value: "0.0.0.0"
# Base URL interne (pas d'exposition WAN). Requis par SearXNG pour générer ses liens.
- name: SEARXNG_BASE_URL
value: "http://searxng.lab.local/"