Automation
Designing an open-source CI tool to simplify GitOps with Spinnaker
Who the client is
A company with DevOps teams interested in using original Spinnaker and automated CI/CD pipelines. The goal was an open-source tool for DevOps teams that implement a GitOps workflow with Spinnaker, saving time and minimizing effort while creating complex CI scenarios.
The challenge
Creating complex CI scenarios in Spinnaker took time and human effort. A GitOps workflow needed Spinnaker resources kept as code, with shared parts reusable across pipelines, changes reviewed and tested before they apply, a tracked history and an easy way to revert, across every Spinnaker version.
What was at risk:
- Slow pipeline creation and human effort spent on every complex CI scenario
What we did
- Provided expertise in DevOps, automation and deploying CI/CD pipelines.
- Created the core functionality of Floodgate.
- Created a rendering mechanism enabling the use of Jsonnet with external libraries.
- Applied the configuration-as-code approach, making Spinnaker-as-a-Code a reality.
- Open-sourced the code on GitHub (github.com/codilime/floodgate).
- Moderated the Floodgate code repository.
How it works
Floodgate keeps Spinnaker resources as Jsonnet code and applies them through a GitOps workflow, in three parts.
- Rendering A rendering mechanism enables the use of Jsonnet with external libraries, such as Sponnet.
- Resources in Jsonnet Shared parts of pipelines work as a reusable library, public pipeline libraries like Sponnet plug in, and a resource dependencies graph orders the resources.
- Configuration as code CI pipelines test changes in pipelines and templated pipelines, configuration changes are reviewed, history is tracked, and a revert is easy.
Outcomes
Business
Faster to real usage
Floodgate cut the time from pipeline creation to real usage in Spinnaker.
Technical
Configuration as code
Pipelines are tested in CI, changes reviewed, history tracked and reverts easy, reducing human effort for complex CI scenarios.
Made possible
All Spinnaker versions
The open-source tool works with every version of Spinnaker.
Tech & stack
Jsonnet
Spinnaker
- Sponnet
Anonymized example — fuller write-up available on request.
