feat(dashboard): persist administrator login
This commit is contained in:
@@ -26,6 +26,7 @@ kubectl apply -f deploy/k8s/base/namespace.yaml
|
||||
- `jarca-ledger-dashboard-auth`
|
||||
- key `admin-id`
|
||||
- key `admin-password`
|
||||
- key `signing-secret` (32 byte 이상의 독립적인 무작위 값)
|
||||
|
||||
Registry credential을 application container에 환경변수나 volume으로 전달하지 않는다. `imagePullSecrets`로만 사용한다.
|
||||
|
||||
@@ -58,7 +59,7 @@ kubectl -n jarca-ledger rollout status deployment/jarca-ledger
|
||||
kubectl -n jarca-ledger get pods,svc,pvc
|
||||
```
|
||||
|
||||
Dashboard를 외부에 공개하는 Ingress나 NodePort는 environment overlay에서 추가한다. Base에는 MCP Service가 없고, `NetworkPolicy`는 workload ingress를 dashboard port `8501`로 제한하여 인증 계층이 없는 MCP port `8000` ingress를 차단한다. Cluster의 network plugin이 `NetworkPolicy`를 enforce하는지 운영 환경에서 확인한다.
|
||||
Dashboard를 외부에 공개하는 Ingress나 NodePort는 environment overlay에서 추가한다. 인증 cookie가 항상 `Secure`이고 endpoint가 ASGI HTTPS scheme을 요구하므로 공개 origin에는 TLS가 필수다. Base의 `FORWARDED_ALLOW_IPS=127.0.0.1`은 ingress forwarded header를 신뢰하지 않는 fail-closed 기본값이다. TLS를 ingress에서 종료하는 overlay는 이 값을 실제 ingress-controller source IP/CIDR allowlist로 교체해야 하며 `*` 또는 불특정 network를 사용해서는 안 된다. TLS 종료 계층은 `Host`와 `Origin`을 보존하고 `X-Forwarded-Proto: https`를 설정해야 한다. 인증 cookie의 발급·검증 자체는 Dashboard 프로세스가 수행한다. Base에는 MCP Service가 없고, `NetworkPolicy`는 workload ingress를 dashboard port `8501`로 제한하여 인증 계층이 없는 MCP port `8000` ingress를 차단한다. Cluster의 network plugin이 `NetworkPolicy`를 enforce하는지 운영 환경에서 확인한다.
|
||||
|
||||
## SQLite와 PVC
|
||||
|
||||
|
||||
@@ -107,19 +107,13 @@ spec:
|
||||
image: gitea.jsfamily.quest/jsfamily/jarca-ledger-mcp:v0.1.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- python
|
||||
- -m
|
||||
- streamlit
|
||||
- run
|
||||
- dashboard/app.py
|
||||
- --server.address
|
||||
- uvicorn
|
||||
- dashboard.server:app
|
||||
- --host
|
||||
- 0.0.0.0
|
||||
- --server.port
|
||||
- --port
|
||||
- "8501"
|
||||
- --server.headless
|
||||
- "true"
|
||||
- --browser.gatherUsageStats
|
||||
- "false"
|
||||
- --proxy-headers
|
||||
env:
|
||||
- name: JARCA_LEDGER_DB_PATH
|
||||
value: /data/ledger.sqlite3
|
||||
@@ -137,6 +131,13 @@ spec:
|
||||
secretKeyRef:
|
||||
name: jarca-ledger-dashboard-auth
|
||||
key: admin-password
|
||||
- name: JARCA_DASHBOARD_SIGNING_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: jarca-ledger-dashboard-auth
|
||||
key: signing-secret
|
||||
- name: FORWARDED_ALLOW_IPS
|
||||
value: 127.0.0.1
|
||||
ports:
|
||||
- name: dashboard
|
||||
containerPort: 8501
|
||||
|
||||
Reference in New Issue
Block a user