CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-260925-SKLADCHIK-USA-MIGRATION-AUTHORITY-MINIREAD-73276R1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=skladchik-usa-migration-authority-miniread
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=50e4c7308ff3d4c751750cc63eee7536aa985f884c94b84ffcc1180c5eb60b05
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=f9810e721990dfc12c47863f23a39ad78582eaaf2cf212ac359cfbff17121390
SANITIZED_OUTPUT_SHA256=f9810e721990dfc12c47863f23a39ad78582eaaf2cf212ac359cfbff17121390
OUTPUT_BEGIN
RCA_VERSION=73276_V1
MODE=read-only
MIGRATION_DOC_EXISTS=true
MIGRATION_DOC_SHA256=12fe079849346352315aac76fae82d00cbd17f88a3553270ca2c5f2749840552
RUNBOOK_EXISTS=true
RUNBOOK_SHA256=725e2068337b379ebdf47822d5871aa5f4d5ec5956546674b2cf55b3250fb7a3
MIGRATION_DOC_SHA_MATCH=true
RUNBOOK_SHA_MATCH=true
FILE_BEGIN=20_NETBIRD_USA_MIGRATION_2026-08-18.md
1:# NETBIRD USA MIGRATION — FINAL CURRENT RECORD
5:Old USA mail/NetBird VPS:
11:Host-level NetBird client left running for rollback/peer observation.
54:- [TOKEN_OR_KEY] startup
56:- Moldova synthetic check passes
57:- edge peer works
61:- `:9000/health` 503 in combined relay/server mode
70:- narrow TrustedPeers
71:- fix Traefik Compose network warning
FILE_END=20_NETBIRD_USA_MIGRATION_2026-08-18.md
FILE_BEGIN=04_NETBIRD_USA.md
1:# Runbook: NetBird USA
5:Do not use `/api/health` or combined `:9000/health` as generic readiness gates for this exact deployment; they were 404/503 and caused a false rollback. Use repeated Dashboard 200 + OIDC 200 + expected listeners + real client/peer connectivity.
14:7. retain migration key only until old USA is no longer needed.
FILE_END=04_NETBIRD_USA.md
FILE_BEGIN=771z_after_manual_netbird_egress_capi.sh
3:if ! test -s [TOKEN_OR_KEY].md || ! test -s [TOKEN_OR_KEY].md; then echo [TOKEN_OR_KEY]; exit 1; fi
8:PROOF="[TOKEN_OR_KEY]${TS}_PROOF.txt"
14:  echo "[TOKEN_OR_KEY]"
17:  echo "[TOKEN_OR_KEY]"
18:  echo "TARGETS=edge-vm:[IP] relay-moldova:[IP] mail-usa:[IP]"
67:    networks:
71:networks:
94:    networks:
98:networks:
180:    raise SystemExit("api.server block not found")
201:echo "PEERS_RELAY_MAIL_EDGE"
209:    for peer in data.get("peers",{}).get("details",[]):
210:        fqdn=peer.get("fqdn","")
211:        ip=peer.get("netbirdIp","")
212:        if ip in {"[IP]","[IP]","[IP]"} or any(x in fqdn for x in ["relay","mail","edge-vm"]):
213:            print("PEER", fqdn, ip, "status="+str(peer.get("status")), "handshake="+str(peer.get("lastWireguardHandshake")), "conn="+str(peer.get("connectionType")))
216:echo "RELAY_MAIL_CONNECTIVITY"
219:  ip route get "$ip" 2>&1 || true
224:echo "WG_ALLOWED_IPS_RELAY_MAIL"
226:  wg show wt0 allowed-ips 2>/dev/null | sed -E 's/^[A-Za-z0-9+\/=]{20,}/PEERKEY_REDACTED/' | grep -E '100\.100\.19\.1|100\.100\.147\.204|0\.0\.0\.0/0|100\.100\.0\.0/16' || echo [TOKEN_OR_KEY]
229:echo "[TOKEN_OR_KEY]"
239:  wait_lapi "CAPI_ROUTE_NOT_READY_SAFE" || true
240:  write_health "[TOKEN_OR_KEY]" "After manual NetBird setup, edge still cannot reach api.crowdsec.net; CrowdSec remains LAPI-only no-capi"
241:  echo "[TOKEN_OR_KEY]"
243:  exit 70
246:echo "[TOKEN_OR_KEY]"
247:cd "$STACK" || exit 71
248:mkdir -p "manual-backups/771z-$TS"
249:test -f config/config.yaml && cp -a config/config.yaml "manual-backups/771z-$TS/config.yaml.before" || true
250:test -f config/user.yaml && cp -a config/user.yaml "manual-backups/771z-$TS/user.yaml.before" || true
251:test -f [TOKEN_OR_KEY].yaml && mv [TOKEN_OR_KEY].yaml "manual-backups/771z-$TS/online_api_credentials.yaml.before" || true
257:  write_health "[TOKEN_OR_KEY]" "Direct CAPI route works, but compose CAPI enable failed"
258:  exit 72
262:wait_lapi "REGISTER_MODE" || exit 73
284:  write_health "[TOKEN_OR_KEY]" "Direct CAPI route works, but cscli capi register failed; restored no-capi"
287:  exit 74
290:stat -c 'ONLINE_CREDS path=%n mode=%a owner=%U group=%G size=%s' [TOKEN_OR_KEY].yaml || true
294:enable_capi_compose || exit 75
315:  write_health "[TOKEN_OR_KEY]" "CrowdSec CAPI registered and stable after manual NetBird egress via relay/mail"
318:  exit 0
326:exit 76
329:  echo "POST_ROUTE_SMOKE"
337:  echo [TOKEN_OR_KEY]
FILE_END=771z_after_manual_netbird_egress_capi.sh
AUTHORITY_CANONICAL_READY=true
DECISION=PASS_USA_MIGRATION_AUTHORITY_COLLECTED
NEXT_GATE=BUILD_USA_EGRESS_AND_LOCAL_STACK_REPAIR
TASK_RESULT=PASS_USA_MIGRATION_AUTHORITY_RCA
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260925-SKLADCHIK-USA-MIGRATION-AUTHORITY-MINIREAD-73276R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}

OUTPUT_END
CHAT_OUTPUT_END
