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