Limites
Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.
Débit
| Portée | Limite | Fenêtre |
|---|---|---|
Routes /v1, par adresse IP | 300 requêtes | 1 minute glissante |
La limite s'applique avant toute vérification du jeton : une requête refusée (401, 403)
compte aussi. Les sessions et policies (/v1/iam/…), les routes d'identité (tenants,
gabarits) et les routes du tenant ont chacune leur compteur de 300 requêtes. Au-delà, l'API
répond 429, {"error": "rate limit exceeded"}, avec un en-tête Retry-After. La limite est par adresse IP
vue par la plateforme : derrière une NAT d'entreprise ou dans une CI mutualisée, plusieurs
clients la partagent.
Conseils :
- Mettre en cache
GET /v1/openapi.yaml(il porte unETaget unCache-Control). - Ne pas sonder en boucle :
sng app describetoutes les secondes depuis dix terminaux épuise la limite. Préférersng app logs(flux) ou un intervalle de 5 à 10 s. - Respecter
Retry-Afteret appliquer un délai croissant sur429et503.
Délais
| Délai | Valeur |
|---|---|
| Lecture de la requête par le serveur | 30 s |
| Écriture de la réponse | 60 s |
| Session de tenant | 1 h (5 min à 1 h pour une session ouverte par une CI fédérée) |
Réponse 409 policies_pending après création d'un tenant | jusqu'à ~5 min, Retry-After: 10 |
Les flux (GET /v1/apps/{name}/logs) sont la seule exception au délai d'écriture : la
connexion reste ouverte tant que le client lit.
Taille
- Corps de requête : 1 Mo au plus, lu avec un décodeur strict (champs inconnus refusés, pas de second document JSON à la suite).
- Manifestes : chaque document YAML est validé contre le schéma de son kind ; les bornes (nombre de services, longueur des noms, nombre de cibles DNS…) sont dans la référence des manifestes.
- Téléversements (
apply,cdn uploads) : le corps de l'API ne porte pas les fichiers. L'API renvoie des URL de dépôt et le client y envoie les octets directement.
Pagination
Il n'y en a pas : les listes sont renvoyées en entier. Les volumes concernés (manifestes,
secrets, applications d'un tenant) restent de l'ordre de la centaine. Si une liste devient
grande, filtrez côté client (jq), et dites-le-nous.
Concurrence
- Deux
applysimultanés sur le même manifeste : le dernier écrit gagne. Unapplyn'est pris en compte qu'aprèsapply/complete, une fois tous les manifestes déposés. - Une rotation de secret déjà en cours répond
409. - Une ressource en cours de suppression répond
409à toute modification.
CORS
L'API ne renvoie pas d'en-têtes CORS : elle n'est pas conçue pour être appelée directement depuis le navigateur d'un tiers. Passez par un serveur (le vôtre ou une fonction) qui détient la session.
Quotas du tenant
Indépendamment des limites de l'API, chaque tenant a un tier qui borne CPU, mémoire,
nombre d'instances, de moniteurs, etc. Un dépassement se voit dans le status des ressources
(QuotaExceeded) ou en 409 tier too small. Voir Tiers.