flexway
FRENParler à un expert

Configurer et exploiter Flexway

ConceptExploitationDepuis la version 0.1.0

Markdown

Sur cette page

Guide d'exploitation : configurer, déployer et observer la passerelle. Ce que fait la capacité côté produit : guide produit ; l'appeler : guide développeur.

Chaque page dit ce qui en est construit et depuis quelle version. Les versions citées sont des jalons de la feuille de route, pas des tags de release : une release livre tous les jalons fusionnés avant elle, et le contenu d'un tag se lit dans les releases.

1. Prérequis

  • Un contrat OpenAPI 3.1 valide. C'est la seule entrée obligatoire.
  • Un moteur de conteneurs, ou le binaire seul - avec cosign pour vérifier ce que vous téléchargez.
  • Pour l'identité : l'URL de découverte de votre fournisseur OIDC.
  • Pour des débits partagés entre répliques et des quotas de tenant : un Redis, Dragonfly ou Valkey. Facultatif - sans lui, les compteurs sont locaux à chaque réplique et aucun quota de tenant ne se déclare.

Rien d'autre. Pas de base de données, pas de plan de contrôle, pas d'inscription préalable.

Le binaire (VM, bare métal) : chaque release porte flexway_<version>_linux_<arch>.tar.gz (amd64, arm64) - les octets mêmes de son image, copiés depuis elle - et SHA256SUMS, signé.

v=$(gh release view -R flexwiz/flexway --json tagName -q .tagName | sed 's/^v//'); arch=amd64   # la dernière
gh release download "v$v" -R flexwiz/flexway -p "flexway_${v}_linux_${arch}.tar.gz" -p 'SHA256SUMS*'
cosign verify-blob --bundle SHA256SUMS.sigstore.json \
  --certificate-identity-regexp '^https://github.com/flexwiz/flexway/.github/workflows/release.yml@' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar -xzf "flexway_${v}_linux_${arch}.tar.gz" && sudo install "flexway_${v}_linux_${arch}/flexway" /usr/local/bin/

Une fois un flexway.yaml écrit (Servir sa première API), le binaire est le service - sous systemd ou tout superviseur, configuré par son seul environnement :

Variable Défaut Rôle
FLEXWAY_CONFIG - (obligatoire) Le flexway.yaml à servir ; sans lui, le processus refuse de démarrer
FLEXWAY_ADDR :8080 Écouteur de trafic
FLEXWAY_ADMIN_ADDR :9090 Écouteur d'administration : /healthz, /readyz, /metrics, /config - jamais routable de l'extérieur
FLEXWAY_TLS_ADDR :8443 L'écouteur TLS propre à la passerelle, quand server.tls est posé
FLEXWAY_CONFIG=/etc/flexway/flexway.yaml flexway     # SIGTERM draine, SIGHUP recharge

2. La séquence

%%{init: {'theme':'base','themeVariables':{'fontSize':'13px','lineColor':'#94a3b8'}}}%%
sequenceDiagram
  participant U as Vous
  participant C as flexway (CLI)
  participant G as flexway (service)
  participant A as Amont

  U->>C: flexway validate
  Note over C: hors ligne - contrat + configuration
  C-->>U: chaque opération a un amont, ou échec
  U->>G: démarrage
  Note over G: mêmes contrôles, refus de démarrer si partiel
  U->>G: appel d'une opération déclarée
  G->>A: relais
  A-->>G: réponse
  G-->>U: réponse + trace + métriques

Cette séquence tourne depuis 0.2.0 : flexway validate hors ligne, refus de démarrer sur une configuration partielle, relais sans tampon, trace et métriques, et depuis 0.3.0 l'identité. La ligne d'audit du plan API est le journal chaîné des décisions, livré en 1.0.0 ( audit.decisions) ; sans lui, les refus sont journalisés avec un sujet haché.

Étapes suivantes