Building a controller factory with code generation tools and automation to keep controllers up to date with evolving API schemas
- Developers still have a lot of logic to write and implement despite having great tooling
- Building a controller factory with code generation tools and automation was necessary to avoid manually maintaining and developing artifacts for 200+ AWS services
- APIs evolve over time and integrating changes to upstream service APIs in a smooth and consistent fashion was a challenge
- The controller factory takes AWS API models and a generator.yaml configuration file as inputs to generate a full controller implementation
- Centralizing code through co-generation from a model definition removes a whole classification of common failures and bugs
The AWS Controllers for Kubernetes project had to create a Kubernetes custom controller for each of the AWS services, which would have been a daunting task to manually maintain and develop artifacts for 200+ services. The team built a controller factory with code generation tools and automation to generate a full controller implementation from AWS API models and a generator.yaml configuration file. However, APIs evolve over time, and integrating changes to upstream service APIs in a smooth and consistent fashion was a challenge. The team had to build automation and code generation tools to continually keep the controllers up to date with evolving API schemas.