My last post probably left you with a lot to be desired ... and likely going cross eyed with an ugly curl + tail + sed command to export from a Gateway. In this post I will introduce a new gradle plugin (currently in alpha) for making the export and VCS experience much better.
The Gateway Developer Plugin
The Gateway Developer Plugin is a Gradle plugin that enables you to work with a locally running Container Gateway in order to easily develop CA API Gateway policy and services. It is meant to provide all the tooling needed to allow the Gateway configuration to be committed into a version control system and fully support a CI/CD workflow for Gateway configuration. It is published to the official gradle plugin repository. You can also view the source code in GitHub.
The plugin performs two major tasks:
Export from a Gateway
This will export your solution from a gateway and save it locally (in src/main/gateway by default). It will be sanitized and in an easy to work with format that is ready to be committed into GIT (or another VCS). One major benefit over previous tools is that this locally saved can be edited and manipulated in expected ways (moving and renaming files, edities file contents) and still be built into bundles that reflect these edits.
Build a Bundle for the Container Gateway
This will build a bundle from the locally saved solution. The bundle will be ready to be mounted onto a Gateway Container.
The Gateway Developer Example Repository
See this in action by taking a look at the Gateway Developer Example repository. Read the readme in this repository to learn how to build, view and update the solution in a locally running Gateway.
Setting up a CI/CD workflow
One of the biggest benefits of the plugin is that it enables you to create a complete CI/CD workflow for Gateways. This is roughly how a CI/CD system could be setup.
Future posts will go into more details on how to deploy built bundle artifacts to different environments and how to apply environment properties.