Skip to content

Resource Traits ​

PHP K8s uses traits to compose resource functionality. This allows resources to mix and match capabilities as needed.

Available Traits ​

HasSpec ​

Provides methods for managing the spec section of a resource.

php
use RenokiCo\PhpK8s\Traits\Resource\HasSpec;

$deployment->setSpec('replicas', 3);
$spec = $deployment->getSpec();

HasStatus ​

Provides read-only access to the status section from the cluster.

php
use RenokiCo\PhpK8s\Traits\Resource\HasStatus;

$status = $deployment->getStatus();

HasMetadata ​

Provides methods for labels, annotations, name, and namespace.

php
use RenokiCo\PhpK8s\Traits\Resource\HasMetadata;

$pod->setLabels(['app' => 'web']);
$pod->setAnnotations(['key' => 'value']);

HasSelector ​

Provides label and field selector methods for querying.

php
use RenokiCo\PhpK8s\Traits\Resource\HasSelector;

$deployment->setSelectors(['app' => 'web']);

HasReplicas ​

Provides replica management for scalable workloads.

php
use RenokiCo\PhpK8s\Traits\Resource\HasReplicas;

$deployment->setReplicas(5);
$count = $deployment->getReplicas();

HasPodTemplate ​

Provides pod template management for workload resources.

php
use RenokiCo\PhpK8s\Traits\Resource\HasPodTemplate;

$deployment->setTemplate($podTemplate);

HasStorage ​

Provides storage-related methods for volumes and claims.

php
use RenokiCo\PhpK8s\Traits\Resource\HasStorage;

Using Traits in Custom Resources ​

php
use RenokiCo\PhpK8s\Kinds\K8sResource;
use RenokiCo\PhpK8s\Traits\Resource\{HasSpec, HasStatus, HasMetadata};

class MyCRD extends K8sResource
{
    use HasSpec;
    use HasStatus;
    use HasMetadata;

    protected static $kind = 'MyCRD';
    protected static $defaultVersion = 'mygroup.io/v1';
}

See Also ​


Resource traits documentation for cuppett/php-k8s fork

Released under the Apache-2.0 License. Originally from renoki-co/php-k8s.