Compare commits

...
Author SHA1 Message Date
hermes-bot 69915ce0dd fix(wiki): the service reads the wiki-index BasicAuth users
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
#1383 + konairius/Wiki#14 put the wiki's read API behind an OIDC session
or an API key. External agents only have the wiki-index.renner.uno
BasicAuth credentials and got 401 since.

konairius/Wiki (feat/basic-auth-machines) checks `Authorization: Basic`
in the service against the htpasswd lines Traefik uses. This mounts the
existing Secret wiki-api-basic-auth (OpenBao apps/ai/wiki-index-basic-auth,
already the wiki's own) read-only at /var/run/secrets/wiki-basic-auth.
Auth__Basic__UsersPath points at the directory, because the service reads
every key there, as Traefik does. A rotated Secret now also rolls the pod
(reloader annotation).

Order does not matter: the current image ignores the setting, and the new
image without it authenticates nobody over BasicAuth. Traefik's middleware
on wiki-index stays.
2026-10-19 14:07:11 +00:00
k.renner 4a05b82fe8 Merge pull request 'test(hermes): raise dashboard WS ping interval to 60s' (#1385) from fix/hermes-dashboard-ws-ping-interval into main
ci/woodpecker/cron/e2e Pipeline failed
ci/woodpecker/cron/security-scan Pipeline was successful
ci/woodpecker/cron/issue-fix Pipeline was successful
ci/woodpecker/cron/alert-monitor Pipeline was successful
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/review-bot-test Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was canceled
Reviewed-on: #1385
2026-10-19 11:30:20 +00:00
3 changed files with 12 additions and 3 deletions
+10 -1
View File
@@ -24,7 +24,7 @@ metadata:
namespace: ai
annotations:
# Keys, tokens and the Anthropic key arrive via envFrom; a rotated Secret rolls the pod.
secret.reloader.stakater.com/reload: wiki-gitea,wiki-api-keys,wiki-typesafe,wiki-anthropic
secret.reloader.stakater.com/reload: wiki-gitea,wiki-api-keys,wiki-typesafe,wiki-anthropic,wiki-api-basic-auth
labels:
app.kubernetes.io/name: wiki
spec:
@@ -77,6 +77,9 @@ spec:
value: https://auth.renner.uno/application/o/wiki/
- name: Auth__Oidc__ClientId
value: wiki
# wiki-index BasicAuth users (htpasswd), checked by the service for the read API.
- name: Auth__Basic__UsersPath
value: /var/run/secrets/wiki-basic-auth
envFrom:
- secretRef:
name: wiki-gitea
@@ -122,12 +125,18 @@ spec:
mountPath: /data
- name: tmp
mountPath: /tmp
- name: basic-auth
mountPath: /var/run/secrets/wiki-basic-auth
readOnly: true
volumes:
- name: data
persistentVolumeClaim:
claimName: wiki-data
- name: tmp
emptyDir: {}
- name: basic-auth
secret:
secretName: wiki-api-basic-auth
---
apiVersion: v1
kind: Service
+1 -1
View File
@@ -87,7 +87,7 @@ spec:
key: apps/ai/wiki-anthropic
property: api_key
---
# BasicAuth users for the machine door; same OpenBao key as the Python service used.
# BasicAuth users for the machine door, read by Traefik and by the service; same OpenBao key as the Python service used.
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
+1 -1
View File
@@ -27,7 +27,7 @@ spec:
number: 8080
---
# wiki-index.renner.uno — the machine door (bin/wiki_rank.py, wiki_ask.py):
# Traefik BasicAuth in front of the service's API-key check.
# Traefik BasicAuth; the service checks the same credentials itself.
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata: