From 7c857bddad403dccfc79b053928216bb29788736 Mon Sep 17 00:00:00 2001 From: Pasechnik Bogdan Date: Tue, 13 Oct 2020 18:27:52 +0300 Subject: [PATCH] job maker --- src/Core/Job/AbstractJob.php | 5 +++++ src/Core/Job/JobInterface.php | 2 ++ src/ResourceMaker/JobMaker.php | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/Core/Job/AbstractJob.php b/src/Core/Job/AbstractJob.php index e300dc5..24e2204 100644 --- a/src/Core/Job/AbstractJob.php +++ b/src/Core/Job/AbstractJob.php @@ -5,6 +5,7 @@ use Dealroadshow\K8S\API\Batch\Job; use Dealroadshow\K8S\Data\Collection\StringMap; use Dealroadshow\K8S\Data\PodSpec; +use Dealroadshow\K8S\Framework\Core\LabelSelector\LabelSelectorConfigurator; use Dealroadshow\K8S\Framework\Core\MetadataConfigurator; use Dealroadshow\K8S\Framework\Core\Pod\Affinity\AffinityConfigurator; use Dealroadshow\K8S\Framework\Core\Pod\Containers\PodContainers; @@ -14,6 +15,10 @@ abstract class AbstractJob implements JobInterface { + public function labelSelector(LabelSelectorConfigurator $selector): void + { + } + public function backoffLimit(): ?int { return null; diff --git a/src/Core/Job/JobInterface.php b/src/Core/Job/JobInterface.php index daf60bb..1bb0267 100644 --- a/src/Core/Job/JobInterface.php +++ b/src/Core/Job/JobInterface.php @@ -3,11 +3,13 @@ namespace Dealroadshow\K8S\Framework\Core\Job; use Dealroadshow\K8S\API\Batch\Job; +use Dealroadshow\K8S\Framework\Core\LabelSelector\LabelSelectorConfigurator; use Dealroadshow\K8S\Framework\Core\ManifestInterface; use Dealroadshow\K8S\Framework\Core\Pod\PodTemplateSpecInterface; interface JobInterface extends PodTemplateSpecInterface, ManifestInterface { + public function labelSelector(LabelSelectorConfigurator $selector): void; public function backoffLimit(): ?int; public function activeDeadlineSeconds(): ?int; public function ttlSecondsAfterFinished(): ?int; diff --git a/src/ResourceMaker/JobMaker.php b/src/ResourceMaker/JobMaker.php index 98fbe7b..7221fde 100644 --- a/src/ResourceMaker/JobMaker.php +++ b/src/ResourceMaker/JobMaker.php @@ -5,6 +5,7 @@ use Dealroadshow\K8S\API\Batch\Job; use Dealroadshow\K8S\Framework\App\AppInterface; use Dealroadshow\K8S\Framework\Core\Job\JobInterface; +use Dealroadshow\K8S\Framework\Core\LabelSelector\LabelSelectorConfigurator; use Dealroadshow\K8S\Framework\Core\ManifestInterface; use Dealroadshow\K8S\Framework\Core\Pod\PodTemplateSpecProcessor; @@ -27,6 +28,9 @@ protected function makeResource(ManifestInterface $manifest, AppInterface $app): { $job = new Job(); + $labelSelector = new LabelSelectorConfigurator($job->spec()->selector()); + $manifest->labelSelector($labelSelector); + $app->metadataHelper()->configureMeta($manifest, $job); $this->specProcessor->process($manifest, $job->spec()->template(), $app);