---
title: "Atribúty, labely a anotácie — Kubernetes API for Laravel | Roundly"
description: "Prístup k atribútom cez bodkové cesty, pomocníci pre spec a status, labely, anotácie, magické metódy, sledovanie zmien a serializácia."
url: https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel/atributy-labely-a-anotacie
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Kubernetes API for Laravel](https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel.md)

# 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:

```php
$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 — odstráni sa len úvodné sloveso, takže getTargetPort() číta targetPort — a with…() sa presmeruje na set…(). Fungujú na zdrojoch aj na hodnotových objektoch, napríklad Container:

```php
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 — getName() vráti null pri zdroji bez mena, napríklad pri šablóne podu. |
| `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 — kind a apiVersion sa doplnia len do výstupu, takže serializácia zdroj nikdy neoznačí ako zmenený. |

## Mapy zostávajú JSON objektmi

Mapy s reťazcovými kľúčmi sa vždy zakódujú ako JSON objekty — metadata.labels a annotations, data a binaryData v ConfigMap, data a stringData v Secret aj labely a anotácie v šablóne podu (spec.template) či v šablóne jobu v CronJob —, a to aj vtedy, keď sú všetky kľúče číselné reťazce ({"0": "a"}), z ktorých by PHP inak urobilo zoznam, ktorý apiserver odmietne. Prázdne setLabels(\[\]) či setAnnotations(\[\]) alebo odstránenie posledného labelu či anotácie pošle {}.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

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

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel.md)
