timoni icon indicating copy to clipboard operation
timoni copied to clipboard

ArgoCD Integration

Open brizzbuzz opened this issue 1 year ago • 9 comments

Hey, this project looks very promising! Seems like it's still early days, so this is just a feature request for getting this to work with ArgoCD (see you already have Flux support).

I will try to find some time to tinker around with it 🤞 but wanted to get this feature request down for tracking purposes.

Cheers, rooting for the day I don't have to look at helm templates anymore :)

brizzbuzz avatar Aug 12 '23 20:08 brizzbuzz

ArgoCD has the concept of plugins so I guess you could integrate Timoni this way. Another option would be for the Argo team to implement Timoni the same way they did with Helm, by running timoni template.

stefanprodan avatar Aug 28 '23 14:08 stefanprodan

Is it possible to write a custom plugin for ArgoCD and run:

timoni build api . --output yaml

Would that suffice do we think?

benbooth493 avatar Nov 16 '23 14:11 benbooth493

Would that suffice do we think?

I think the issue is this removes the multi-step apply ability baked into the timoni.cue file. Also, I'm not sure how the instance name would get filled in by the Argo.

jmgilman avatar Nov 23 '23 03:11 jmgilman

I've started a Custom Management Plugin here: https://github.com/jmgilman/argo-cmp-timoni. You can configure an application to point to a directory that has a bundle.cue file in it and it will call timoni bundle build -f ./bundle.cue to generate the YAML for Argo CD to consume.

The only issue you'll face right now is if any of the OCI images are behind a private registry. We use AWS ECR, so I've provided a method using IRSA to enable pulling down private ECR images (see instructions in the README).

jmgilman avatar Dec 15 '23 01:12 jmgilman

but when we do this, we will ignore all the benefits of timoni right? argo-cd only template it and do the rest.

tuananh avatar Dec 15 '23 08:12 tuananh

but when we do this, we will ignore all the benefits of timoni right? argo-cd only template it and do the rest.

Can you explain what you are expecting to see? Argo doesn't support another configuration tool handling deployments. With Helm, it just uses helm template to generate the resource manifests and then it (Argo) manages the lifecycle of them from that point forward.

If you're wanting something different, I don't think Argo CD is a good choice :)

jmgilman avatar Dec 15 '23 14:12 jmgilman

ArgoCD can be told how to check any CRD for status, so surely when the Timoni Controller is actually GA i.e. read the note here https://timoni.sh/gitops-flux/ We can configure ArgoCD to play nice with the Timoni CRDs & Controllers ?

mickdelaney avatar Jan 11 '24 09:01 mickdelaney

ArgoCD can be told how to check any CRD for status, so surely when the Timoni Controller is actually GA i.e. read the note here https://timoni.sh/gitops-flux/ We can configure ArgoCD to play nice with the Timoni CRDs & Controllers ?

Not sure that I am following about the health checks. AFAIK those are just to set the UI status? Or are you talking about something different?

One thing that doesn't make sense for that note is why the runtime wouldn't work when templating. Doesn't it need to perform all of the runtime logic before it generates the manifests? I haven't tried it myself yet, but it seems like an odd limitation.

jmgilman avatar Jan 13 '24 05:01 jmgilman

Hi. Has there been any progress in this area with regards to integrating with ArgoCD? Thanks

joaocc avatar Sep 25 '24 17:09 joaocc