Good morning, We have an infrastructure managed wi...
# general
b
Good morning, We have an infrastructure managed with pulumi, in typescript, is it possible to integrate pulumi in argocd or fluxcd to manage our infrastructure? Thanks
b
For ArgoCD: kinda complicated but doable, I built something similar (for cdk8s, not pulumi) 1. Pulumi Kubernetes provider can output yamls to a directory instead of applying them directly, using the opt
renderYamlToDirectory
2. You can write a sidecar based ArgoCD Config Management Plugin (CMP). Sidecar image contains pulumi binaries and a config spec file that defines stuff like pulumi stack name that you want to interact with 3. With the plugin spec defined, you can explicitly use a plugin in an ArgoCD Application manifest and pass on parameters defined in the spec. 4. Now, in the ArgoCD Application manifest, instead of setting the path to a kustomization dir or a helm chart, you set the path to the entire pulumi project, and under
plugin:
you specify a Stack + Env, custom values whatever you need, using the spec you defined.
Here is the ArgoCD doc for CMPs
Important: make sure you use ArgoCD version >= 2.6.0. You weren't able to explictly define a plugin to use in an application before that, and had to implement the
.spec.discover
field in the CMP spec, which was just unfeasible for a project like pulumi and cdk