PHP code example of prezly / kubernetes-client

1. Go to this page and download the library: Download prezly/kubernetes-client library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

prezly / kubernetes-client example snippets


use GuzzleHttp\Client as HttpClient;
use Prezly\KubernetesClient\KubernetesClient;

$http = new HttpClient([
    'base_uri' => 'https://kubernetes.local/',
    'verify'   => false,
]);

$client = new KubernetesClient($http);


use Prezly\KubernetesClient\KubernetesClientFactory as Factory;

$client = Factory::connectTo('https://kubernetes.companyintranet.local')
    ->withAccessToken(getenv('KUBERNETES_ACCESS_TOKEN'))
    ->withCertificateAuthority('/app/kubernetes.ca')
    ->constructClient();
    
// Interact with Kubernetes API with $client

use Prezly\KubernetesClient\KubernetesClient;
use Psr\Log\LoggerInterface;

$logger = new MyCustomLogger();
assert($logger instanceof LoggerInterface);

$client = new KubernetesClient($http, $logger);

use Prezly\KubernetesClient\KubernetesClientFactory as Factory;

$client = Factory::connectTo('https://kubernetes.companyintranet.local')
    ->withLogger(new MyCustomLogger())
    ->constructClient();


/** @var \Prezly\KubernetesClient\KubernetesClient $client */
$ingresses = $client->get('/apis/networking.k8s.io/v1/namespaces/default/ingresses');

foreach ($ingresses['items'] as $ingress) {
    $client->delete("/apis/networking.k8s.io/v1/namespaces/default/ingresses/{$ingress['metadata']['name']}");
}

/** @var \Prezly\KubernetesClient\KubernetesClient $client */
$client->watch($url, $watcher, $initializer = null);

/** @var \Prezly\KubernetesClient\KubernetesClient $client */
$client->watch('/apis/networking.k8s.io/v1/namespaces/default/ingresses', function (array $event) {
    if ($event['type'] === 'ADDED') {
        echo "Ingress `{$event['object']['metadata']['name']}` was added\n";
    }
});

/** @var \Prezly\KubernetesClient\KubernetesClient $client */
$client->watch(
    '/apis/networking.k8s.io/v1/namespaces/default/ingresses', 
    function (array $event) {
        if ($event['type'] === 'ADDED') {
            echo "Ingress `{$event['object']['metadata']['name']}` was added\n";
        }
    },
    function (array $ingresses) {
        foreach ($ingresses['items'] as $ingress) {
            echo "Ingress `{$ingress['metadata']['name']}` existed before the watcher started\n";
        }
    }
);

/** @var \Prezly\KubernetesClient\KubernetesClient $client */
$client->watch('/apis/networking.k8s.io/v1/namespaces/default/ingresses', function (array $event) {
    if ($event['type'] === 'DELETED') {
        return false; // force exit
    }
});