Skip to main content

Code Organization

ACK is organized into multiple repositories under the aws-controllers-k8s GitHub organization.

Core Repositories

RepositoryPurpose
runtimeCore ACK runtime library, types, and reconciliation framework
code-generatorack-generate CLI tool, Go templates, and build scripts
test-infraacktest Python package, Prow CI config, and test scripts
communityIssue tracking and project management
docsDocumentation website (this site)

Service Controller Repositories

Each AWS service has its own controller repository following the naming pattern $SERVICE-controller:

Service Controller Directory Structure

$SERVICE-controller/
├── apis/v1alpha1/ # Generated API types, CRD structs, enums
│ ├── generator.yaml # Code generation configuration (edit this)
│ ├── types.go # Generated shared types
│ ├── $resource.go # Generated per-resource types
│ └── zz_generated.deepcopy.go
├── cmd/controller/ # Generated controller entrypoint
├── config/
│ ├── crd/bases/ # Generated CRD YAML manifests
│ └── rbac/ # Generated RBAC manifests
├── helm/ # Generated Helm chart
├── pkg/resource/
│ └── $resource/ # Generated resource manager
│ ├── sdk.go # AWS SDK integration
│ ├── delta.go # Field comparison logic
│ ├── hooks.go # Custom hook implementations (edit this)
│ └── ...
├── templates/hooks/ # Custom hook templates (edit this)
├── test/e2e/ # E2E tests (edit this)
│ ├── tests/
│ └── resources/
└── generator.yaml # Symlink to apis/v1alpha1/generator.yaml

Editable files: generator.yaml, templates/hooks/, test/e2e/, and pkg/resource/$resource/hooks.go

Everything else is generated by make build-controller and should not be manually edited.

Built with by AWS