curved-whale-1505
05/21/2025, 4:21 PMnodeSelector
in flyte?average-finland-92144
05/21/2025, 6:34 PMfrom flytekit import task, workflow, PodTemplate
from kubernetes.client import V1PodSpec, V1Container, V1ResourceRequirements, V1Toleration, V1Affinity, V1NodeAffinity, V1NodeSelector, V1NodeSelectorTerm, V1NodeSelectorRequirement
pod_template = PodTemplate(
primary_container_name="my-primary",
labels={"environment": "development"},
annotations = {"managed-by" : "teamA"},
pod_spec=V1PodSpec(
containers=[],
affinity=V1Affinity(
node_affinity=V1NodeAffinity(
required_during_scheduling_ignored_during_execution=V1NodeSelector(
node_selector_terms=[
V1NodeSelectorTerm(
match_expressions=[
V1NodeSelectorRequirement(
key="eks.amazonaws.com/nodegroup",
operator="In",
values=["memory-optimized"]
)
]
)
]
)
)
),
)
)
@task(pod_template=pod_template)
def my_flyte_task(input_str: str) -> str:
print(f"Running task with input: {input_str}")
return f"Processed {input_str}"
@workflow
def my_workflow(input_str: str) -> str:
return my_flyte_task(input_str=input_str)
The rendered spec includes:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/nodegroup
operator: In
values:
- memory-optimized
average-finland-92144
05/21/2025, 6:35 PM