Code Organization
ACK is a collection of source repositories containing a common runtime and type system, a code generator and individual service controllers that manage resources in a specific AWS API.
github.com/aws-controllers-k8s/community: docs, issues and project management (this repo)github.com/aws-controllers-k8s/runtime: common ACK runtime and typesgithub.com/aws-controllers-k8s/code-generator: the code generator and templatesgithub.com/aws-controllers-k8s/test-infra: common test code and infrastructuregithub.com/aws-controllers-k8s/$SERVICE-controller: individual ACK controllers for AWS services.
github.com/aws-controllers-k8s/community (this repo)
The github.com/aws-controllers-k8s/community source code repository (this repo) contains the documentation that gets published to https://aws-controllers-k8s.github.io/community/.
github.com/aws-controllers-k8s/runtime
The github.com/aws-controllers-k8s/runtime source code repository contains the common ACK controller runtime (/pkg/runtime, /pkg/types) and core public Kubernetes API types (/apis/core).
github.com/aws-controllers-k8s/code-generator
The github.com/aws-controllers-k8s/code-generator source code repository contains the ack-generate CLI tool (/cmd/ack-generate), the Go packages that are used in API inference and code generation (/pkg/generate, /pkg/model) and Bash scripts to build an ACK service controller (/scripts/build-controller.sh).
github.com/aws-controllers-k8s/test-infra
The github.com/aws-controllers-k8s/test-infra source code repository contains the acktest Python package for common ACK e2e test code, the CDK to deploy our Prow CI/CD system and the scripts for running tests locally.
github.com/aws-controllers-k8s/$SERVICE-controller
Each AWS API that has had a Kubernetes controller built to manage resources in that API has its own source code repository in the github.com/aws-controllers-k8s Github Organization. The source repos will be called $SERVICE-controller, for example the ACK service controller for S3 is located at github.com/aws-controllers-k8s/s3-controller.
These service controller repositories contain Go code for the main controller binary (/cmd/controller/), the public API types for the controllers (/apis), the Go code for the resource managers used by the controller (/pkg/resource/*/), static configuration manifests (/config), Helm charts for the controller installation (/helm) along with a set of end-to-end tests for the resources exposed by that controller (/test/e2e).