Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/kinds/ConfigMap.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
```php
$cm = $cluster->configmap()
->setName('certificates')
->setLabels(['tier' => 'backend'])
->setData([
'key.pem' => '...',
'ca.pem' => '...',
Expand Down
1 change: 1 addition & 0 deletions docs/kinds/Ingress.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
```php
$ingress = $cluster->ingress()
->setName('nginx')
->setLabels(['tier' => 'backend'])
->setSelectors(['app' => 'frontend'])
->setRules([[
'host' => 'nginx.test.com',
Expand Down
18 changes: 18 additions & 0 deletions docs/kinds/Resource.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,24 @@ $namespace->getName();

Alias for [setName($name)](#setnamename). It's just a naming convention for better filters on get.

## Labels

### `setLabels(array $labels)`

Set the labels of the resource.

```php
$service->setLabels(['tier' => 'backend']);
```

### `getLabels()`

Get the labels of a resource.

```php
$service->getLabels();
```

## API

### `getApiVersion()`
Expand Down
1 change: 1 addition & 0 deletions docs/kinds/Service.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
```php
$svc = $cluster->service()
->setName('nginx')
->setLabels(['tier' => 'backend'])
->setSelectors(['app' => 'frontend'])
->setPorts([
['protocol' => 'TCP', 'port' => 80, 'targetPort' => 80],
Expand Down
4 changes: 4 additions & 0 deletions src/Kinds/K8sClusterRoleBinding.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

namespace RenokiCo\PhpK8s\Kinds;

use RenokiCo\PhpK8s\Traits\HasLabels;

class K8sClusterRoleBinding extends K8sRoleBinding
{
use HasLabels;

/**
* The resource Kind parameter.
*
Expand Down
3 changes: 3 additions & 0 deletions src/Kinds/K8sConfigMap.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;

class K8sConfigMap extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasLabels;

/**
* The resource Kind parameter.
*
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sHorizontalPodAutoscaler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use RenokiCo\PhpK8s\Contracts\Scalable;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Instances\ResourceMetric;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasSpec;
use RenokiCo\PhpK8s\Traits\HasStatus;
use RenokiCo\PhpK8s\Traits\HasStatusConditions;
Expand All @@ -15,6 +16,7 @@ class K8sHorizontalPodAutoscaler extends K8sResource implements InteractsWithK8s
use HasSpec;
use HasStatus;
use HasStatusConditions;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sIngress.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasAnnotations;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasSpec;

class K8sIngress extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasAnnotations;
use HasSpec;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sNamespace.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasStatus;
use RenokiCo\PhpK8s\Traits\HasStatusPhase;

class K8sNamespace extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasStatus;
use HasStatusPhase;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sPersistentVolume.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasAccessModes;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasMountOptions;
use RenokiCo\PhpK8s\Traits\HasSelector;
use RenokiCo\PhpK8s\Traits\HasSpec;
Expand All @@ -21,6 +22,7 @@ class K8sPersistentVolume extends K8sResource implements InteractsWithK8sCluster
use HasStatus;
use HasStatusPhase;
use HasStorageClass;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sPersistentVolumeClaim.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasAccessModes;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasSelector;
use RenokiCo\PhpK8s\Traits\HasSpec;
use RenokiCo\PhpK8s\Traits\HasStatus;
Expand All @@ -19,6 +20,7 @@ class K8sPersistentVolumeClaim extends K8sResource implements InteractsWithK8sCl
use HasStatus;
use HasStatusPhase;
use HasStorageClass;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasRules;

class K8sRole extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasRules;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sRoleBinding.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasSubjects;

class K8sRoleBinding extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasSubjects;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
3 changes: 3 additions & 0 deletions src/Kinds/K8sSecret.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;

class K8sSecret extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasLabels;

/**
* The resource Kind parameter.
*
Expand Down
2 changes: 2 additions & 0 deletions src/Kinds/K8sService.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasAnnotations;
use RenokiCo\PhpK8s\Traits\HasLabels;
use RenokiCo\PhpK8s\Traits\HasSelector;
use RenokiCo\PhpK8s\Traits\HasSpec;

Expand All @@ -13,6 +14,7 @@ class K8sService extends K8sResource implements InteractsWithK8sCluster, Watchab
use HasAnnotations;
use HasSelector;
use HasSpec;
use HasLabels;

/**
* The resource Kind parameter.
Expand Down
3 changes: 3 additions & 0 deletions src/Kinds/K8sServiceAccount.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;

class K8sServiceAccount extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasLabels;

/**
* The resource Kind parameter.
*
Expand Down
3 changes: 3 additions & 0 deletions src/Kinds/K8sStorageClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

use RenokiCo\PhpK8s\Contracts\InteractsWithK8sCluster;
use RenokiCo\PhpK8s\Contracts\Watchable;
use RenokiCo\PhpK8s\Traits\HasLabels;

class K8sStorageClass extends K8sResource implements InteractsWithK8sCluster, Watchable
{
use HasLabels;

/**
* The resource Kind parameter.
*
Expand Down
7 changes: 7 additions & 0 deletions tests/ClusterRoleBindingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ public function test_cluster_role_binding_build()

$crb = $this->cluster->clusterRoleBinding()
->setName('user-binding')
->setLabels(['tier' => 'backend'])
->setRole($cr)
->addSubjects([$subject])
->setSubjects([$subject]);

$this->assertEquals('rbac.authorization.k8s.io/v1', $crb->getApiVersion());
$this->assertEquals('user-binding', $crb->getName());
$this->assertEquals(['tier' => 'backend'], $crb->getLabels());
$this->assertEquals([$subject], $crb->getSubjects());
$this->assertEquals(['apiGroup' => 'rbac.authorization.k8s.io', 'kind' => 'ClusterRole', 'name' => 'admin-cr'], $crb->getRole());
}
Expand All @@ -62,6 +64,7 @@ public function test_cluster_role_binding_from_yaml()

$this->assertEquals('rbac.authorization.k8s.io/v1', $crb->getApiVersion());
$this->assertEquals('user-binding', $crb->getName());
$this->assertEquals(['tier' => 'backend'], $crb->getLabels());
$this->assertEquals([$subject], $crb->getSubjects());
$this->assertEquals(['apiGroup' => 'rbac.authorization.k8s.io', 'kind' => 'ClusterRole', 'name' => 'admin-cr'], $crb->getRole());
}
Expand Down Expand Up @@ -97,6 +100,7 @@ public function runCreationTests()

$crb = $this->cluster->clusterRoleBinding()
->setName('user-binding')
->setLabels(['tier' => 'backend'])
->setRole($cr)
->addSubjects([$subject])
->setSubjects([$subject]);
Expand All @@ -114,6 +118,7 @@ public function runCreationTests()

$this->assertEquals('rbac.authorization.k8s.io/v1', $crb->getApiVersion());
$this->assertEquals('user-binding', $crb->getName());
$this->assertEquals(['tier' => 'backend'], $crb->getLabels());
$this->assertEquals([$subject], $crb->getSubjects());
$this->assertEquals(['apiGroup' => 'rbac.authorization.k8s.io', 'kind' => 'ClusterRole', 'name' => 'admin-cr'], $crb->getRole());
}
Expand Down Expand Up @@ -147,6 +152,7 @@ public function runGetTests()

$this->assertEquals('rbac.authorization.k8s.io/v1', $crb->getApiVersion());
$this->assertEquals('user-binding', $crb->getName());
$this->assertEquals(['tier' => 'backend'], $crb->getLabels());
$this->assertEquals([$subject], $crb->getSubjects());
$this->assertEquals(['apiGroup' => 'rbac.authorization.k8s.io', 'kind' => 'ClusterRole', 'name' => 'admin-cr'], $crb->getRole());
}
Expand All @@ -171,6 +177,7 @@ public function runUpdateTests()

$this->assertEquals('rbac.authorization.k8s.io/v1', $crb->getApiVersion());
$this->assertEquals('user-binding', $crb->getName());
$this->assertEquals(['tier' => 'backend'], $crb->getLabels());
$this->assertEquals([$subject], $crb->getSubjects());
$this->assertEquals(['apiGroup' => 'rbac.authorization.k8s.io', 'kind' => 'ClusterRole', 'name' => 'admin-cr'], $crb->getRole());
}
Expand Down
7 changes: 7 additions & 0 deletions tests/ConfigMapTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ public function test_config_map_build()
{
$cm = $this->cluster->configmap()
->setName('settings')
->setLabels(['tier' => 'backend'])
->setData(['somekey' => 'somevalue'])
->addData('key2', 'val2')
->removeData('somekey');

$this->assertEquals('v1', $cm->getApiVersion());
$this->assertEquals('settings', $cm->getName());
$this->assertEquals(['tier' => 'backend'], $cm->getLabels());
$this->assertEquals(['key2' => 'val2'], $cm->getData());
}

Expand All @@ -27,6 +29,7 @@ public function test_config_map_from_yaml()

$this->assertEquals('v1', $cm->getApiVersion());
$this->assertEquals('settings', $cm->getName());
$this->assertEquals(['tier' => 'backend'], $cm->getLabels());
$this->assertEquals(['key2' => 'val2'], $cm->getData());
}

Expand All @@ -45,6 +48,7 @@ public function runCreationTests()
{
$cm = $this->cluster->configmap()
->setName('settings')
->setLabels(['tier' => 'backend'])
->setData(['somekey' => 'somevalue'])
->addData('key2', 'val2')
->removeData('somekey');
Expand All @@ -61,6 +65,7 @@ public function runCreationTests()

$this->assertEquals('v1', $cm->getApiVersion());
$this->assertEquals('settings', $cm->getName());
$this->assertEquals(['tier' => 'backend'], $cm->getLabels());
$this->assertEquals(['key2' => 'val2'], $cm->getData());
$this->assertEquals('val2', $cm->getData('key2'));
}
Expand Down Expand Up @@ -88,6 +93,7 @@ public function runGetTests()

$this->assertEquals('v1', $cm->getApiVersion());
$this->assertEquals('settings', $cm->getName());
$this->assertEquals(['tier' => 'backend'], $cm->getLabels());
$this->assertEquals(['key2' => 'val2'], $cm->getData());
$this->assertEquals('val2', $cm->getData('key2'));
}
Expand All @@ -107,6 +113,7 @@ public function runUpdateTests()

$this->assertEquals('v1', $cm->getApiVersion());
$this->assertEquals('settings', $cm->getName());
$this->assertEquals(['tier' => 'backend'], $cm->getLabels());
$this->assertEquals(['newkey' => 'newval'], $cm->getData());
$this->assertEquals('newval', $cm->getData('newkey'));
}
Expand Down
Loading