Déclarez le Kong que vous voulez, avec yaml
. Arrêtez les curl
manuelles et conservez leurs documents.
Gère les ressources via l'API Kong Admin (REST, async HTTP, JSON). Inclut un exemple pour ajouter une autorisation à l'API Admin elle-même.
Quelques changements rétrocompatibles avec l'aio-kong de Luca Sbardella.
make
des règles test
, retest
, build
, install
, publish_pypi
, ....venvs/
pour le développement et la publication, gérée par les règles make
clarity
, instafail
et spec
, tests exécutés dans dev venvpur
pour les requêtes et black
, flake8
, mypy
pour le codewheel
pour bdist et twine
pour publier PyPis--output
pour limiter la sortie à une propriété JSON (pour les scripts), ou n'en avoir None
examples/
pour le bouclage de l'API Kong Admin et un exemple de point de terminaison via celui-ciKONG_ADMIN_URL
, par défaut http://localhost:8001
KONG_ADMIN_KEY
pour utiliser l'API Kong Admin via le bouclage et l'authentification par clé.--admin-url
et --admin-key
pour avoir la priorité sur les deuxKONG_URL
BWIC--ip
BWICFAIRE:
Depuis PyPI :
pip install --upgrade kong-incubator
Python >= 3.6 requis.
KONG_ADMIN_URL
par défaut est http://localhost:8001.
Créer ou mettre à niveau des ressources (est un proxy vers Mockbin) :
kong-incubator --yaml examples/mockbin.yaml
Générez une key
aléatoire pour son consommateur :
kong-incubator --key-auth mocker
Consommateur de sortie uniquement si key
a déjà été définie.
L'exécution avec un --yaml
modifié ne met à jour que les parties modifiées. Les ressources supprimées du fichier ne sont pas supprimées de Kong. Pour supprimer une ressource de Kong, ajoutez ensure: absent
dans YAML.
Pour obtenir la liste de toutes les options, exécutez sans :
$ kong-incubator
Usage: kong-incubator [OPTIONS]
Options:
--admin-url TEXT Kong Admin API URL.
Default: http://localhost:8001
Precedence over KONG_ADMIN_URL
--admin-key TEXT Kong Admin API apikey if required.
Default: None
Precedence over KONG_ADMIN_KEY
--key-auth TEXT Consumer to generate a key or output the existing.
--yaml FILENAME Defines one or many Kong resources by their target
state.
--output TEXT If given, restrict output to this JSON property, or
None.
By default, output everything.
--version Output version and exit.
--help Show this message and exit.
Crée un bouclage de l'API Kong Admin nécessitant une authentification par clé :
kong-incubator --yaml examples/kadmin.yaml
kong-incubator --key-auth root --output key
Désormais, gérez Kong via le bouclage (vérifie l'en-tête de la requête apikey
) :
export KONG_ADMIN_URL=http://localhost:8000/kadmin
export KONG_ADMIN_KEY={{thekeyabove}}
kong-incubator --yaml ..
Les options --admin-url
ou --admin-key
peuvent être utilisées ou prévaloir :
export KONG_ADMIN_URL=http://localhost:8000/kadmin
kong-incubator --admin-key={{thekeyabove}} --yaml ..
Dans Kubernetes/OpenShift, supprimez les routes vers 8001 et 8444.
import json
from kong . client import Kong
async with Kong () as cli :
services = await cli . services . get_list ()
print ( json . dumps ( services , indent = 4 ))
Les tests supposent que l'API Kong Admin s'exécute sur http://localhost:8001.
Si vous disposez docker-compose
, vous pouvez exécuter make dc
pour obtenir kongpose/ en tant que sous-module git et le démarrer en arrière-plan pour les tests. Utilisez make dc_rm
pour arrêter et supprimer la pile, y compris les volumes des bases de données.
Exécutez make
comme raccourci pour trois autres règles :
make test
crée .venvs/dev
et installe les exigences, également dev. Pour réexécuter uniquement les tests ayant échoué, le cas échéant, sinon tous, utilisez make retest
qui ignore l'installation des exigences (-dev). Tous deux nettoient les ressources Kong qu’ils créent.
make build
recrée .venvs/release
à chaque exécution, y installe les outils de build et construit les sources et les roues prêtes à être publiées.
make install
installe le package à partir de l'arborescence des sources. Pas besoin de réinstaller après les modifications des sources car le package est installé de manière modifiable.
Vous pouvez make --jobs
pour exécuter les règles ci-dessus en parallèle, donc sur 3 cœurs de processeur.
Exécutez make pur
pour mettre à jour les versions verrouillées des exigences (-dev) pour les dépendances qui les contiennent.
De plus, exécutez make {{tool}}
pour black, flake8 ou mypy. Les paramètres de flake8
et mypy
, ainsi que pytest se trouvent dans leurs propres fichiers de configuration car ils ne prennent pas encore en charge pyproject.toml
, comme black
.
Exécutez make clean
pour supprimer les caches .venvs/
, build/
, dist/
et l'arborescence source.
Voir make help
pour toutes les règles :
all Run test, build and install (default goal)
black Reformat source code in-place
build Build source dist and wheel
clean Remove .venvs, builds, dists, and caches
dc_rm Stop and remove docker-compose env and volumes
dc Start docker-compose env on background
flake8 Run flake8 for static code analysis
install Install package from source tree, as --editable
install_pypi Install the latest PyPI release
install_test Install the latest test.pypi.org release
mypy Run mypy for static type checking
publish_pypi Publish dists to PyPI
publish_test Publish dists to test.pypi.org
pur Update requirements(-dev) for locked versions
retest Run failed tests only, if none, run all
test Run tests, installs requirements(-dev) first
uninstall Uninstall the package, regardless of its origin
Ficelle incluse pour télécharger via HTTPS.
Pour tester PyPI :
make publish_test
Vers PyPI
make publish_pypi