# ローカルネットワーク限定の LoadBalancer で公開し、Claude のサブスクリプション # (API 課金なし)で動かす構成。Ingress は張らない。 # # 前提: # - クラスタに LB 実装(kube-vip / MetalLB / Cilium LB-IPAM 等)がある # - 手元の PC が claude にログイン済み(~/.claude/.credentials.json が存在) # # 実行例: # helm upgrade --install claude-code cafepieters/claude-code \ # -n claude-code --create-namespace \ # -f examples/loadbalancer-oauth.values.yaml \ # --set-file anthropic.credentialsJson="$HOME/.claude/.credentials.json" \ # --set-file git.identities.gitea-ssh.sshPrivateKey=P:/Claude/.ssh/id_claude \ # --set-file git.identities.gitea-ssh.knownHosts=./known_hosts.gitea # ---- Claude 認証: API を使わずサブスクリプション(Pro / Max)で動かす ---- anthropic: authMode: credentials # ~/.claude/.credentials.json 全体を注入(refreshToken 込み) # credentialsJson は --set-file で注入する(平文で書かない) refresher: enabled: true # クラスタ内で accessToken を定期更新し Secret を書き戻す schedule: "*/30 * * * *" # ---- 管理画面はローカル LB の IP でアクセス(Ingress なし)---- ingress: enabled: false service: type: LoadBalancer port: 80 annotations: # kube-vip で払い出す VIP を固定(この 192.168.9.x は空いているものを指定) kube-vip.io/loadbalancerIPs: "192.168.9.50" kube-vip.io/vipHost: "cpi11" # 接続元をローカルセグメントに限定(Ingress を張らない構成での第一の防御線) loadBalancerSourceRanges: - 192.168.9.0/24 externalTrafficPolicy: Local # 実クライアント IP を保持(LB 実装が対応する場合) # ---- ブラウザアクセスの認証: トークン(自動生成)---- auth: mode: token # token.value を空にすると install 時に自動生成される。 # 取得: kubectl -n claude-code get secret claude-code-auth -o jsonpath='{.data.token}' | base64 -d # ---- Git 接続先 ---- git: allowedHosts: - github.com - 192.168.9.65 - git.cafepieters.com identities: gitea-ssh: type: ssh # sshPrivateKey / knownHosts は --set-file で注入 # github-https: # type: https-token # username: "x-access-token" session: autoStartClaude: true idleTimeoutSeconds: 1800 maxSessions: 5 # verifyCommand: "npm test" # autoPush: # enabled: true