akuity / kargo

Application lifecycle orchestration
https://kargo.akuity.io/
Apache License 2.0
1.75k stars 145 forks source link

Possibility to propagate ArgoCD cluster metadata as inputs for manifests rendering #2931

Open Brightside56 opened 6 days ago

Brightside56 commented 6 days ago

Checklist

Proposed Feature

Promotion steps/options which provide a possibility to use ArgoCD clusters metadata and propagate it as inputs (helm values in my case, but can also be a kustomization or something else) for rendering.

Motivation

I have infrastructure or environment specific variables (such as AWS account id or other ids) as ArgoCD cluster labels/annotations what provides me a possibility to propagate those labels/annotations as helm-values using ArgoCD applicationset and not hardcode those ids in manifests per environment/stage. I would like to manage those applications using Kargo with same degree of non-determinism

Suggested Implementation

  1. Promotion step which provides a possibility to get ArgoCD clusters metadata to Kargo temporary workspace (which is used by Kargo for promotion). Probably it could be a generic (not Kargo specific) promotion step which could provide a possibility to get inputs from Kuberentes CRs from cluster managed by shard controller (or to get inputs from API)
  2. Another promotion step which provides a possibility to render .yaml (in my case it could be values-something.yaml) file using inputs from Kargo workspace