mysterious-dinner-77632
09/12/2025, 11:08 AMancient-wolf-19325
09/12/2025, 11:09 AMmysterious-dinner-77632
09/12/2025, 11:13 AMancient-wolf-19325
09/12/2025, 11:13 AMclusters.clusterConfigs (which define the remote clusters and their auth details). The sharding configuration is separate and should be set in the FlytePropeller Manager's config, mapping each project to a specific FlytePropeller instance, which in turn targets a specific cluster as defined in your clusters.clusterConfigs. The labelClusterMap in your clusters config is used for mapping project/domain/label to a cluster, while the sharding config in the manager determines which FlytePropeller instance processes which projects. See the example in flytepropeller/manager/doc.go.
Would you like a step-by-step example of how to combine these configurations in your Helm chart?
Sources:
- flytepropeller/manager/doc.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:14 AMancient-wolf-19325
09/12/2025, 11:14 AMclusters.yaml configmap (as you already have), specifying clusterConfigs for clusters A and B, including their auth and k8s endpoints.
2. Map projects to clusters using labelClusterMap in the same configmap, e.g., assign project1 to cluster A and project2 to cluster B.
3. Configure FlytePropeller Manager with the "project" shard strategy, assigning each project to a shard (i.e., a FlytePropeller instance). For example:
manager:
pod-application: "flytepropeller"
pod-template-name: "flytepropeller-template"
pod-template-namespace: "flyte"
scan-interval: 10s
shard:
type: Project
per-shard-mapping:
- ids:
- project1 # This shard (FlytePropeller instance) handles project1
- ids:
- project2 # This shard (FlytePropeller instance) handles project2
4. Deploy FlytePropeller Manager with this configuration. Each FlytePropeller instance will process only the workflows for its assigned project(s), and the labelClusterMap will ensure those workflows are executed on the correct cluster.
This setup ensures project-based sharding and cluster assignment are both respected. For more details, see the configuration examples in flytepropeller/manager/doc.go.
Sources:
- flytepropeller/manager/doc.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:16 AMancient-wolf-19325
09/12/2025, 11:16 AMlabelClusterMap in your clusters config. You assign a label to each project, and then map that label to a specific cluster (or set of clusters with weights). When a workflow is launched under a project, FlyteAdmin uses the label to route executions to the correct cluster as defined in labelClusterMap. This allows you to direct all executions for a project to a specific cluster. See the example in clusters_config2_default_label.yaml.
Would you like a concrete YAML example for this mapping?
Sources:
- clusters_config2_default_label.yaml π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:23 AMancient-wolf-19325
09/12/2025, 11:23 AMmysterious-dinner-77632
09/12/2025, 11:24 AMancient-wolf-19325
09/12/2025, 11:24 AMflytectl CLI. You can create or update labels either inline or via a YAML file. For example, to update a project's labels inline:
flytectl update project --id my-project-id --labels team=data,env=prod
To update using a YAML file, create `project.yaml`:
id: "my-project-id"
labels:
values:
team: data
env: prod
Then run:
flytectl update project --file project.yaml
To read (view) project labels, use:
flytectl get projects my-project-id -o yaml
This will display the current labels and other project metadata.
Sources:
- flytectl/cmd/update/project.go
- flytectl/proposal/README.md
- d400ebee
- 231f9454 π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:34 AMancient-wolf-19325
09/12/2025, 11:34 AMflytectl CLI or FlyteAdmin API after deployment. Helm charts are used for deploying and configuring infrastructure, but project metadata like labels is managed separately at the control plane level. This limitation is discussed in flyte/issues/2069 and flyte/issues/2070.
Would you like more detail on automating label management post-deployment?
Sources:
- flyte/issues/2069
- flyte/issues/2070 π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:41 AMflytectl update project --id flytesnacks --labels X=true
and the I have following labelClusterMap:
labelClusterMap:
X:
- id: X
weight: 1
Y:
- id: Y
weight: 1
I'd assume with that, every workflow submitted to flytesnacks goes to X, but from few submitted workflows one was routed to Y. Can you help me debug the problem?ancient-wolf-19325
09/12/2025, 11:41 AMflytectl get project flytesnacks -o yaml).
- That no workflow/domain-level execution cluster label overrides exist (flytectl get execution-cluster-label -p flytesnacks -d <domain>).
- That your config does not specify a defaultExecutionLabel or fallback behavior.
Would you like a step-by-step guide to check for overrides and config issues?
Sources:
- flyte/issues/2882 π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:44 AMancient-wolf-19325
09/12/2025, 11:44 AMflytectl delete execution-cluster-label command. For example, to remove the label for a project and domain:
flytectl delete execution-cluster-label -p <project> -d <domain>
To remove the label for a specific workflow:
flytectl delete execution-cluster-label -p <project> -d <domain> <workflow_name>
You can also use the --attrFile option with a YAML file specifying the project, domain, and (optionally) workflow. See usage details in matchable_execution_cluster_label.go.
Sources:
- matchable_execution_cluster_label.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 11:53 AMpyflyte run --remoteancient-wolf-19325
09/12/2025, 11:53 AMpyflyte run --remote, use the --labels option. For example:
pyflyte run --remote --labels key=value my_workflow.py my_workflow
This will apply the label to the workflow execution, and it will take precedence over project-level labels. For more details, see workflow_labels_and_annotations.md.
Sources:
- workflow_labels_and_annotations.md π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 12:39 PMlabelClusterMap:
ride:
- id: ride
weight: 1
solo:
- id: solo
weight: 1
and I launch workflows like that:
pyflyte run --remote --labels ride=true --project=flytesnacks sample_wf.py hello_world_wf - yet, the workflows end up in both clusters. Am I doing it right? If so where there might be a problem with cluster selectionancient-wolf-19325
09/12/2025, 12:39 PM--labels ride=true will be attached to the execution, but Flyte's cluster selection logic matches the label key (not the key-value pair) to the labelClusterMap. So, the key should match exactly: if your labelClusterMap has ride, then the execution must have a label with key ride (the value is ignored for cluster selection).
However, if you also have other labels (like solo), or if there are domain/project-level execution-cluster-label overrides, Flyte may route to other clusters. Additionally, if no matching label is found, Flyte may randomly select a cluster from the enabled set, as described in flyte/issues/2882.
To debug:
1. Ensure no execution-cluster-label overrides exist for the project/domain/workflow (flytectl get execution-cluster-label -p flytesnacks -d <domain>).
2. Confirm that the label key in your command matches the labelClusterMap key exactly (e.g., --labels ride=anything).
3. Check for a defaultExecutionLabel in your config, which could affect fallback behavior.
Would you like a step-by-step guide to verify your label and config setup?
Sources:
- flyte/issues/2882 π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 12:46 PMancient-wolf-19325
09/12/2025, 12:46 PMflytectl get execution to inspect the execution and confirm the labels present on the execution. This will show you exactly what labels FlyteAdmin received.
2. Review FlyteAdmin logs: Look for logs related to cluster selection and label matching. These logs may indicate why a particular cluster was chosen.
3. Check for label propagation issues: Ensure that the --labels flag is being parsed and sent correctly by pyflyte. Try running with a different label or with multiple labels to see if the behavior changes.
4. Validate cluster configs: Double-check that the cluster IDs in your labelClusterMap correspond to the actual cluster names in your clusterConfigs and that all clusters are enabled.
If executions still route incorrectly, capturing the exact execution metadata and relevant FlyteAdmin logs will help pinpoint where the selection logic may be failing.
Would you like more detail on how to inspect execution metadata or FlyteAdmin logs?
Sources:
- flyte/issues/2882 π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 1:21 PMancient-wolf-19325
09/12/2025, 1:21 PMflytectl update project command with an empty labels map. For example, using a YAML file:
id: "my-project-id"
labels:
values: {}
Then run:
flytectl update project --file project.yaml
This will clear out all existing labels for the project. There is no direct CLI flag to remove all labels inline; the YAML method is the recommended approach. See usage in flytectl/cmd/update/project.go.
Sources:
- flytectl/cmd/update/project.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 1:23 PMid: "flytesnacks"
labels:
values: {}
then did this flytectl update project --file x
and when I run
flytectl get projects flytesnacks -o yaml
I still see labels: values: thingsancient-wolf-19325
09/12/2025, 1:23 PMlabels: values: after updating with an empty map, this is expected: the labels field will remain in the project metadata, but the values map should be empty (i.e., labels: values: {}), indicating no labels are set. The field itself is not removed, only its contents are cleared. This is the intended behavior as shown in flytectl/cmd/update/project.go.
Would you like more detail on how Flyte represents empty labels in project metadata?
Sources:
- https://github.com/flyteorg/flyte/blob/master/flyteadmin/tests/project_test.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 1:25 PMancient-wolf-19325
09/12/2025, 1:25 PMflytectl update project --file x with an empty values: {} map, it is likely that the update did not overwrite the existing labels. This can happen if the update command or YAML file was not processed correctly, or if the CLI did not send an explicit empty map to FlyteAdmin. According to flyteadmin/tests/project_test.go, updating a project with an empty labels map should remove all labels, but if the map is omitted or not empty, old labels may persist.
To ensure all labels are removed, double-check that your YAML file is formatted as:
id: "flytesnacks"
labels:
values: {}
Then run:
flytectl update project --file x
If labels still persist, try explicitly setting the labels field to an empty map in the CLI or re-run the command, as sometimes the update may not propagate if the field is missing or not recognized as an overwrite.
Would you like troubleshooting steps to verify the update or check for errors in the FlyteAdmin logs?
Sources:
- flyteadmin/tests/project_test.go π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.mysterious-dinner-77632
09/12/2025, 1:29 PMancient-wolf-19325
09/12/2025, 1:29 PMlabelClusterMap. There is no explicit "enable" flag, but misconfiguration or version mismatch can cause label-based routing to be ignored. Review your FlyteAdmin and FlytePropeller versions and confirm your config matches the documented structure in clusters_config2_default_label.yaml.
For further help, check:
- FlyteAdmin logs for messages about "execution cluster label" or "labelClusterMap" during execution creation.
- That your FlytePropeller(s) are running and connected to the correct clusters.
- That your Flyte version is at least 1.13.0, which includes recent improvements to executionClusterLabel support (CHANGELOG-v1.13.0.md).
If the issue persists, consider opening a GitHub issue with your config and logs for community support.
Sources:
- clusters_config2_default_label.yaml
- CHANGELOG-v1.13.0.md π 0 button π 0 button π‘ Hint: Mention @runllm in the thread for followups.