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

Atribúty, labely a anotácie

Zdroj je tenký obal v štýle Eloquentu okolo surového objektu Kubernetes. Ľubovoľné pole čítate a zapisujete cez bodkovú cestu, na bežné polia máte pomocníkov:

$checkout = $cluster->deployments()->setNamespace('shop')->withName('checkout')->find();

// Any field, by dot path
$checkout->getAttribute('metadata.uid');
$checkout->getAttribute('spec.template.spec.containers.0.image');
$checkout->setAttribute('spec.revisionHistoryLimit', 5);

// Spec and status helpers
$checkout->getSpec('strategy.type', 'RollingUpdate');
$checkout->setSpec('paused', true);
$checkout->getStatus('observedGeneration');

// Labels and annotations
$checkout->setLabel('team', 'payments')->removeLabel('legacy');
$checkout->setAnnotation('example.com/owner', 'payments-team');
$checkout->getLabels();                        // array<string, string>
$checkout->getAnnotation('prometheus.io/scrape', 'false');

// Change tracking against what the server returned
$checkout->isDirty();                          // true
$checkout->getOriginal('spec.paused');
$checkout->discardChanges();                   // back to the loaded copy
$checkout->sync();                             // accept the current state as the original

// Serialisation
$checkout->toArray();                          // kind and apiVersion always filled in
$checkout->toJson(JSON_PRETTY_PRINT);

Magické metódy

Neznáme volania set…(), get…(), addTo…(), remove…() a getOriginal…() sa premietnu na atribút najvyššej úrovne pomenovaný podľa zvyšku názvu metódy a with…() sa presmeruje na set…(). Fungujú na zdrojoch aj na hodnotových objektoch, napríklad Container:

use RoundlyConsulting\KubernetesApi\Resources\Types\Container;

$worker = Container::make()
    ->setName('worker')                        // name
    ->setImagePullPolicy('IfNotPresent')       // imagePullPolicy
    ->setCommand(['php', 'artisan', 'queue:work']);

$worker->addToArgs('--tries=3');               // appends to args
$worker->getImagePullPolicy();                 // 'IfNotPresent'
$worker->removeCommand();                      // unsets command

// withX() forwards to setX()
$cluster->deployments()->withName('checkout'); // same as ->setName('checkout')

Magické metódy pracujú len s poľami najvyššej úrovne — na všetko pod spec použite setSpec() a getSpec(), ktoré prijímajú bodkové cesty.

Prehľad

MetódaÚčel
getAttribute($path, $default) / setAttribute($path, $value)Čítanie alebo zápis ľubovoľného poľa cez bodkovú cestu.
addToAttribute($path, $value) / removeAttribute($path)Pridanie do zoznamu; odstránenie cesty.
setAttributes([...]) / removeAttributes()Nahradenie alebo vyprázdnenie celého objektu.
setName() / getName()metadata.name.
setNamespace() / getNamespace()metadata.namespace — pri klastrových typoch sa ignoruje, bez nastavenia default.
setLabels() · setLabel() · getLabels() · getLabel() · removeLabel()metadata.labels.
setAnnotations() · setAnnotation() · getAnnotations() · getAnnotation() · removeAnnotation()metadata.annotations.
setSpec() · addToSpec() · getSpec() · removeSpec()spec.* cez bodkovú cestu, pri zdrojoch so spec.
getStatus() · getStatusPhase() · statusPhaseIs()status.* cez bodkovú cestu, pri zdrojoch so status.
getKind() · getVersion() · getPluralKind()kind, apiVersion a REST plurál použitý v URL.
isDirty() · getOriginal() · discardChanges() · sync()Sledovanie zmien voči načítanej kópii.
exists() · wasRecentlyCreated()Príznaky existencie, ktoré nastavujú find, create a delete.
toArray() · toJson() · dump() · dd()Serializácia alebo výpis payloadu.

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.