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).