Skip to content
forked from renoki-co/php-k8s

Unofficial PHP client for Kubernetes. It supports any form of authentication, the exec API, and it has an easy implementation for CRDs.

License

Notifications You must be signed in to change notification settings

cuppett/php-k8s

 
 

Repository files navigation

PHP K8s

Note: This is a maintained fork of renoki-co/php-k8s with PHP 8.2+ support and additional features. See fork differences for details.

v1.32.9 K8s Version v1.33.5 K8s Version v1.34.1 K8s Version

Client Capabilities Client Support Level

Control your Kubernetes clusters with this PHP-based Kubernetes client. It supports any form of authentication, the exec API, and it has an easy implementation for CRDs.

For Laravel projects, you might want to use renoki-co/laravel-php-k8s (from the upstream project). Note that compatibility with this fork is not guaranteed.

✨ Features

  • Full Kubernetes API Support: 33+ resource types including Pods, Deployments, Services, and more
  • Exec & Logs: Execute commands and stream logs from containers
  • Watch API: Real-time event streaming for resource changes
  • JSON Patch & Merge Patch: RFC 6902 and RFC 7396 support for precise updates
  • Custom Resources (CRDs): Easy CRD integration with macros
  • PHP 8.2+ Modern Features: Enums, type hints, readonly properties, match expressions
  • Laravel Integration: First-class Laravel support via laravel-php-k8s
  • Flexible Authentication: Kubeconfig, tokens, certificates, in-cluster config
  • YAML Import: Load resources directly from YAML files with templating

🚀 Quick Start

use RenokiCo\PhpK8s\K8s;
use RenokiCo\PhpK8s\KubernetesCluster;

$cluster = new KubernetesCluster('http://127.0.0.1:8080');

$pod = K8s::pod($cluster)
    ->setName('my-pod')
    ->setContainers([
        K8s::container()->setName('app')->setImage('nginx:latest')
    ])
    ->create();

echo $pod->getName(); // my-pod
echo $pod->getPodPhase(); // Returns PodPhase enum

See more examples →

📦 Requirements

  • PHP 8.2 or higher
  • Laravel 11.x or 12.x (for Laravel integration)
  • Kubernetes cluster access

📃 Documentation

Read the full documentation at php-k8s.cuppett.dev

This fork is based on renoki-co/php-k8s. See the project history and upstream documentation for more details.

🐛 Testing

vendor/bin/phpunit

🤝 Contributing

Please see CONTRIBUTING for details.

🔒 Security

If you discover any security related issues, please email steve@cuppett.com instead of using the issue tracker.

🎉 Credits

About

Unofficial PHP client for Kubernetes. It supports any form of authentication, the exec API, and it has an easy implementation for CRDs.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%