is anyone here using pulumi in conjunction with spinnaker? Any thoughts on this combo?
11/25/2019, 6:54 PM
I’ve looked into a little bit, and the two tools are somewhat incongruent.
Spinnaker — to my understanding — is about deploying pre-built “artifacts”. And specifically controlling the rollout of VMs and other specific types of resources.
So it works well if your CI/CD pipeline is separated into “build/publish” and “deploy” steps.
Pulumi on the other hand provides much more flexibility in the publish step — offering the ability to manipulate not just a specific set of resources, but any type of cloud resource. But it doesn’t really come with the notion of a “publish” step.
e.g. you’d need to write your CI/CD scripts to upload Docker containers to a location, and then your Pulumi program to update any cloud task definitions with those new container images.
So depending on the specific pipeline setup you were after, it might be a little bit of work.
All of that to say, is on the surface the two tools do a similar thing, their approach is very different. Spinnaker seems to provide an opinionated path with a slick UI and guard rails. While Pulumi is much more flexible. (For example, rather than defining your deployment pipeline in a wizard, you could write the Pulumi program to deploy resources in steps/phases.)
Anyways, there are certainly several features and capabilities that you can do in Spinnaker that we want to make easier in Pulumi. For example, supporting rollback as a first-class thing. Or pre-canned rules for switching an autoscaling group from version X to version Y.