Deploying Apigee Proxies and Configurations through VSTS
Apigee provides different ways to develop api proxies, offline development being one among them. It enables developers to develop proxies in their local environment and then push the changes to SCM (git, bit bucket, TFS). This plays a very important role since it is the place where we maintain all our source code and enable triggers to test and deploy the api proxy.
This article addresses a way to implement CI/CD for Microsoft shops by defining build definition that uses maven phases to deploy both api proxy and environment configurations to Apigee edge.
Process of Deploying proxies and environment configurations.
Apigee provides two plugins:
- apigee-maven-deploy-plugin to deploy the apiproxy, and
- apigee-maven-config-plugin to deploy the environment configurations.
Designing a parent pom using these plugins and installing it in local repository would provide a way to access them centrally.
The reference pom in apiproxy folder is used to point to the parent pom version deployed in your local repository. Provide the required profile and command arguments to execute the defined plugin and deploy the proxy and environment configurations to apigee edge.
Api Proxy Directory Structure
Api Proxy Environment Configurations
Configuring VSTS build definition to deploy the proxy and environment configuration
Build definitions in VSTS provides a flexible way to add phases, each phase in build definition corresponds to a specific step to be performed. VSTS provides multiple out of box phases that can be used to get required functionality.
We will be using maven phase to deploy the proxy and configurations:
Variables tab in build definition enables us to provide the details of organization, environment we are deploying to and credentials. In addition to setting these variables VSTS provides options to encrypt data and also allow you to provide details during build time. These variables are accessed in build definition as discussed above.
Once we set the required variables and add the phases save the configuration and queue the build.