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:
-
Collaborate in the Open — Our source code, development methodology, testing, release, and documentation processes are all open. We are a community-driven project.
-
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.
-
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.
-
Run Anywhere — ACK service controllers can be installed on any Kubernetes cluster, regardless of whether you use Amazon EKS.
-
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
| Guide | Description |
|---|---|
| Development Setup | Fork repos, install prerequisites, build the code generator |
| Building a Controller | Generate and compile a service controller |
| Code Organization | Repository structure overview |
| Code Generation Overview | How the code generator works |
| Configuration Reference | generator.yaml fields and options |
| Hooks and Custom Code | Injecting custom logic into generated controllers |
| Field Configuration | Renames, immutability, references, tags, wrappers |
| Testing | E2E test patterns and running tests |
| Releasing | Release 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
- GitHub Issues — Bug reports and feature requests
- GitHub Discussions — Questions and conversations
- Slack Channel —
#aws-controllers-k8son Kubernetes Slack