Skip to main content

Contributing to ACK

Welcome to the contributor documentation for AWS Controllers for Kubernetes (ACK). Whether you're building a new service controller, adding resources to an existing one, or improving the core framework, this section will help you get started.

Project Tenets

We follow a set of tenets in building ACK:

  1. Collaborate in the Open — Our source code, development methodology, testing, release, and documentation processes are all open. We are a community-driven project.

  2. Generate Everything — We generate as much code as possible. Generated code is easier to maintain and encourages consistency. While some hand-written code is necessary for AWS API peculiarities, we look for patterns and enhance the code generator to handle them.

  3. Focus on Kubernetes — We seek ways to make the Kubernetes user experience as simple and consistent as possible for managing AWS resources. The code generator enables renaming fields, injecting custom code, and smoothing over inconsistencies between AWS service APIs.

  4. Run Anywhere — ACK service controllers can be installed on any Kubernetes cluster, regardless of whether you use Amazon EKS.

  5. Minimize Service Dependencies — ACK service controllers only depend on IAM/STS and the specific AWS service they integrate with. We do not take a dependency on any stateful resource-tracking service, such as CloudFormation, Cloud Control API, or Terraform.

Getting Started

GuideDescription
Development SetupFork repos, install prerequisites, build the code generator
Building a ControllerGenerate and compile a service controller
Code OrganizationRepository structure overview
Code Generation OverviewHow the code generator works
Configuration Referencegenerator.yaml fields and options
Hooks and Custom CodeInjecting custom logic into generated controllers
Field ConfigurationRenames, immutability, references, tags, wrappers
TestingE2E test patterns and running tests
ReleasingRelease process and versioning

AI-Assisted Development

The ack-dev-skills project provides an Agent Skill that gives AI coding agents contextual expertise for ACK development. It covers code generation, hooks, testing, PR workflows, and troubleshooting — distilled from years of team practices and code reviews.

If you use AI coding tools (Claude Code, Kiro, Cursor, etc.), installing this skill will significantly improve the quality of AI-assisted ACK development work. See the ack-dev-skills README for installation instructions.

Community

Built with by AWS