---
title: "CRUD operácie — Kubernetes API for Laravel | Roundly"
description: "Výpis, vyhľadanie, kontrola existencie, vytvorenie, úprava, updateOrCreate a mazanie zdrojov — s optimistickou súbežnosťou a voľbami mazania."
url: https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel/crud-operacie
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)

# CRUD operácie

Operácie používajú HTTP klienta Laravelu a vracajú objekty zdrojov naplnené odpoveďou apiservera — find() vráti zdroj, get() ResourcesCollection (kolekciu Laravelu):

```php
use RoundlyConsulting\KubernetesApi\Facades\Kubernetes;

$cluster = Kubernetes::cluster('production');

// List — a ResourcesCollection of Deployment resources
$cluster->deployments()->setNamespace('shop')->get();

// Find a single deployment — returns a Deployment resource
$cluster->deployments()->setNamespace('shop')->withName('checkout')->find();

// Check existence — a 404 becomes false, any other error still throws
$cluster->deployments()->setNamespace('shop')->withName('checkout')->existsOnCluster();
$cluster->deployments()->setNamespace('shop')->withName('checkout')->missingOnCluster();

// Create a deployment
$template = [
    'metadata' => ['labels' => ['app' => 'checkout']],
    'spec' => ['containers' => [['name' => 'app', 'image' => 'registry.example.com/checkout:v1.4.0']]],
];

$deployment = $cluster->deployments()
    ->setNamespace('shop')
    ->setName('checkout')
    ->setLabels(['app' => 'checkout'])
    ->setReplicas(3)
    ->setPodsSelectors(['app' => 'checkout'])
    ->setSpec('template', $template)
    ->create();

$deployment->wasRecentlyCreated(); // true
$deployment->exists();             // true

// Update — read, modify, write back
$cluster->deployments()
    ->setNamespace('shop')
    ->withName('checkout')
    ->find()
    ->setReplicas(5)
    ->update();

// Update if it exists, otherwise create it — send the complete desired object
$cluster->deployments()
    ->setNamespace('shop')
    ->setName('checkout')
    ->setReplicas(2)
    ->setPodsSelectors(['app' => 'checkout'])
    ->setSpec('template', $template)
    ->updateOrCreate();

// Delete a deployment
$deleted = $cluster->deployments()->setNamespace('shop')->withName('checkout')->delete();
$deleted->exists(); // false
```

## Ako sa správajú zápisy

- create() objekt odošle cez POST; vrátený zdroj hlási wasRecentlyCreated() aj exists(). Pri workloadoch apps/v1 apiserver vyžaduje selektor podov a šablónu podu, ktorej labely mu zodpovedajú.
- update() odošle celý objekt cez PUT — najprv ho načítajte cez find(), aby payload niesol aktuálnu resourceVersion a všetky polia, ktoré ste nemenili.
- updateOrCreate() zdroj vyhľadá a pri 404 ho vytvorí. Inak do vášho objektu prenesie aktuálnu resourceVersion zo servera a odošle ho cez PUT, takže súbežná zmena sa prejaví ako typovaný konflikt 409 a nie je potichu prepísaná. PUT objekt nahradí — zostavte celý požadovaný stav a na čiastočné zmeny použite patch().
- delete() predvolene posiela DeleteOptions s propagáciou Foreground a vráti zdroj, ktorého exists() je false.
- existsOnCluster() a missingOnCluster() premenia 404 na boolean; každá iná chyba sa naďalej vyhodí.

## Parametre dotazu a voľby mazania

Každá operácia prijíma voliteľné pole dotazu — predvolene \['pretty' => 1\] — ktoré sa pridá k požiadavke, takže akýkoľvek parameter apiservera máte na jeden argument. delete() navyše prijíma Type s telom DeleteOptions:

```php
use RoundlyConsulting\KubernetesApi\Resources\Types\Type;

// Background cascading instead of the default Foreground
$cluster->deployments()->setNamespace('shop')->withName('checkout')
    ->delete(options: Type::make()->setPropagationPolicy('Background'));

// Any apiserver query parameter — here gracePeriodSeconds
$cluster->pods()->setNamespace('shop')->withName('checkout-5f7c9d8b6-x2kqj')
    ->delete(['gracePeriodSeconds' => 0]);
```

withName() je alias setName(): každé volanie with…() sa presmeruje na zodpovedajúce set…(), takže v reťazci sa oboje číta prirodzene.

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