does anyone have a simple example of how to target...
# flyte-support
c
does anyone have a simple example of how to target a specific instance type using a
nodeSelector
in flyte?
a
@curved-whale-1505 you can use PodTemplate for this. A compile-time example Pod template for it would look something like this:
Copy code
from 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:
Copy code
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/nodegroup
            operator: In
            values:
            - memory-optimized
In light of this previous idea, how often you see your users needing this level of scheduling granularity instead of generic resources?