From 66d2f51743896335f8a933f46fd64316ea605ede Mon Sep 17 00:00:00 2001 From: heimdall Date: Thu, 16 Apr 2026 13:43:18 +0900 Subject: [PATCH] refactor: normalize infra wikilinks to bare names --- infra/anomaly-detect.md | 4 ++-- infra/apisix.md | 6 +++--- infra/backup.md | 2 +- infra/crowdsec-safeline.md | 2 +- infra/gateway-api.md | 2 +- infra/hosts/incus-hp1.md | 2 +- infra/hosts/incus-hp2.md | 4 ++-- infra/hosts/incus-kr1.md | 2 +- infra/hosts/zlambda.md | 4 ++-- infra/infra-hosts.md | 2 +- infra/k3s-migration.md | 4 ++-- infra/metallb.md | 2 +- infra/nas-storage.md | 2 +- infra/outline.md | 2 +- infra/postgresql-ha.md | 8 ++++---- infra/zlambda.md | 2 +- 16 files changed, 25 insertions(+), 25 deletions(-) diff --git a/infra/anomaly-detect.md b/infra/anomaly-detect.md index 10f4f4e..8ec1b18 100644 --- a/infra/anomaly-detect.md +++ b/infra/anomaly-detect.md @@ -13,7 +13,7 @@ tags: [security, crowdsec, victorialogs, ollama, gemma, anomaly] OpenRouter `x-ai/grok-4-fast`에 tool 2개(logsql_query, ban_ips)만 노출하는 agentic 구조. fallback 모델 `qwen/qwen3-235b-a22b-2507`. -설계 반복 및 모델 벤치마크 이력: [[../history/2026-04-08-anomaly-detect-iterations|history]] +설계 반복 및 모델 벤치마크 이력: [[2026-04-08-anomaly-detect-iterations|history]] ### 새 아키텍처 @@ -168,4 +168,4 @@ incus exec anomaly-detect -- sh -c 'echo "{}" > /var/lib/anomaly-detect/dedup.js - [ ] **[Low]** CrowdSec alert `origin`을 `"crowdsec"` → `"anomaly-detect"`로 태깅 -전임자 (`ddos-detect`, 1/2차 구현) 폐기 이력: [[../history/2026-04-08-anomaly-detect-iterations|history]] +전임자 (`ddos-detect`, 1/2차 구현) 폐기 이력: [[2026-04-08-anomaly-detect-iterations|history]] diff --git a/infra/apisix.md b/infra/apisix.md index a66ba7a..96ffb07 100644 --- a/infra/apisix.md +++ b/infra/apisix.md @@ -125,7 +125,7 @@ config: ingressClass: apisix ``` -라우팅 전환/복구 이력: [[../history/2026-03-25-apisix-to-traefik-routing|history]] +라우팅 전환/복구 이력: [[2026-03-25-apisix-to-traefik-routing|history]] ApisixRoute 예시 (라우트별 chaitin-waf): ```yaml @@ -188,7 +188,7 @@ etcd: - helm upgrade 전 release values nesting 점검 필수: `apisix.admin.allow.ipList`(O) vs `admin.allow.ipList`(X) 등. 잘못된 nesting은 차트가 조용히 무시함. - ingress controller는 자동으로 모든 K8s CRD 객체를 etcd에 재push (rollout restart로 즉시 동기화) -etcd 통합/분리 이력: [[../history/2026-04-06-apisix-etcd-consolidation|history]] +etcd 통합/분리 이력: [[2026-04-06-apisix-etcd-consolidation|history]] ### BunnyCDN Pull Zone 매핑 (2026-04-09 API 실측) @@ -256,7 +256,7 @@ BunnyCDN WAF가 NocoDB JS를 오탐 차단하여 CDN 우회 처리. 시나리오 매칭으로 반복 공격자 탐지. -과거 트러블슈팅 이력: [[../history/2026-03-15-apisix-git-push-500|2026-03-15 git push 500 에러 + http-logger 401]] +과거 트러블슈팅 이력: [[2026-03-15-apisix-git-push-500|2026-03-15 git push 500 에러 + http-logger 401]] ## jarvis.inouter.com 라우트 diff --git a/infra/backup.md b/infra/backup.md index f267506..423b515 100644 --- a/infra/backup.md +++ b/infra/backup.md @@ -22,7 +22,7 @@ kubectl -n longhorn-system get volumes.longhorn.io \ -l recurring-job-group.longhorn.io/critical=enabled ``` -라벨 기록이 꼬였을 때의 대응은 [[../history/2026-04-15-longhorn-backup-label-typo|history]] 참고. +라벨 기록이 꼬였을 때의 대응은 [[2026-04-15-longhorn-backup-label-typo|history]] 참고. ## incus 백업 (inbest 데이터) diff --git a/infra/crowdsec-safeline.md b/infra/crowdsec-safeline.md index 90049c3..ea3290c 100644 --- a/infra/crowdsec-safeline.md +++ b/infra/crowdsec-safeline.md @@ -162,7 +162,7 @@ ddos-detect AI 분석기 폐기 후 deterministic 패턴 매칭으로 대체. - 현재 모두 `remediation: true` (즉시 ban). dry-run으로 시작 안 함 — false positive 발생 시 임계값 또는 ban duration 조정. -과거 인시던트 및 변경 이력은 `history/` 참조. 예: `history/2026-04-10-edge-cleanup.md` (cf-audit-cleanup-2 3-incident chain, Turnstile sitekey 교체, 미들웨어 64811 `/__captcha/verify` 버그 수정 등), [[../history/2026-04-15-apisix-http-logger-removal|2026-04-15 APISIX http-logger 레거시 제거]]. +과거 인시던트 및 변경 이력은 `history/` 참조. 예: `history/2026-04-10-edge-cleanup.md` (cf-audit-cleanup-2 3-incident chain, Turnstile sitekey 교체, 미들웨어 64811 `/__captcha/verify` 버그 수정 등), [[2026-04-15-apisix-http-logger-removal|2026-04-15 APISIX http-logger 레거시 제거]]. ### 발견 사항: K3s APISIX 글로벌 limit-req diff --git a/infra/gateway-api.md b/infra/gateway-api.md index a563a66..8e67e99 100644 --- a/infra/gateway-api.md +++ b/infra/gateway-api.md @@ -8,7 +8,7 @@ tags: [k3s, traefik, gateway-api] K3s 메인 라우팅을 Traefik이 담당. APISIX는 독립 LoadBalancer(MetalLB VIP 192.168.9.50)로 병렬 운영. -전환 이력: [[../history/2026-03-25-apisix-to-traefik-routing|history]] +전환 이력: [[2026-03-25-apisix-to-traefik-routing|history]] ## Traefik 배포 diff --git a/infra/hosts/incus-hp1.md b/infra/hosts/incus-hp1.md index e016ea1..dba734d 100644 --- a/infra/hosts/incus-hp1.md +++ b/infra/hosts/incus-hp1.md @@ -55,4 +55,4 @@ Incus + K3s 워커 호스트 (서울존). HP ProLiant DL360p Gen8 베어메탈. - hp2와 동일 Gen8 스펙이나 2.5G LAN 미탑재 (1G only) - Longhorn replica 참여 시 nvme에 별도 마운트 필요 -상세 인프라 컨텍스트: [[../infra-hosts]] +상세 인프라 컨텍스트: [[infra-hosts]] diff --git a/infra/hosts/incus-hp2.md b/infra/hosts/incus-hp2.md index bea0931..9f94598 100644 --- a/infra/hosts/incus-hp2.md +++ b/infra/hosts/incus-hp2.md @@ -38,6 +38,6 @@ Incus + K3s 워커 호스트 (서울존). 홈랩 bare-metal 서버. Incus 프로 ## 상세 - Incus 컨테이너이므로 커널은 호스트 bare-metal과 공유 (커널 업데이트는 호스트에서) -- 2026-04-13 drain+reboot 테스트 완료 → [[../../tasks|tasks.md]] 참조 +- 2026-04-13 drain+reboot 테스트 완료 → [[tasks|tasks.md]] 참조 -상세 인프라 컨텍스트: [[../infra-hosts]] +상세 인프라 컨텍스트: [[infra-hosts]] diff --git a/infra/hosts/incus-kr1.md b/infra/hosts/incus-kr1.md index 1623de9..3103565 100644 --- a/infra/hosts/incus-kr1.md +++ b/infra/hosts/incus-kr1.md @@ -42,4 +42,4 @@ Incus + K3s control-plane 호스트 (서울존). GPU 워크로드 가능(GTX 108 - heimdall ops 에이전트는 이 호스트의 incus 컨테이너에 상주 - K3s kine 엔드포인트는 OpenWrt HAProxy 192.168.9.1:5432 → Patroni leader 자동 감지 -상세 인프라 컨텍스트: [[../infra-hosts]] +상세 인프라 컨텍스트: [[infra-hosts]] diff --git a/infra/hosts/zlambda.md b/infra/hosts/zlambda.md index cb56374..7864ac2 100644 --- a/infra/hosts/zlambda.md +++ b/infra/hosts/zlambda.md @@ -41,7 +41,7 @@ NixOS 베이스 호스트 (도쿄, Linode nano). 이전 `sandbox-tokyo` 장비 ## 용도 검토 -- K3s worker 편입 후보 (taint geo=tokyo) — [[../k3s-migration|검토 중]] +- K3s worker 편입 후보 (taint geo=tokyo) — [[k3s-migration|검토 중]] - 도쿄 POP 엣지 워크로드 용도 -상세 인프라 컨텍스트: [[../infra-hosts]] +상세 인프라 컨텍스트: [[infra-hosts]] diff --git a/infra/infra-hosts.md b/infra/infra-hosts.md index 35428ba..128ae6c 100644 --- a/infra/infra-hosts.md +++ b/infra/infra-hosts.md @@ -319,7 +319,7 @@ Docker: `--runtime=nvidia` 또는 `--gpus all`로 GPU 사용. Podman: CDI 방식 - kr2: `/etc/systemd/network/30-usb-2g5.network` - hp2: `/etc/systemd/network/30-ens2.network` -USB autosuspend/NFS hang 인시던트 이력: [[../history/2026-04-04-usb-25g-hang|2026-04-04 USB 2.5G hang]] +USB autosuspend/NFS hang 인시던트 이력: [[2026-04-04-usb-25g-hang|2026-04-04 USB 2.5G hang]] 안정성 대책: - kr2: GRUB `usbcore.autosuspend=-1`, udev rule `99-usb-ethernet.rules` (scatter-gather off) diff --git a/infra/k3s-migration.md b/infra/k3s-migration.md index 8da7e17..dd65987 100644 --- a/infra/k3s-migration.md +++ b/infra/k3s-migration.md @@ -7,7 +7,7 @@ tags: [k3s, migration, postgresql, supabase] 이 문서는 과거 마이그레이션 작업 기록입니다. 전체 내용은 history 파일로 이동했습니다. -- [[../history/2026-03-24-k3s-postgresql-migration|2026-03-24 K3s PostgreSQL 이전]] -- [[../history/2026-04-05-supabase-to-patroni|2026-04-05 Supabase → Patroni 이전]] +- [[2026-03-24-k3s-postgresql-migration|2026-03-24 K3s PostgreSQL 이전]] +- [[2026-04-05-supabase-to-patroni|2026-04-05 Supabase → Patroni 이전]] 현재 클러스터 구성은 [[infra-hosts]] 참조. diff --git a/infra/metallb.md b/infra/metallb.md index 04bd463..4321216 100644 --- a/infra/metallb.md +++ b/infra/metallb.md @@ -65,4 +65,4 @@ kubectl get l2advertisement -n metallb-system # L2 광고 확인 kubectl get svc --all-namespaces -o wide | grep LoadBalancer # LB 서비스 목록 ``` -NodePort → LoadBalancer 이전 이력: [[../history/2026-03-24-k3s-postgresql-migration|history]] (Phase 5: MetalLB 도입) +NodePort → LoadBalancer 이전 이력: [[2026-03-24-k3s-postgresql-migration|history]] (Phase 5: MetalLB 도입) diff --git a/infra/nas-storage.md b/infra/nas-storage.md index 28ffb9a..56d21ad 100644 --- a/infra/nas-storage.md +++ b/infra/nas-storage.md @@ -100,7 +100,7 @@ spec: - **hard**: NAS 끊기면 무한 대기 → 서버 먹통 - **soft**: 타임아웃 후 에러 반환 → 서버 생존 -모든 NFS 마운트는 `soft,timeo=50,retrans=3` 필수. 인시던트 이력: [[../history/2026-04-04-usb-25g-hang|history]] +모든 NFS 마운트는 `soft,timeo=50,retrans=3` 필수. 인시던트 이력: [[2026-04-04-usb-25g-hang|history]] ## iSCSI StorageClass (democratic-csi) diff --git a/infra/outline.md b/infra/outline.md index 5b7b26a..a89cee3 100644 --- a/infra/outline.md +++ b/infra/outline.md @@ -56,7 +56,7 @@ Outline MCP 서버 도입 시 헤임달이 직접 문서 CRUD 가능. - heimdall `~/.claude.json` `/root` 프로젝트 mcpServers에 `outline` 항목 추가 (stdio, `uvx mcp-outline`, `OUTLINE_API_KEY`는 Vault `secret/apps/outline` brokkr-api-key, `OUTLINE_API_URL=https://outline.inouter.com`) - 새 컬렉션 `agent-qna` (id `c3ab34ab-fae4-4642-8f4e-12728e293e1b`) — 에이전트 간 장문 Q&A 교환 공간 (kappa↔heimdall이 tmux로 짧게 질문 → 답변은 여기에 작성) -DB endpoint는 OpenWrt HAProxy(`192.168.9.1:5432`) 경유. 과거 Patroni failover 사고 이력: [[../history/2026-04-08-patroni-failover-incident|history]] +DB endpoint는 OpenWrt HAProxy(`192.168.9.1:5432`) 경유. 과거 Patroni failover 사고 이력: [[2026-04-08-patroni-failover-incident|history]] ## Discord 통지 파이프라인 diff --git a/infra/postgresql-ha.md b/infra/postgresql-ha.md index f9f2c12..b84be89 100644 --- a/infra/postgresql-ha.md +++ b/infra/postgresql-ha.md @@ -98,7 +98,7 @@ datastore-endpoint: "postgres://kine:kine@10.100.2.5:5432,10.100.3.185:5432,10.1 ### 검증 (2026-04-16) -kr2 → kr1 순서로 rolling restart. switchover (postgres-1→postgres-3, TL12→13) 시 kine API 다운타임 **<1초** (t+2ms 에 정상 응답). [[../history/2026-04-16-kine-multihost-migration|history]] +kr2 → kr1 순서로 rolling restart. switchover (postgres-1→postgres-3, TL12→13) 시 kine API 다운타임 **<1초** (t+2ms 에 정상 응답). [[2026-04-16-kine-multihost-migration|history]] ### OpenWrt HAProxy :5432 프론트엔드 @@ -112,7 +112,7 @@ kine + pgpool 전환 완료로 HAProxy postgres 프론트엔드는 **더 이상 NocoDB/n8n/Outline → pgpool.db.svc.cluster.local:9999 → Patroni 3노드 직결 ``` -이전 pgcat+HAProxy 구조는 2026-04-16 폐기. [[../history/2026-04-16-pgpool-full-migration|history]] +이전 pgcat+HAProxy 구조는 2026-04-16 폐기. [[2026-04-16-pgpool-full-migration|history]] ### pgpool 구성 @@ -174,7 +174,7 @@ pgpool 은 자체 연결 관리가 있어 클라이언트 좀비 문제 없지 이전 pgcat 대비: 동일 시나리오에서 n8n 1038건 / NocoDB 13건 / pod restart 필요 -마이그레이션 이력: [[../history/2026-04-16-pgpool-n8n-poc|PoC]] · [[../history/2026-04-16-pgpool-full-migration|전면 전환]] +마이그레이션 이력: [[2026-04-16-pgpool-n8n-poc|PoC]] · [[2026-04-16-pgpool-full-migration|전면 전환]] ## APISIX etcd 사용 현황 @@ -184,7 +184,7 @@ pgpool 은 자체 연결 관리가 있어 클라이언트 좀비 문제 없지 | sandbox-tokyo | (미가동) | `/apisix/tokyo` | 2026-04-08 NixOS 전환으로 APISIX 자체 폐기, etcd 데이터만 보존 | | 서울 K3s | **K3s 내부 apisix-etcd StatefulSet** (apisix.apisix.svc:2379) | `/apisix` | 2026-04-08 외부 통합에서 K3s 내부로 복귀 | -APISIX etcd 통합/분리 이력: [[../history/2026-04-06-apisix-etcd-consolidation|history]]. 현재 외부 통합 etcd는 **Patroni DCS + osaka APISIX 전용**. +APISIX etcd 통합/분리 이력: [[2026-04-06-apisix-etcd-consolidation|history]]. 현재 외부 통합 etcd는 **Patroni DCS + osaka APISIX 전용**. ## 관련 문서 diff --git a/infra/zlambda.md b/infra/zlambda.md index e92359d..6e80db1 100644 --- a/infra/zlambda.md +++ b/infra/zlambda.md @@ -9,7 +9,7 @@ tags: [nixos, linode, zlambda, infra] Linode Tokyo VM (라벨 `zlambda`, id 47271589). NixOS 25.05 (Warbler), nixos-anywhere로 설치. 옛 이름 `sandbox-tokyo`는 Mac ssh config alias로만 남아 있음. -NixOS 전환 이력: [[../history/2026-04-08-zlambda-nixos-migration|history]] +NixOS 전환 이력: [[2026-04-08-zlambda-nixos-migration|history]] ## 접속