hundreds-iron-56210
10/02/2025, 7:05 PMpyflyte run the execution fails with this error:
flytekit.exceptions.system.FlyteDownloadDataException: SYSTEM:DownloadDataError: error=Failed to get data from s3://<the bucket>/flytesnacks/development/K3QHP5EWEVPQRJJUI4CPMYMZQU======/fast5078eeda28546327dc735d6cad471fa3.tar.gz to ./ (recursive=False).
Original exception: Unable to locate credentials
My understanding is that the task pod does not have the credentials to access the metadata bucket. How is it supposed to get them in the first place? Since they are supplied via the Helm chart, I figured they would be automatically provisioned in the namespace where the task is running (flytesnacks-development in that case).
Note that I had a similar issue with container images as I'm using a private registry. I was able to fix it by installing the credentials in a secret in the execution namespace and editing the serviceaccount the task pod is run under to such that it can make use of these credentials. In that case though, the format for the credentials and the way they are consumed is standard Docker access in K8s; however in the bucket case I have no idea how to supply the credentials to the execution pod - for example, in which format does it expect them?
Thanks for your help!clean-glass-36808
10/02/2025, 7:47 PMclean-glass-36808
10/02/2025, 7:47 PMflyte-core you need to configure the credentials in a few places... I'm not sure about flyte-binary but I can lookclean-glass-36808
10/02/2025, 7:51 PMflyte-binary it looks like there is only one place to configure themclean-glass-36808
10/02/2025, 7:52 PMhundreds-iron-56210
10/02/2025, 9:00 PMflyte-copilot binary but `pyflyte-fast-execute`:
- args:
- pyflyte-fast-execute
- --additional-distribution
- s3://<the bucket>/flytesnacks/development/K3QHP5EWEVPQRJJUI4CPMYMZQU======/fast5078eeda28546327dc735d6cad471fa3.tar.gz
- --dest-dir
- .
- --
- pyflyte-execute
- --inputs
- s3://<the bucket>/metadata/propeller/flytesnacks-development-ahfjrff9f7dv8bqbvddc/n0/data/inputs.pb
- --output-prefix
- s3://<the bucket>/metadata/propeller/flytesnacks-development-ahfjrff9f7dv8bqbvddc/n0/data/0
- --raw-output-data-prefix
- s3://<the bucket>/data/kg/ahfjrff9f7dv8bqbvddc-n0-0
- --checkpoint-path
- s3://<the bucket>/data/kg/ahfjrff9f7dv8bqbvddc-n0-0/_flytecheckpoints
- --prev-checkpoint
- '""'
- --resolver
- flytekit.core.python_auto_container.default_task_resolver
- --
- task-module
- src.hello_world
- task-name
- say_hello
It also gets a few env variables starting with FLYTE_INTERNAL_ but none are about storage credentials.clean-glass-36808
10/02/2025, 9:06 PMclean-glass-36808
10/02/2025, 9:23 PMclean-glass-36808
10/02/2025, 9:24 PMclean-glass-36808
10/02/2025, 9:24 PMhundreds-iron-56210
10/02/2025, 9:29 PMclean-glass-36808
10/02/2025, 9:30 PMhundreds-iron-56210
10/02/2025, 9:33 PMhundreds-iron-56210
10/02/2025, 9:34 PMaverage-finland-92144
10/02/2025, 9:37 PMhundreds-iron-56210
10/02/2025, 9:48 PMFLYTE_INTERNAL_EXECUTION_WORKFLOW
FLYTE_INTERNAL_EXECUTION_ID
FLYTE_INTERNAL_EXECUTION_PROJECT
FLYTE_INTERNAL_EXECUTION_DOMAIN
FLYTE_ATTEMPT_NUMBER
FLYTE_INTERNAL_TASK_PROJECT
FLYTE_INTERNAL_TASK_DOMAIN
FLYTE_INTERNAL_TASK_NAME
FLYTE_INTERNAL_TASK_VERSION
FLYTE_INTERNAL_PROJECT
FLYTE_INTERNAL_DOMAIN
FLYTE_INTERNAL_NAME
FLYTE_INTERNAL_VERSIONclean-glass-36808
10/02/2025, 9:54 PMhundreds-iron-56210
10/03/2025, 4:05 PMclean-glass-36808
10/03/2025, 4:21 PMhundreds-iron-56210
10/03/2025, 5:09 PMclean-glass-36808
10/03/2025, 5:18 PMhundreds-iron-56210
10/06/2025, 4:49 PMhundreds-iron-56210
10/06/2025, 4:49 PMclean-glass-36808
10/06/2025, 4:49 PMcool-waitress-85601
11/18/2025, 7:40 PMhundreds-iron-56210
11/18/2025, 9:26 PM