NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Kubernetes API for Laravel

Pomenované klastre

Klastre nastavte v kľúči clusters v config/kubernetes.php — každá položka berie pripojenie z URL, z kontextu kubeconfigu alebo zo service accountu podu — a predvolený klaster určte kľúčom default:

// config/kubernetes.php
'default' => env('KUBERNETES_CLUSTER', 'default'),

'clusters' => [
    'default' => [
        'source' => 'url',
        'url' => env('KUBERNETES_URL'),
        'token' => env('KUBERNETES_TOKEN'),
        'ca_certificate' => env('KUBERNETES_CA_CERTIFICATE'),
        'namespace' => 'shop',
        'manager' => 'shop-production',
    ],
    'staging' => [
        'source' => 'kubeconfig',
        'kubeconfig' => null,          // null = KUBECONFIG or ~/.kube/config
        'context' => 'staging',        // null = current-context
        'manager' => 'shop-staging',
    ],
    'in-cluster' => [
        'source' => 'in-cluster',      // the pod's service account
    ],
],

Registrácia v kóde

Klastre môžete zaregistrovať aj v kóde, napríklad v metóde boot() service providera. Closure dostane prázdny klaster a musí vrátiť nastavený; spustí sa lenivo, až pri prvom použití klastra:

use RoundlyConsulting\KubernetesApi\Cluster;
use RoundlyConsulting\KubernetesApi\Facades\Kubernetes;

// In a service provider's boot() — the closure must return the configured cluster
Kubernetes::registerCluster('production', fn (Cluster $cluster): Cluster => $cluster
    ->url('https://api.prod.example.com:6443')
    ->withToken(config('services.kubernetes.prod_token'))
    ->withCaCertificate('/path/to/ca.crt')
    ->withManagerName('shop-production'));

// Resolve it anywhere by name
$cluster = Kubernetes::cluster('production');

Kubernetes::hasCluster('production');   // true
Kubernetes::clusters();                 // ['default', 'production']
  • Klaster sa vytvorí raz a potom sa znova používa — klastre sú nemenné, takže ich zdieľanie je bezpečné.
  • Registrácia v kóde prepíše nakonfigurovaný klaster s rovnakým menom.
  • Neznáme meno vyhodí ClusterNotFoundException. Closure, ktorá nevráti Cluster, alebo položka konfigurácie, ktorá nie je pole, má neznámy zdroj či nastavenie, ktoré nie je reťazec, vyhodí ClusterConfigurationException s jeho názvom. Prázdne nastavenie sa počíta ako nenastavené a dostane predvolenú hodnotu.
  • Rovnaké API bez fasády získate injektovaním RoundlyConsulting\KubernetesApi\KubernetesManager: $kubernetes->cluster('production').

Registrácia z vlastnej konfigurácie

Closure je obyčajné PHP, takže registrácie môžete riadiť vlastnou konfiguráciou:

use RoundlyConsulting\KubernetesApi\Cluster;
use RoundlyConsulting\KubernetesApi\Facades\Kubernetes;

public function boot(): void
{
    // One entry per cluster in your own config/services.php
    foreach (config('services.kubernetes.clusters', []) as $name => $settings) {
        Kubernetes::registerCluster($name, fn (Cluster $cluster): Cluster => $cluster
            ->url($settings['url'])
            ->withToken($settings['token'])
            ->withCaCertificate($settings['ca'])
            ->withManagerName("shop-{$name}"));
    }
}

Limiter požiadaviek na strane klienta kľúčuje rozpočet podľa apiservera — hostu, portu a predpony cesty v URL klastra —, takže klastre nikdy nezdieľajú rozpočet, ani keď majú rovnaké meno managera (pozrite Obmedzenie požiadaviek na strane klienta).

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 kryptomien

Odoslaní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.