Commit Graph

276 Commits

Author SHA1 Message Date
heimdall
7395446478 docs: add _index.md MOC to all directories 2026-04-16 13:46:06 +09:00
heimdall
f0e51daafd refactor: organize infra/ into compute/network/security/data/platform 2026-04-16 13:43:36 +09:00
heimdall
66d2f51743 refactor: normalize infra wikilinks to bare names 2026-04-16 13:43:18 +09:00
heimdall
3f9727f3ac refactor: move nixos-manual to reference/ + graphifyignore 2026-04-16 13:43:03 +09:00
heimdall
b303243511 n8n Gitea OIDC SSO 설정 문서화 (n8n-oidc hooks) pre-restructure-20260416 2026-04-16 12:51:53 +09:00
heimdall
226b377387 kine pgx multi-host 직결: HAProxy 의존 제거, API 다운타임 <1s 2026-04-16 12:34:53 +09:00
heimdall
33ce94a75a pgpool 전면 전환 + pgcat 퇴역: postgresql-ha.md 전면 갱신 2026-04-16 12:24:39 +09:00
kaffa
5f9a153d96 add incus-hp1 to infra docs (K3s worker, 192.168.9.227)
Incus 6.0.4 + K3s v1.34.5+k3s1 agent joined 2026-04-16.
btrfs on nvme0n1 954G, incusbr0 10.100.4.1/24, 1GbE only.
2026-04-16 10:51:54 +09:00
heimdall
0d59adb95f pgpool-II PoC (n8n 전용 전환) + postgresql-ha.md 섹션 추가 2026-04-16 08:25:02 +09:00
heimdall
125413d083 pgcat+Patroni TCP keepalive 적용: 좀비 소켓 방지 (Step 1 옵션 B) 2026-04-16 07:26:37 +09:00
heimdall
a7ecd4b982 pgcat HA 승격 (Step 0): replicas=2 + podAntiAffinity + PDB 2026-04-15 17:21:13 +09:00
syn
ad230522be infra/crowdsec-safeline: remove APISIX → CrowdSec (:8085) legacy section
Verified removed across all 3 sites:
- K3s APISIX: no http-logger plugin in global_rules/routes/services/plugin_configs
- CrowdSec: no apisix-logs HTTP acquisition file, :8085 not listening
- Osaka APISIX: http-logger exists but targets VictoriaLogs (vector.inouter.com), not legacy

Runtime verification via cs_parser_hits metrics: only source is
https://vl.inouter.com/ (victorialogs type).

Split detailed findings to history/2026-04-15-apisix-http-logger-removal.md.
2026-04-15 16:31:18 +09:00
kappa
bb39d5dd54 .graphifyignore: graphify-out 및 시스템 경로 제외 (자기 출력 재추출 방지) 2026-04-15 13:36:35 +09:00
kappa
b24d10d156 vault-mcp-server 실 아키텍처 정정 (중복 아님, jp1 단일 인스턴스)
- infra/vault.md MCP 서버 섹션 전체 재작성: K3s Deployment 아니라 Pod 없는 리버스 프록시 파사드, 세 접근 경로 모두 jp1 Incus vault 컨테이너(10.253.101.58)로 수렴
- 과거 오류 정정 callout 추가: vault-active.vault.svc.cluster.local 경로 실존 안 함, hcv/mcp URL은 Vault UI로 307 (올바른 MCP 경로는 vault-mcp.inouter.com/mcp)
- history/2026-04-15-vault-mcp-duplicate-investigation.md 인시던트 기록

근거: Heimdall 조사 (Outline 5b6ddffa) + kappa 로컬 확인 (jp1 systemd active + 활성 트래픽)
2026-04-15 13:29:18 +09:00
kappa
b4ddf27f95 gitignore: graphify-out/ + .graphify-cache/ 추가 (Graphify 도입) 2026-04-15 13:00:56 +09:00
heimdall
a9d37aa37a Longhorn standard RecurringJob cron KST 새벽으로 보정
standard-snapshot 0 3 * * * → 0 18 * * * (UTC, = KST 03:00)
standard-backup  0 4 * * * → 0 19 * * * (UTC, = KST 04:00)
critical 6h 간격에 KST 03시 포함되어 변경 없음.
2026-04-15 12:25:57 +09:00
kappa
b206348dd7 k3s-backup.md: history 파일명 참조 수정 2026-04-15 11:27:04 +09:00
kappa
220157e948 history 중복 제거: longhorn-label-typo (헤임달의 longhorn-backup-label-typo로 통합) 2026-04-15 11:26:55 +09:00
heimdall
f55e1cffb4 Longhorn recurring job 라벨 오타 수정 + history 기록
critical/standard 18 볼륨이 recurringjob-group (대시 누락) 으로 라벨
붙어 3주간 백업 전무. recurring-job-group 으로 재라벨 + backup.md 에
라벨 키 규약 명시.
2026-04-15 10:52:06 +09:00
heimdall
5bf9f5f563 auto: vault secret tree sync (2026-04-15, 104 paths) 2026-04-15 10:43:07 +09:00
heimdall
0b8d9435d9 auto: vault secret tree sync (2026-04-14, 103 paths) 2026-04-15 10:43:07 +09:00
kappa
703d5609ec Longhorn recurring-job 라벨 키 오타 정정 + 인시던트 기록
- infra/k3s-backup.md: recurringjob-group → recurring-job-group (대시 포함). silent failure 주의 callout 추가
- history/2026-04-15-longhorn-label-typo.md: 18볼륨 백업 미동작 인시던트 기록
2026-04-15 08:32:13 +09:00
kappa
cfe4cbafae infra/infra-hosts: hp1-ilo .213 → .140 renew 반영 2026-04-14 17:00:54 +09:00
kappa
6364d71ec9 infra/infra-hosts: hp1/hp2 iLO 정적 DHCP 리스 등록
- hp1-ilo: 192.168.9.140 (MAC 6c:3b:e5:b7:0e:4e, 시리얼 JPT3169F2E)
- hp2-ilo: 192.168.9.141 (MAC 6c:3b:e5:b4:57:3e, 시리얼 JPT3169F6C)
- OpenWrt uci dhcp.@host 등록, 자동 renew로 6~12h 내 이전
- 로컬 DNS hp1-ilo.lan / hp2-ilo.lan 자동 생성
2026-04-14 16:20:49 +09:00
kappa
b45a3e05b1 infra/infra-hosts: OpenWrt DHCP 범위 .150-.249로 이전, .100-.149 해방
- DHCP 시작점 100 → 150
- 장래 MetalLB 풀 확장 대비
- 기존 리스 6개(.110/.128/.149/.159/.176/.213) 최대 12h 내 renew 시 자연 이전
2026-04-14 16:15:24 +09:00
kappa
544f2026e8 infra/infra-hosts: MetalLB pool 섹션 추가 및 .50-.99로 확장 반영
- 기존: 192.168.9.50-59 (10개, 6/10 할당)
- 확장: 192.168.9.50-99 (50개, .56-.99 여유)
- DHCP 범위(.100-249) 충돌 없음, .50-.99 ARP 스캔 clean
- 확장 절차 및 현재 할당 테이블 문서화
2026-04-14 16:01:00 +09:00
kappa
175a7236df infra/infra-hosts: hp2 DMI(HP ProLiant DL360p Gen8) + 커널 버전 명시
- 베어메탈 HW 식별자 추가 (이전 RCA의 'Incus 컨테이너 오해' 재발 방지)
- 2026-04-14 커널 업데이트 반영 (6.12.73 → 6.12.74)
2026-04-14 14:06:19 +09:00
kappa
4e57bb1015 infra/k3s-backup: R2 lifecycle rule 7일 만료 등록 완료 2026-04-14 13:42:54 +09:00
kappa
a16873e871 infra/k3s-backup: Longhorn 보존 정책 7일 기준 통일
- critical-backup retain 30 → 28 (7일치)
- standard-backup retain 14 → 7 (7일치)
- snapshot은 현 유지 (critical 24/1일, standard 7/7일)
- R2 lifecycle rule도 7일로 정렬 (TODO)
2026-04-14 13:36:10 +09:00
kappa
3dc684ef78 infra/k3s-backup: Longhorn 볼륨 백업 레이어 추가
- Cloudflare R2 BackupTarget 등록 (longhorn-backup 버킷)
- RecurringJob 4개 (critical/standard × snapshot/backup)
- 볼륨 분류: critical 13개, standard 5개
- 복원 절차 명시 (PVC annotation 방식 실패 → Volume CR 경유)
- 2026-04-14 end-to-end 검증 (MD5 일치)
- TODO: R2 lifecycle rule, 분기별 복원 드릴
2026-04-14 13:31:21 +09:00
kappa
cd044f6c0c infra/nas-storage: hp2 MTU 9000 확인, end-to-end JF 검증 표 추가
- hp2 ens2 MTU 9000 실측 반영
- 2026-04-14 ping -M do -s 8972 전 6경로 통과 기록
2026-04-14 12:38:07 +09:00
kappa
b6c68186fe infra/nas-storage: 2026-04-14 정확성 보정
- hp2 NAS 연결 상태 갱신 (미연결 → 192.168.205.134로 정상 참여)
- nfs-provisioner nodeAffinity 실제값 반영 (제약 없음)
- iSCSI ScsiTarget on-demand 동작 설명 추가
- 2026-04-14 iSCSI smoke test 결과 기록
- eth2 USB NIC watchdog 섹션 신설 (LPM exit latency 이슈 대응)
2026-04-14 12:35:20 +09:00
kappa
da4a674719 feat(obsidian): Bases 쿼리용 frontmatter 스키마 + 호스트 파일럿 3개
- dev/obsidian-schema.md: type별 frontmatter 규약 문서화
- infra/hosts/{incus-hp2,incus-kr1,zlambda}.md: 구조화된 필드로 파일럿 3개
- infra/hosts.base: Bases 쿼리 (전체/서울/K3s/유료/Critical 뷰)

기존 infra-hosts.md 본문은 그대로 유지. 파일럿 검증 후 나머지 호스트 확장 예정.
2026-04-14 09:07:22 +09:00
kappa
427ed307e1 Add Helm charts management and ESO documentation
- infra/helm-charts.md: 전체 Helm 관리 체계, 차트 구조, ArgoCD 앱 목록, 배포 워크플로우
- infra/external-secrets.md: ESO 구성, ExternalSecret 목록, Vault 경로 정리, 운영 가이드
2026-04-13 16:15:51 +09:00
heimdall
ad680e9d78 auto: vault secret tree sync (2026-04-13, 100 paths) 2026-04-13 09:58:13 +09:00
kappa
8e6c35324c docs: Vault 시크릿 구조 2026-04-13 전수 업데이트 — 신규 경로 추가, 자주 사용 시크릿 빠른 참조, KV v1 주의사항 2026-04-13 09:36:23 +09:00
kappa
3da39ca0d5 docs: CF API 토큰 권한 범위 실측 기록 — Rulesets/Firewall/RateLimit 접근 불가 2026-04-13 09:27:11 +09:00
kappa
3914d71c6b docs: BunnyCDN Shield Zone API 정리 — 구 Pull Zone 필드 대신 /shield/shield-zone 엔드포인트 사용, shieldZoneId 매핑 추가 2026-04-13 09:22:06 +09:00
kappa
8c5af74bb4 docs: K3s 인그레스 아키텍처 문서 추가 (Traefik+APISIX+SafeLine 이중 구조) 2026-04-13 08:39:50 +09:00
kappa
e73c7fd100 Add Kaniko (K8s native image build) document 2026-04-12 13:56:00 +09:00
kappa
27363622de add skuld planner agent to ops-agents overview
HP2 ops 프로젝트, IP 10.100.2.45, MCP: OpenMemory + Outline.
에이전트 목록, 통신 경로, 태그, systemd, 배포 관리 섹션 추가.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 21:01:59 +09:00
kappa
6fe811a9a1 netbis: CF Global API Key 경로를 Vault로 업데이트 2026-04-10 17:09:40 +09:00
kappa
66e0160759 obsidian: VictoriaLogs 중앙 로그 허브 통합 — 오사카 Vector + CrowdSec acquisition
- 오사카 APISIX에 Vector(Docker) 추가, VictoriaLogs ES bulk API로 로그 전송
- CrowdSec에 victorialogs acquisition (tail 모드) 추가, 서울+오사카 통합 수신
- anomaly-detect 설명에 오사카 포함 반영
- 기존 http-logger 직접 push는 레거시로 병행 유지 (추후 제거)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:21:16 +09:00
kappa
2356b86d36 obsidian: 정본 문서에서 히스토리/인시던트 분리 완료
15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.

분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:09:21 +09:00
kappa
72750cfc9d obsidian: 정본에서 변경 이력 분리, history/ 도입
- history/README.md: 변경 이력/인시던트 기록 규약
- history/2026-04-10-edge-cleanup.md: 오늘의 엣지 정리·인시던트·복구 전체 연대기
- infra/cloudflare.md: 연대기 주석/strikethrough/인시던트 서사 제거, 현재 사실만
- infra/crowdsec-safeline.md: 인시던트 bullet 제거, 과거 이력은 history/ 참조
- services/bunnycdn-security.md: sitekey 이력표 제거, 현재 위젯 정보만
- infra/nas-storage.md: reverse proxy 섹션의 날짜 주석 제거
2026-04-10 11:38:36 +09:00
kappa
d16090a33d edge: iron-kr IgnoreQueryStrings true→false (iron-jp 와 통일)
- 실측 cache hit rate 0.23% 로 변경 영향 무시 수준
- privilege 교차 / 배포 cache-bust 버그 방지
2026-04-10 11:24:06 +09:00
kappa
8fc6a34cc8 edge: cf-zone-sync cron 영구 제거 (cleanup-2 인시던트 근본 원인)
- /etc/cron.d/cf-zone-sync 파일 삭제
- /usr/local/bin/auto-add-cf-zones.sh → .disabled.20260410-incident archive (chmod 600)
- 신규 zone 추가는 cfb-manager POST /domains 또는 수동 yaml edit
- bouncer 정상 running 확인 (PID 371770 uptime 1h28min)
2026-04-10 11:21:00 +09:00
kappa
7a8230dbf6 edge: cf-audit-cleanup-2 3차 인시던트 (cron-induced crashloop) + kappa 직접 복구 반영 2026-04-10 10:24:21 +09:00
Syn
218c323f3f edge: cf-audit-cleanup-2 + recovery 정본 반영
- infra/cloudflare.md: Worker 라우트 / Turnstile 위젯 표를 cleanup-2 후 상태로 갱신. inouter/anvil 라우트 + 6개 옛 bouncer-managed widget sitekey 폐기 표시. 신규 inouter-bunny-middleware (0x4AAAAAAC3otPWhldI96Aks) 추가, freeze 보장 근거 명시. Turnstile 토큰 권한 사실 (Vault api_token read-only vs bouncer 토큰 read+write). 인시던트 이력 섹션 추가 + 인시던트 doc 8f5c43f8 링크.
- infra/crowdsec-safeline.md: cs-cf-worker-bouncer 보호 zone 4개로 갱신, 제거된 zone 와 freeze widget 명시.
- services/bunnycdn-security.md: 미들웨어 64811 Turnstile sitekey 변경 이력표 (옛/삭제/신규 3행). sitekey gap 항목을 신규 위젯 기준으로 갱신, nas.inouter.com 정리 완료 표시.

cf-audit-cleanup-2 인시던트 + 복구 상세는 Outline doc 8f5c43f8 의 "## 복구 완료" 섹션 참조.
2026-04-10 09:44:20 +09:00
heimdall
9d71167772 infra: nas.inouter.com Traefik 리버스 프록시 (LAN-only) 복원
- lan-proxies ns 신설, selector-less Service + EndpointSlice → 192.168.9.100:5000
- IngressRoute web→websecure redirect + websecure tls (wildcard-inouter-tls)
- 2026-04-10 cf-audit-cleanup-1 의 nas.inouter.com 삭제 후 LAN-only 복원
- ExternalName 은 IP 미지원이라 동등 K8s-native 패턴(EndpointSlice) 사용

검증: curl --resolve nas.inouter.com:443:192.168.9.53 → 200 DSM 로그인
2026-04-10 09:11:22 +09:00