From b643c9fa51afa252c15bb10c7bf41d002173f8a3 Mon Sep 17 00:00:00 2001 From: Matteo Saloni Date: Thu, 6 Jun 2024 14:20:46 +0200 Subject: [PATCH] feat: add k8s runtime/priority classes --- .../factories/specs/SpecRegistryImpl.java | 25 +++++++++++++++++++ .../commons/services/SpecRegistry.java | 2 ++ modules/framework-k8s/pom.xml | 5 ++++ .../framework/k8s/base/K8sTaskBaseSpec.java | 6 +++++ .../framework/k8s/base/K8sTaskSpec.java | 1 - .../k8s/K8sCronJobFramework.java | 2 ++ .../k8s/K8sDeploymentFramework.java | 2 ++ .../infrastructure/k8s/K8sJobFramework.java | 2 ++ .../infrastructure/k8s/K8sServeFramework.java | 2 ++ .../framework/k8s/runnables/K8sRunnable.java | 4 +++ .../runners/ContainerBuildRunner.java | 3 ++- .../runners/ContainerDeployRunner.java | 2 ++ .../container/runners/ContainerJobRunner.java | 4 +++ .../runners/ContainerServeRunner.java | 2 ++ .../dbt/specs/task/TaskTransformSpec.java | 4 --- .../mlrun/runners/MlrunBuildRunner.java | 2 -- .../runtime/mlrun/runners/MlrunJobRunner.java | 2 -- .../mlrun/specs/task/TaskMlrunBuildSpec.java | 8 +++--- .../mlrun/specs/task/TaskMlrunJobSpec.java | 3 --- .../nefertem/runners/NefertemInferRunner.java | 2 -- .../runners/NefertemMetricRunner.java | 2 -- .../runners/NefertemProfileRunner.java | 2 -- .../runners/NefertemValidateRunner.java | 2 -- .../specs/task/TaskNefertemBaseSpec.java | 4 --- .../python/runners/PythonJobRunner.java | 2 ++ .../python/runners/PythonServeRunner.java | 3 ++- 26 files changed, 67 insertions(+), 31 deletions(-) diff --git a/application/src/main/java/it/smartcommunitylabdhub/core/components/infrastructure/factories/specs/SpecRegistryImpl.java b/application/src/main/java/it/smartcommunitylabdhub/core/components/infrastructure/factories/specs/SpecRegistryImpl.java index 9d3e991c..4cd2c895 100644 --- a/application/src/main/java/it/smartcommunitylabdhub/core/components/infrastructure/factories/specs/SpecRegistryImpl.java +++ b/application/src/main/java/it/smartcommunitylabdhub/core/components/infrastructure/factories/specs/SpecRegistryImpl.java @@ -176,4 +176,29 @@ public void validateSpec(Spec spec) throws MethodArgumentNotValidException, Ille } } } + + public void refresh() { + //refresh schemas for collected specs + specs + .entrySet() + .forEach(e -> { + String kind = e.getKey(); + Class spec = e.getValue(); + SpecType type = specTypes.get(kind); + if (type != null) { + EntityName entity = type.entity(); + log.debug("generate schema for spec {}:{} ", entity, kind); + SchemaImplBuilder builder = SchemaImpl + .builder() + .entity(entity) + .kind(kind) + .schema(SchemaUtils.schema(spec)); + if (StringUtils.hasText(type.runtime())) { + builder.runtime(type.runtime()); + } + SchemaImpl schema = builder.build(); + schemas.put(kind, schema); + } + }); + } } diff --git a/modules/commons/src/main/java/it/smartcommunitylabdhub/commons/services/SpecRegistry.java b/modules/commons/src/main/java/it/smartcommunitylabdhub/commons/services/SpecRegistry.java index 9d819ee2..f999e9c9 100644 --- a/modules/commons/src/main/java/it/smartcommunitylabdhub/commons/services/SpecRegistry.java +++ b/modules/commons/src/main/java/it/smartcommunitylabdhub/commons/services/SpecRegistry.java @@ -27,4 +27,6 @@ public interface SpecRegistry { Schema getSchema(@NotNull String kind); Collection getSchemas(@NotNull EntityName name, @NotNull String runtime); Collection listSchemas(@NotNull EntityName name); + + public void refresh(); } diff --git a/modules/framework-k8s/pom.xml b/modules/framework-k8s/pom.xml index 410dc1ba..6b4f9fce 100644 --- a/modules/framework-k8s/pom.xml +++ b/modules/framework-k8s/pom.xml @@ -100,6 +100,11 @@ log4j-over-slf4j ${slf4j.version} + + net.bytebuddy + byte-buddy + 1.14.17 + diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskBaseSpec.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskBaseSpec.java index 9bad2dd9..16ba3ba2 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskBaseSpec.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskBaseSpec.java @@ -34,6 +34,10 @@ public class K8sTaskBaseSpec extends TaskBaseSpec { private List tolerations; + private String runtimeClass; + + private String priorityClass; + @Override public void configure(Map data) { super.configure(data); @@ -47,5 +51,7 @@ public void configure(Map data) { this.secrets = spec.getSecrets(); this.affinity = spec.getAffinity(); this.tolerations = spec.getTolerations(); + this.runtimeClass = spec.getRuntimeClass(); + this.priorityClass = spec.getPriorityClass(); } } diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskSpec.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskSpec.java index f17856c0..d85ec620 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskSpec.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/base/K8sTaskSpec.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import it.smartcommunitylabdhub.framework.k8s.objects.CoreAffinity; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; -import it.smartcommunitylabdhub.framework.k8s.objects.CoreLabel; import it.smartcommunitylabdhub.framework.k8s.objects.CoreNodeSelector; import it.smartcommunitylabdhub.framework.k8s.objects.CoreResource; import it.smartcommunitylabdhub.framework.k8s.objects.CoreToleration; diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sCronJobFramework.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sCronJobFramework.java index 1452dbf2..85b06a73 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sCronJobFramework.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sCronJobFramework.java @@ -169,6 +169,8 @@ public V1CronJob build(K8sCronJobRunnable runnable) throws K8sFrameworkException .secrets(runnable.getSecrets()) .task(runnable.getTask()) .tolerations(runnable.getTolerations()) + .runtimeClass(runnable.getRuntimeClass()) + .priorityClass(runnable.getPriorityClass()) .volumes(runnable.getVolumes()) .state(State.READY.name()) .build(); diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sDeploymentFramework.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sDeploymentFramework.java index e19f3ffe..77e924db 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sDeploymentFramework.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sDeploymentFramework.java @@ -324,6 +324,8 @@ public V1Deployment build(K8sDeploymentRunnable runnable) throws K8sFrameworkExc .nodeSelector(buildNodeSelector(runnable)) .affinity(runnable.getAffinity()) .tolerations(buildTolerations(runnable)) + .runtimeClassName(runnable.getRuntimeClass()) + .priorityClassName(runnable.getPriorityClass()) .volumes(volumes) .restartPolicy("Always") .imagePullSecrets(buildImagePullSecrets(runnable)); diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sJobFramework.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sJobFramework.java index 5c2db20b..a125035c 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sJobFramework.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sJobFramework.java @@ -331,6 +331,8 @@ public V1Job build(K8sJobRunnable runnable) throws K8sFrameworkException { .nodeSelector(buildNodeSelector(runnable)) .affinity(runnable.getAffinity()) .tolerations(buildTolerations(runnable)) + .runtimeClassName(runnable.getRuntimeClass()) + .priorityClassName(runnable.getPriorityClass()) .volumes(volumes) .restartPolicy("Never") .imagePullSecrets(buildImagePullSecrets(runnable)); diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sServeFramework.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sServeFramework.java index b79583f5..e8a5393b 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sServeFramework.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/infrastructure/k8s/K8sServeFramework.java @@ -429,6 +429,8 @@ private K8sDeploymentRunnable getDeployment(K8sServeRunnable runnable) { .task(runnable.getTask()) .state(runnable.getState()) .tolerations(runnable.getTolerations()) + .runtimeClass(runnable.getRuntimeClass()) + .priorityClass(runnable.getPriorityClass()) .volumes(runnable.getVolumes()) .contextRefs(runnable.getContextRefs()) .contextSources(runnable.getContextSources()) diff --git a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/runnables/K8sRunnable.java b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/runnables/K8sRunnable.java index 523f0089..17a274ef 100644 --- a/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/runnables/K8sRunnable.java +++ b/modules/framework-k8s/src/main/java/it/smartcommunitylabdhub/framework/k8s/runnables/K8sRunnable.java @@ -62,6 +62,10 @@ public class K8sRunnable implements RunRunnable, SecuredRunnable, CredentialsCon private List tolerations; + private String runtimeClass; + + private String priorityClass; + private List labels; private String state; diff --git a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerBuildRunner.java b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerBuildRunner.java index 85db7364..56e078cd 100644 --- a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerBuildRunner.java +++ b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerBuildRunner.java @@ -105,8 +105,9 @@ public K8sKanikoRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) // Task specific - .dockerFile(dockerfile) // specific .backoffLimit(1) diff --git a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerDeployRunner.java b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerDeployRunner.java index 476d148e..14314bc2 100644 --- a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerDeployRunner.java +++ b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerDeployRunner.java @@ -64,6 +64,8 @@ public K8sDeploymentRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .replicas(taskSpec.getReplicas()) .build(); diff --git a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerJobRunner.java b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerJobRunner.java index 956897b2..47018d49 100644 --- a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerJobRunner.java +++ b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerJobRunner.java @@ -67,6 +67,8 @@ public K8sRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .backoffLimit(taskSpec.getBackoffLimit()) .build(); @@ -90,6 +92,8 @@ public K8sRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .backoffLimit(taskSpec.getBackoffLimit()) .schedule(taskSpec.getSchedule()) diff --git a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerServeRunner.java b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerServeRunner.java index 6e3c04f2..cb63cd53 100644 --- a/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerServeRunner.java +++ b/modules/runtime-container/src/main/java/it/smartcommunitylabdhub/runtime/container/runners/ContainerServeRunner.java @@ -64,6 +64,8 @@ public K8sServeRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .servicePorts(taskSpec.getServicePorts()) .serviceType(taskSpec.getServiceType()) diff --git a/modules/runtime-dbt/src/main/java/it/smartcommunitylabdhub/runtime/dbt/specs/task/TaskTransformSpec.java b/modules/runtime-dbt/src/main/java/it/smartcommunitylabdhub/runtime/dbt/specs/task/TaskTransformSpec.java index e217ab5a..f07364f0 100644 --- a/modules/runtime-dbt/src/main/java/it/smartcommunitylabdhub/runtime/dbt/specs/task/TaskTransformSpec.java +++ b/modules/runtime-dbt/src/main/java/it/smartcommunitylabdhub/runtime/dbt/specs/task/TaskTransformSpec.java @@ -1,15 +1,11 @@ package it.smartcommunitylabdhub.runtime.dbt.specs.task; import it.smartcommunitylabdhub.commons.annotations.common.SpecType; -import it.smartcommunitylabdhub.commons.models.entities.task.TaskBaseSpec; import it.smartcommunitylabdhub.commons.models.enums.EntityName; import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskBaseSpec; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.runtime.dbt.DbtRuntime; - import java.io.Serializable; import java.util.Map; - import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunBuildRunner.java b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunBuildRunner.java index 948dac01..aaa19d4e 100644 --- a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunBuildRunner.java +++ b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunBuildRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.mlrun.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.mlrun.MlrunRuntime; diff --git a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunJobRunner.java b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunJobRunner.java index 3d4b5592..4614d15e 100644 --- a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunJobRunner.java +++ b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/runners/MlrunJobRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.mlrun.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.mlrun.MlrunRuntime; diff --git a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunBuildSpec.java b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunBuildSpec.java index 29b8a4e4..62536750 100644 --- a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunBuildSpec.java +++ b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunBuildSpec.java @@ -1,17 +1,13 @@ package it.smartcommunitylabdhub.runtime.mlrun.specs.task; +import com.fasterxml.jackson.annotation.JsonProperty; import it.smartcommunitylabdhub.commons.annotations.common.SpecType; -import it.smartcommunitylabdhub.commons.models.entities.task.TaskBaseSpec; import it.smartcommunitylabdhub.commons.models.enums.EntityName; import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskBaseSpec; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.runtime.mlrun.MlrunRuntime; import java.io.Serializable; import java.util.List; import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonProperty; - import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -25,8 +21,10 @@ public class TaskMlrunBuildSpec extends K8sTaskBaseSpec { public static final String KIND = "mlrun+build"; private List commands; + @JsonProperty("force_build") private Boolean forceBuild; + @JsonProperty("target_image") private String targetImage; diff --git a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunJobSpec.java b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunJobSpec.java index 86df3f79..fb96f310 100644 --- a/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunJobSpec.java +++ b/modules/runtime-mlrun/src/main/java/it/smartcommunitylabdhub/runtime/mlrun/specs/task/TaskMlrunJobSpec.java @@ -1,10 +1,8 @@ package it.smartcommunitylabdhub.runtime.mlrun.specs.task; import it.smartcommunitylabdhub.commons.annotations.common.SpecType; -import it.smartcommunitylabdhub.commons.models.entities.task.TaskBaseSpec; import it.smartcommunitylabdhub.commons.models.enums.EntityName; import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskBaseSpec; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.runtime.mlrun.MlrunRuntime; import java.io.Serializable; import java.util.Map; @@ -20,7 +18,6 @@ public class TaskMlrunJobSpec extends K8sTaskBaseSpec { public static final String KIND = "mlrun+job"; - public TaskMlrunJobSpec(Map data) { configure(data); } diff --git a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemInferRunner.java b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemInferRunner.java index a8f0c8b0..b808a08c 100644 --- a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemInferRunner.java +++ b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemInferRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.nefertem.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.nefertem.NefertemRuntime; diff --git a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemMetricRunner.java b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemMetricRunner.java index be890ec2..6cffe00c 100644 --- a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemMetricRunner.java +++ b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemMetricRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.nefertem.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.nefertem.NefertemRuntime; diff --git a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemProfileRunner.java b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemProfileRunner.java index 702d5ac0..27bc38f8 100644 --- a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemProfileRunner.java +++ b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemProfileRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.nefertem.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.nefertem.NefertemRuntime; diff --git a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemValidateRunner.java b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemValidateRunner.java index a6214cf1..b34ff4c9 100644 --- a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemValidateRunner.java +++ b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/runners/NefertemValidateRunner.java @@ -1,11 +1,9 @@ package it.smartcommunitylabdhub.runtime.nefertem.runners; -import it.smartcommunitylabdhub.commons.accessors.fields.StatusFieldAccessor; import it.smartcommunitylabdhub.commons.exceptions.CoreRuntimeException; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.models.entities.run.Run; import it.smartcommunitylabdhub.commons.models.enums.State; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import it.smartcommunitylabdhub.framework.k8s.objects.CoreEnv; import it.smartcommunitylabdhub.framework.k8s.runnables.K8sJobRunnable; import it.smartcommunitylabdhub.runtime.nefertem.NefertemRuntime; diff --git a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/specs/task/TaskNefertemBaseSpec.java b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/specs/task/TaskNefertemBaseSpec.java index f2c4b702..83751cbc 100644 --- a/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/specs/task/TaskNefertemBaseSpec.java +++ b/modules/runtime-nefertem/src/main/java/it/smartcommunitylabdhub/runtime/nefertem/specs/task/TaskNefertemBaseSpec.java @@ -1,9 +1,7 @@ package it.smartcommunitylabdhub.runtime.nefertem.specs.task; import com.fasterxml.jackson.annotation.JsonProperty; -import it.smartcommunitylabdhub.commons.models.entities.task.TaskBaseSpec; import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskBaseSpec; -import it.smartcommunitylabdhub.framework.k8s.base.K8sTaskSpec; import java.io.Serializable; import java.util.Map; import lombok.Getter; @@ -25,7 +23,6 @@ public class TaskNefertemBaseSpec extends K8sTaskBaseSpec { @JsonProperty("num_worker") protected Integer numWorker; - public TaskNefertemBaseSpec(Map data) { configure(data); } @@ -40,6 +37,5 @@ public void configure(Map data) { this.execArgs = spec.getExecArgs(); this.parallel = spec.getParallel(); this.numWorker = spec.getNumWorker(); - } } diff --git a/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonJobRunner.java b/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonJobRunner.java index 5094cc5d..5cc5f65c 100644 --- a/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonJobRunner.java +++ b/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonJobRunner.java @@ -147,6 +147,8 @@ public K8sRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .backoffLimit(0) .build(); diff --git a/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonServeRunner.java b/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonServeRunner.java index 878a3ce0..43f7d1d9 100644 --- a/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonServeRunner.java +++ b/modules/runtime-python/src/main/java/it/smartcommunitylabdhub/runtime/python/runners/PythonServeRunner.java @@ -1,6 +1,5 @@ package it.smartcommunitylabdhub.runtime.python.runners; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import it.smartcommunitylabdhub.commons.infrastructure.Runner; import it.smartcommunitylabdhub.commons.jackson.JacksonMapper; @@ -158,6 +157,8 @@ public K8sRunnable produce(Run run) { .nodeSelector(taskSpec.getNodeSelector()) .affinity(taskSpec.getAffinity()) .tolerations(taskSpec.getTolerations()) + .runtimeClass(taskSpec.getRuntimeClass()) + .priorityClass(taskSpec.getPriorityClass()) //specific .replicas(taskSpec.getReplicas()) .servicePorts(List.of(servicePort))