Use when deploying or operating silken_net infrastructure — Kamal/Terraform GCP, Akash decentralized cloud, secrets, observability (Grafana Alloy → Grafana Cloud), disaster-recovery, CI/CD, resilience/failover. This is Module 06 'The Matrix'. Routes to the 06_xx canon docs and the load-bearing infra invariants; does not restate them.
インストール
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Use when deploying or operating silken_net infrastructure — Kamal/Terraform GCP, Akash decentralized cloud, secrets, observability (Grafana Alloy → Grafana Cloud), disaster-recovery, CI/CD, resilience/failover. This is Module 06 'The Matrix'. Routes to the 06_xx canon docs and the load-bearing infra invariants; does not restate them.
Deploy & Infrastructure (Module 06 — The Matrix)
DevOps/Infra шар: Rails на Akash (децентралізовано, цензуростійко) +
GCP (Cloud SQL / Redis / failover). Деплой через Kamal, IaC через
Terraform, спостережуваність через Grafana Alloy → Grafana Cloud.
Канон — читати ПЕРЕД зміною інфри/секретів/метрик
SSOT One-Home: цей skill лише маршрутизує; факти живуть у docs/ + config-SSOT.
Не дублюй сюди значення/інвентар і не хардкодь file:line (дрейфує — стале вже за
комітом). Посилайся на стабільні якорі: канон-§ + імена символів/шляхів.
Що треба
Канон-дім
Деплой Kamal + Terraform GCP, Canopy vs Production
Будь-хто, хто чіпає деплой, МУСИТЬ це знати (суть тут, механіка — за canon-§):
Akash + GCP — failover, не «або-або». Rails-ворклоад на Akash; GCP тримає
Cloud SQL + є failover-ціллю (Redis — зовнішній Upstash Serverless TLS, не GCP). → 06_01 / 06_02.
CoAP-інтейк: PRIMARY = демон на Ingress Anchor (docker+systemd, приватний IP Cloud SQL
БЕЗ Auth Proxy; секрети /etc/silkennet/coap.env, НЕ metadata). Akash coap = idle-fallback
за socat (перемикання 2×systemctl); money/web лишаються на Akash. coap.env = 3-тя
boot-contract поверхня поза sdl_consistency (pure UDP glue, нуль key-derivation → несе
AR-encryption-трійку, НЕPROVISIONING_MASTER_KEY; guard spec/deploy/anchor_coap_env_spec.rb).
→ 06_01 / 06_02 / 06_04 §5.7.
Cloud SQL Auth Proxy авторизує через Google API, але СОКЕТ іде на IP інстанса —
з Akash (поза VPC) досяжний лише ПУБЛІЧНИЙ IP → ipv4_enabled = true обов'язковий
(authorized_networks порожній — доступ тільки IAM-proxy; ENCRYPTED_ONLY). private-only
= crash-loop усіх сервісів. Проксі активується лише коли CLOUD_SQL_INSTANCE_CONNECTION_NAME
заданий; Kamal-шлях (у VPC) — приватний IP напряму. → 06_02 (+ terraform/database.tf at-use).
Observability = Alloy → Grafana Cloud SaaS; self-hosted Prometheus НЕ потрібен (OBS.1).
Реєстр in-process → web:80 НЕ бачить job/coap-інкрементів напряму → Alloy скрейпить
три таргети (web:80+job:9394+coap:9395, лейбл process). Топологія/стелі → 06_03 §2.9;
реєстр+кількість метрик → 06_03 §2.8 (не хардкодь).
jemalloc через LD_PRELOAD у Docker-образі (libjemalloc.so) — менше пам'яті
й латентності. Не прибирай без бенчмарку.
SENTRY_DSN задається at deploy time (.kamal/secrets-common); без нього Sentry
інертний — нуль crash-репортів.
Старт через Thruster (thrust ./bin/rails server) за замовчуванням; overridable at runtime.
WIF рантайм = ТРИ GCP API — iam (default-on) + sts + iamcredentials; останні два увімкнути ЯВНО. Пропущений sts.googleapis.com → перший keyless CI-run падає SERVICE_DISABLED (STS робить OIDC→federated exchange ПЕРЕД impersonation), а terraform validate/local-apply це НЕ ловлять (STS не викликається при create pool).
keyless AUTH ≠ terraform-apply CAPABILITY — CI імперсонує least-privilege deploy-SA БЕЗ IAM/WIF/serviceusage-admin → CI terraform apply/drift-plan рефреш IAM/WIF-ресурсів = 403. Модель: apply founder-local (рек.) АБО SA-privesc (god-credential concern). → 00_07 INF.22.
gh run watch --exit-status бреше (exit 0 on fail / 1 on empty) — щоб перевірити, чи Deploy·Canopy/Production реально пройшов, довіряй gh run view --json conclusion, не watch.