argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
18.05k stars 5.51k forks source link

Non K8s/Terraform strategy #3570

Closed AceHack closed 1 year ago

AceHack commented 4 years ago

Summary

Give ArgoCD the ability to create resources outside K8s.

Motivation

Since K8s is often combined with resources outside K8s it would be great to be able to manage everything in a GitOps fashion..

Proposal

Combine efforts/integrate with the Terraform K8s operator?

https://github.com/hashicorp/terraform-k8s

Related issue: https://github.com/argoproj/argo-cd/issues/1193

Fresa commented 4 years ago

What enhancements are needed here? This already works out of the box using the proposed Terraform K8s operator. Documentation maybe?

sidewinder12s commented 4 years ago

I had been wondering about if it'd make sense to have a argocd Terraform provider that could apply yamls to a ArgoCD server.

oboukili commented 4 years ago

@sidewinder12s I've been developing a terraform provider for ArgoCD and been using it at work for a couple months, might be of use to you and I'd be happy for some user feedback. https://github.com/oboukili/terraform-provider-argocd Not all resources are implemented at the moment (it's missing repo creds management, and cluster management), it is using ArgoCD APIs so some settings are still required to be set within the argocd-cm configMap (most notably RBAC), since ArgoCD does not expose at the moment any API to set those.

Cheers,

willemm commented 3 years ago

I don't see what ArgoCD has to do with this.

Our team has written multiple Kubernetes Operators to create resources outside of the cluster (database settings, kafka topics, etc etc) and the only time ArgoCD comes into it is when managing the operators, and managing the CustomResources that define the eternal resources.

All you need inside ArgoCD is a 'health.lua' type script for custom health monitoring, and even that is optional.

kostis-codefresh commented 2 years ago

@AceHack you can already do that with crossplane.io

More info here https://codefresh.io/blog/using-gitops-infrastructure-applications-crossplane-argo-cd/ or if you prefer video format https://www.youtube.com/watch?v=pdECNa80pfk

I agree that I don't see what implementation is needed on the ArgoCD side. It just works. Or maybe we can add some documentation about this? Would that be enough for you?

blakepettersson commented 1 year ago

Closing, see above