mysterious-dinner-77632
09/04/2025, 12:59 PMancient-wolf-19325
09/04/2025, 12:59 PMancient-wolf-19325
09/04/2025, 1:00 PMmysterious-dinner-77632
09/04/2025, 1:04 PMancient-wolf-19325
09/04/2025, 1:04 PMancient-wolf-19325
09/04/2025, 1:05 PMmysterious-dinner-77632
09/04/2025, 1:10 PMmysterious-dinner-77632
09/04/2025, 1:10 PMancient-wolf-19325
09/04/2025, 1:10 PMancient-wolf-19325
09/04/2025, 1:11 PMrawoutput-prefix
in the Propeller configuration to point to the desired bucket (e.g., rawoutput-prefix: s3://<data-plane-bucket>/
). This can be done in the Helm chart or ConfigMap for Propeller. However, even with this configuration, Propeller still needs access to the control plane's S3 bucket because workflow metadata, code, and some input references are stored there by FlyteAdmin. Propeller must read these to execute workflows and tasks, as confirmed in this issue.
So yes, you must grant Propeller access to both its own S3 bucket (for outputs) and the control plane's S3 bucket (for metadata and workflow artifacts). There is no supported way to fully isolate S3 access per cluster without breaking Flyte's data flow and UI features.
Sources:
- FlyteAdmin Continues Reading from Old S3 Bucket After Migration, Causing 500 Errors in UI
- Flyte Helm chart values: rawoutput-prefix š 0 button š 0 button š” Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/04/2025, 1:14 PMancient-wolf-19325
09/04/2025, 1:14 PMstorage.bucketName
affects the rawoutput-prefix
and whether it controls where user data is stored by default.
⢠Searching over 10 data sources from the following: File, Github File, Github Issue, Web
⢠Found 51 documents that could be relevant from the following data sources: Github File, Github Issue, Github Pull Request.
⢠Filtered down to the top 30 most relevant documents.
āļø Generated answer: I have clear information from the documentation that setting storage.bucketName
in your Helm values will configure Propeller to use that S3 bucket for user data by default.ancient-wolf-19325
09/04/2025, 1:15 PMrawoutput-prefix
defaults to s3://{{ .Values.storage.bucketName }}/
, so if you set storage.bucketName
, both metadata and user data (raw outputs) will be stored in that bucket by default unless you override rawoutput-prefix
separately. This means Propeller will use the bucket defined in storage.bucketName
for user data storage unless explicitly configured otherwise. See flyte-core values.yaml and PR #6433.
Would you like more detail on customizing these settings?
Sources:
- flyte-core values.yaml
- flyte-core: Default propeller `rawoutput-prefix` to use `storage.bucketName` š 0 button š 0 button š” Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/04/2025, 2:59 PMancient-wolf-19325
09/04/2025, 2:59 PMancient-wolf-19325
09/04/2025, 3:00 PMdefaultIamRole
annotation from the data plane's namespace/service account configuration. The control plane's IAM role is not used for pod execution.
This is confirmed by the Flyte deployment and configuration logic, which applies the IAM role annotation to the service account in the data plane where the pod actually runs (source).
Would you like more detail on how IAM roles are mapped to service accounts in Flyte?
Sources:
- Flyte on EKS: IAM Roles for Service Accounts š 0 button š 0 button š” Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/04/2025, 3:15 PMdefaultIamRole
from control plane? Because what I am seeing is clearly the worker pod uses identity defined in control plane, not the one defined in data planeancient-wolf-19325
09/04/2025, 3:16 PMdefaultIamRole
) defined in the control plane, which matches what you're observing. I'm ready to provide a complete answer.ancient-wolf-19325
09/04/2025, 3:17 PMdefaultIamRole
and other resource templates are typically managed and distributed from the control plane (Admin) to the data plane (Propeller) clusters. The control plane's configuration (including templated values like defaultIamRole
) is used to create or update the Kubernetes resources (such as service accounts with IAM role annotations) in the data plane via the cluster resource sync mechanism. As a result, the worker pod in the data plane may end up using the IAM role defined in the control plane's configuration, not a value set independently in the data plane.
This behavior is by design: the control plane's cluster_resources.yaml
(or equivalent Helm values) is the source of truth for project/domain resource quotas and IAM roles, and these are propagated to all data planes. If you want different IAM roles per data plane, you must customize the control plane's configuration to specify different roles for each cluster, which is not supported out-of-the-box and would require manual intervention or custom automation (source).
Would you like more detail on how to customize IAM roles per data plane or how the cluster resource sync works?
Sources:
- flyte-core values-eks.yaml: cluster_resources and defaultIamRole š 0 button š 0 button š” Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/05/2025, 10:20 AMancient-wolf-19325
09/05/2025, 10:20 AMancient-wolf-19325
09/05/2025, 10:21 AM