Source de vérité:telephony-edge-ha + edge-cell-imagecompute-planes = historique

Chaîne de construction et promotion

Chaque gate reste fermée si la preuve attendue n’est pas produite. Aucun secret n’est intégré à l’image ou au state.

Code

1. Sources verrouillées

Debian snapshot, Packer 1.16.0, plugin 1.5.0, OCI digests et RTPEngine source.

Local

2. Labs

Image policy, firewall, runtime et santé testés séparément.

Absent

3. Attestation

Signature, SBOM, CVE, Secure Boot et UUID image cloud.

IaC

4. OpenTofu

Deux cellules, trois NIC, policy, images zonales et outputs.

Opérations

5. G2 / pilote

PKI, secrets, NTP, VPN, carrier, E2E, charge et approbation.

Collecteur de santé edge privé

Code et health-lab local existent. Le collecteur n’est pas déployé sur une Instance et ne pilote encore ni drain ni failover carrier.

Timer 15 s

Indépendant et non-SPOF

navy-phone-edge-health.timer lance un oneshot root. Il n’est ni RequiredBy ni PartOf du runtime, ne le démarre pas, n’ouvre aucun listener ni port et ne participe pas au chemin d’appel.

Fraîcheur 45 s

Admission locale fail-closed

La commande health.py status refuse un snapshot ancien, incohérent ou non-ready. Aucun orchestrateur ou carrier ne consomme encore cette preuve.

Quatorze contrôles critiques

Chaque échec rend la cellule non-ready sans tuer la liveness du collecteur.

SocleAsteriskRTPEngineKamailio
5 contrôles
runtime target, pare-feu actif, Chrony, attestation, secrets runtime
3 contrôles
unité, conteneur, boot + SIP TLS + ARI TLS
3 contrôles
unité, conteneur, ping NG loopback
3 contrôles
unité, conteneur, process/listener 5061

Identité du pare-feu actif

Le contrôle ne se limite pas à « nftables actif ». Il recalcule l’identité du contenu et vérifie les permissions.

Config

Politique canonique + mode

SHA-256 de la politique normalisée et fichier root-only 0600.

Rendu

Fichier de règles

SHA-256 de /etc/nftables.conf et mode 0644 attendu.

Actif

Règles réellement chargées

SHA-256 de la sortie nft list table inet navy_phone.

Health-lab

Quatre dérives injectées

Config, config-mode, rules-file et active-rules sont refusés séparément.

Spool local borné et privé

Les écritures sont atomiques dans un répertoire root 0700. Les trois fichiers sont 0640 et inférieurs à 64 Kio.

FichierContenuCardinalité / vie privéeConsommateur
snapshot.jsonCellule, liveness, readiness, 14 checks, redémarrages connusAucun identifiant d’appel, adresse réseau, média ou payloadCLI locale seulement
metrics.promTimestamp, readiness, checks, redémarrages mesurablesLabels fixes cell/check/component; métrique inconnue omiseAucun exporter déployé
last-transition.jsonDernière transition ready/not-ready et checks échouésUn seul événement bornéAucun alerting déployé

Séparation des niveaux de preuve

Les commandes du health-lab sont simulées pour injecter les fautes. Les processus et protocoles réels sont prouvés séparément par runtime-lab.

NiveauAcquisNon acquis
CodeTimer/service, collecteur, politique image, IaC et gatesExécution distante
Health-lab14 fautes, 4 dérives firewall, récupération, spool, confidentialité, métrique inconnueCommandes/processus réels
Runtime-labKamailio 6.0.7 UID 1000, RTPEngine 26.0.1.13 pong, Asterisk 22.9.0; appel exact-socket dans un namespace partagé, double Record-Route, SDP ancré, Stasis et BYE retourRTP bidirectionnel sur ce même appel, carrier/PSTN, cloud, média post-renégociation, capacité et SLO
OpenTofu14 tests natifs avec provider mockéPlan/apply API réel
Cloud / productionRien pour ce lotImage, Instances, réseau, backend, drain, alerting, SLO, chaos A/B

Supervision centrale cible

Le snapshot edge présent en code/lab n’est ni un backend, ni un SLO, ni une intégration de failover.

Exporter privé

Collecte à concevoir

Lecture des fichiers sans nouveau listener public, backpressure et perte contrôlée.

Backend souverain

Métriques, logs et traces

Rétention, RBAC, redaction, résidence UE et capacité à figer.

Alerting

Burn-rate et runbooks

Seuils, déduplication, astreinte, fraude, MOS et escalade non opérationnels.

Readiness non consommée

Aucun drain réel

Ni orchestrateur ni carrier n’utilise le snapshot; aucun failover ou retrait automatique n’est prouvé.

Source actuelle et profil historique

La migration ne doit jamais importer les ports, claims HA ou faiblesses du profil historique dans la cible carrier.

Actuel

telephony-edge-ha

Deux cellules, image immuable, ARI TLS/Media WS 8089, trois NIC. Non déployé.

Historique

compute-planes

Single-zone STRIKE IT, ARI 8088 en lab et ports IA 8000/9000. Pas source de vérité carrier.