DI a akcie
Fasáda je najkratšia cesta a odporúčaná voľba, no je len skratkou nad RoundlyConsulting\KubernetesApi\KubernetesManager — koreňom fasády, zaregistrovaným ako singleton v kontajneri. Ak manager injektujete, máte to isté API s explicitnou závislosťou a bez statických volaní:
use RoundlyConsulting\KubernetesApi\DataTransferObjects\Scale;
use RoundlyConsulting\KubernetesApi\KubernetesManager;
final class ScaleCheckout
{
public function __construct(private KubernetesManager $kubernetes) {}
public function __invoke(int $replicas): Scale
{
return $this->kubernetes->cluster('production')
->deployments()
->setName('checkout')
->scale($replicas);
}
}Objekty zdrojov namiesto akcií
Balík je klient vzdialeného API, preto nemá triedy akcií: prípadmi použitia sú samotné objekty zdrojov. Zdroj zostavíte priamo a naviažete ho na klaster z managera — prejde tým istým transportom aj tým istým fake:
use RoundlyConsulting\KubernetesApi\Resources\ConfigMap;
ConfigMap::make()
->setCluster($kubernetes->cluster('production'))
->setNamespace('shop')
->setName('settings')
->setData(['FEATURE_X' => 'on'])
->create();Tri vstupné body, jeden transport
| Vstupný bod | Volanie | Kedy ho použiť |
|---|---|---|
| Fasáda | Kubernetes::cluster('production')->deployments()->setName('checkout')->scale(5) | Odporúčaná voľba — najkratšia a používajú ju všetky príklady v dokumentácii. |
| Injektovaný manager | $this->kubernetes->cluster('production')->deployments()->setName('checkout')->scale(5) | Chcete explicitnú závislosť v konštruktore a žiadne statické volania. |
| Objekt zdroja | Deployment::make()->setCluster($kubernetes->cluster('production'))->setName('checkout')->scale(5) | Zdroj najprv zostavíte a až potom ho naviažete na spravovaný klaster. |
- Kubernetes::fake() vymení manager za fasádou aj v kontajneri, takže fake dostane aj injektovaný KubernetesManager.
- Zdroje naviazané na klaster z managera — pomenovaný, predvolený, ad-hoc aj obmedzený na namespace — používajú transport tohto klastra, takže aj ich nahradí fake.
- Klaster vytvorený mimo managera (new Cluster, Cluster::make()) používa skutočný HTTP transport a fake obíde — klastre preto získavajte cez fasádu alebo manager.
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.