I've been exploring similar challenges with Fleet and don't have all the answers yet, but I wanted to share my current thinking.
It seems quite difficult to fully implement a DRY approach with Fleet alone. In light of that, following the WET (Write Everything Twice) approach, as outlined in the Google Cloud documentation, might be worth considering.
By allowing some duplication, you gain clarity and explicit control, which can simplify managing configurations across multiple clusters or environments.
Additionally, have you thought about using kpt (
https://kpt.dev/) to handle rendering manifests before applying them in Fleet? kpt allows for more flexible handling of YAML templates and variables, making it easier to manage the final manifests and the overall process.
Here's the Google Cloud guide that introduces the WET repo approach:
https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/concepts/gitops-best-practices#create-wet-repo
Hope this helps!