Spracovanie chýb
Neúspešné požiadavky vyhodia RoundlyConsulting\KubernetesApi\Exceptions\KubernetesException, ktorá rozširuje RequestException z Laravelu a nesie pôvodnú Response, takže chybu Kubernetes API môžete preskúmať:
use RoundlyConsulting\KubernetesApi\Exceptions\KubernetesException;
try {
$cluster->deployments()
->setNamespace('shop')
->withName('checkout')
->find()
->setReplicas(5)
->update();
} catch (KubernetesException $e) {
$e->response->status(); // e.g. 404 or 409
$e->response->json('message'); // the Kubernetes error message
$e->response->json('reason'); // e.g. 'NotFound', 'Conflict'
$e->getMessage(); // the same message as the exception text
}Všetky výnimky
| Výnimka | Kedy vznikne | Obsahuje |
|---|---|---|
KubernetesException | Apiserver odpovie kódom 4xx alebo 5xx. | ->response (Response Laravelu); správa je od apiservera. |
RateLimitExceededException | Požiadavka by čakala dlhšie ako rate_limits.max_wait. | ->cluster (meno registrovaného klastra, pri ad-hoc klientovi host apiservera) a retryAfterSeconds(). |
KubeConfigException | fromKubeConfig() alebo inCluster() nevie načítať prihlasovacie údaje — vrátane chýbajúceho CA certifikátu v klastri či insecure-skip-tls-verify, ktoré nie je boolean. | Správu s tým, čo chýba alebo je neplatné. |
WebSocketException | exec() sa nepripojí alebo zlyhá upgrade na WebSocket. | Chybu spojenia alebo upgradu. |
ClusterNotFoundException | cluster($name) dostane meno, ktoré nie je nakonfigurované ani zaregistrované. | Neznáme meno klastra. |
ClusterConfigurationException | Klaster nemá URL, closure definície nevráti Cluster, zdroj v konfigurácii je neznámy, nastavenie klastra či klienta je chybné alebo mimo rozsahu, prípadne sa zdroj použije bez klastra. | Ktorý klaster, konfiguračný kľúč či zdroj je nastavený zle. |
NamespaceScopeException | Klient alebo zdroj obmedzený na namespace má svoj namespace opustiť. | ->scope (pripnutý namespace). |
InvalidResourceException | registerResource() alebo seed() vo fake dostane triedu, ktorá nie je zdroj, alebo nepoužiteľné meno; konfigurácia resources nie je pole či uvádza triedu, ktorá nie je zdroj; alebo meno, namespace, plural či apiVersion požiadavky nemôže byť jedným segmentom cesty URL (nič sa neodošle). | Problémovú triedu alebo meno. |
InvalidConfigurationException | Kľúč rate_limits alebo traefik.group je neplatný — nerozpoznaný prepínač, necelé číslo či číslo mimo rozsahu, neznámy timespan alebo hodnota, ktorá nie je reťazec. Pochádza z package-toolkit-for-laravel. | Správu s názvom kľúča a zadanou hodnotou. |
404 z find() je zvyčajne signál na vytvorenie — existsOnCluster() a updateOrCreate() to riešia za vás. 409 z update() alebo updateOrCreate() znamená, že sa objekt od načítania zmenil: načítajte ho znova a pokus zopakujte.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.