API Gateway
Contract driven configuration which is generated automatically.
Overview
The API Gateway configuration is dynamically generated based on the configuration of services deployed to a specific environment. This approach ensures consistency and automation in managing API gateways across environments.
Key aspects of the process include:
- The environment folder from the
deployment-config
repository serves as the input, containing both service contracts and configurations. - Configuration is generated for all defined services and gateways within the environment.
- The resulting gateway configuration is stored in the
deployment-config
repository, following a GitOps approach to maintain version control and automation.
Gateway Configuration Providers
The platform supports multiple providers to generate the desired API gateway configuration. Currently, the following provider is supported:
- Istio and Kubernetes Gateway API: Scripts are available to generate the required manifests.
Additional providers can be introduced based on project requirements and priorities, such as:
- KrakenD
- Tyk
- NGINX Ingress
Implementation Details
The gateway configuration generation is handled by dedicated scripts, ensuring automated and consistent deployment.
Key resources:
- Gateway Configuration Scripts:
Scripts responsible for generating gateway configurations can be found here:
deployment-template - gw provider scripts - Gateway Configuration (Security & Parameters):
Security and other configuration parameters are defined in the following configuration file:
deployment-template gateways part - Example Gateway Configuration (Development Environment):
Sample configurations for the development environment are available at:
development-config infra part
Automation and Pipelines
The entire process of generating and deploying gateway configurations is automated through CI/CD pipelines. The pipeline definitions can be reviewed here:
Azure Pipelines Configuration
This automation ensures consistency, reduces manual effort, and aligns with the GitOps strategy for infrastructure management.