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