flyteorg / flyte

Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
https://flyte.org
Apache License 2.0
5.68k stars 639 forks source link

[BUG] Flytekit duplicates env vars when pod template is specified #5809

Open LucasZanellaMBTI opened 2 weeks ago

LucasZanellaMBTI commented 2 weeks ago

Describe the bug

Containers in pod spec contain duplicate env vars. We can see this problem occur as soon as we define a pod_template and pass it to task decorator.

Expected behavior

Env vars specified and passed via environment param are not being duplicated

Additional context to reproduce

@task(environment={"MY_ENV_VAR": "bug"}, pod_template=PodTemplate())
def hello_world(name: str) -> str:
  pass
pyflyte run --remote hello.py my_wf

Tested on flytekit v1.11.0 & v1.13.7

We spent some time debugging it and it seems problem is caused in func get_serializable_task of flytekit/tools/translator.py. There we see the method get_k8s_pod is called multiple times. Unfortunately, each call appends env vars to every container specified in pod_spec.

Screenshots

image

Lucas Zanella lucas.zanella@mercedes-benz.com, Mercedes-Benz Tech Innovation GmbH Provider Information

welcome[bot] commented 2 weeks ago

Thank you for opening your first issue here! 🛠

ChengyanOo commented 2 weeks ago

Hi @LucasZanellaMBTI, I'd love to work on this issue, could you assign this to me?

LucasZanellaMBTI commented 2 weeks ago

Hi @ChengyanOo , I'm glad to read that. Unfortunately I cannot assign this PR to anyone as I miss required permissions.

ChengyanOo commented 2 weeks ago

Hi @ChengyanOo , I'm glad to read that. Unfortunately I cannot assign this PR to anyone as I miss required permissions.

Thanks for your reply man, do you know who should I contact to figure that out?

LucasZanellaMBTI commented 2 weeks ago

We will try to reach out developers via their slack channel.

ChengyanOo commented 2 weeks ago

We will try to reach out developers via their slack channel.

Thanks!