PHP code example of teknoo / kubernetes-client

1. Go to this page and download the library: Download teknoo/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/ */

    

teknoo / kubernetes-client example snippets

;
use Teknoo\Kubernetes\Client;

$client = new Client([
	'master' => 'http://master.mycluster.com',
]);

// Find pods by label selector
$pods = $client->pods()
    ->setLabelSelector(
        [
            'name'    => 'test',
            'version' => 'a',
        ]
    )->find();

// Both setLabelSelector and setFieldSelector can take an optional
// second parameter which lets you define inequality based selectors (ie using the != operator)
$pods = $client->pods()
    ->setLabelSelector(
        ['name' => 'test'], 
	    ['env' => 'staging']
    )->find();

// Find pods by field selector
$pods = $client->pods()->setFieldSelector(['metadata.name' => 'test'])->find();

// Find first pod with label selector (same for field selector)
$pod = $client->pods()->setLabelSelector(['name' => 'test'])->first();

use Teknoo\Kubernetes\Client;
$client = new Client([
	'master' => 'http://master.mycluster.com',
]);

use Teknoo\Kubernetes\Client;

// Parsing from the file data directly
$client = Client::loadFromKubeConfig('kubeconfig yaml data');

// Parsing from the file path
$client = Client::loadFromKubeConfigFile('~/.kube/config.yml');

use Teknoo\Kubernetes\Client;

$repositories = new RepositoryRegistry();
$repositories['things'] = MyApp\Kubernetes\Repository\ThingRepository::class;

$client = new Client(
    [
        'master' => 'https://master.mycluster.com',
    ], 
    $repositories
);

$client->things(); //ThingRepository

use Teknoo\Kubernetes\Model\ReplicationController;

$replicationController = new ReplicationController([
	'metadata' => [
		'name' => 'nginx-test',
		'labels' => [
			'name' => 'nginx-test',
		],
	],
	'spec' => [
		'replicas' => 1,
		'template' => [
			'metadata' => [
				'labels' => [
					'name' => 'nginx-test',
				],
			],
			'spec' => [
				'containers' => [
					[
						'name'  => 'nginx',
						'image' => 'nginx',
						'ports' => [
							[
								'containerPort' => 80,
								'protocol'      => 'TCP',
							],
						],
					],
				],
			],
		],
	],
]);

if ($client->replicationControllers()->exists($replicationController->getMetadata('name'))) {
	$client->replicationControllers()->update($replicationController);
} else {
	$client->replicationControllers()->create($replicationController);
}
$client->replicationControllers()->apply($replicationController);
// or


$replicationController = $client->replicationControllers()->setLabelSelector(['name' => 'nginx-test'])->first();
$client->replicationControllers()->delete($replicationController);

use Teknoo\Kubernetes\Model\DeleteOptions;

$client->replicationControllers()->delete(
	$replicationController,
	new DeleteOptions(['propagationPolicy' => 'Background'])
);