Skip to content
Nicholas Thomson edited this page Jul 7, 2022 · 2 revisions

AWS Controllers for Kubernetes (ACK) 2022 Vision

Description

The ACK vision is a longer term (12-18 month) plan that outlines our directional thinking for the project. The topics explored in the plan are derived from the previous years' plan, adding items that come from community requests on GitHub, #provider-aws Slack channel and face-to-face discussions.

This vision is not designed to be static, or to directly set the priorities for the ACK core maintainers. We plan on adding, removing and/or updating items throughout the year to better reflect our image of the project. Every plan on the document is meant to serve as inspiration for an exploration, which may mean that we decide not to continue with the implementation.

We actively encourage discussion and contributions from the open-source community! Please reach out if you would like to help.

Vision Plan

Plan Status Legend

Status Description
⚪ Not Started No work has begun planning or implementing the plan
🟠 In Planning Planning has started, but not yet been finalised
🟡 Planned A plan for the work has been produced, but no implementation has begun
🟢 In Progress Implementation on the plan has started
🔵 To be Released Implementation on the plan has been completed but has not been released
🟣 Finished Implementation on the plan has completed and has been released
🔴 Cancelled Planning has been indefinitely paused or will not be started

New ACK Service Controllers

Status: 🟢 In Progress

ACK plans to continue to create new service controllers based on the demand we see from our users. As part of this plan, we will continue to expand the features of the common code-generator and runtime packages to abstract away common AWS API patterns, decreasing the amount of manual code that needs to be written by maintainers. +1'ing controller issues in the community project is a helpful signal for controller prioritization.

Service Controllers to GA

Status: 🟢 In Progress

ACK plans to graduate all started service controllers through to the General Availability (GA) maintenance phase. The ACK core maintainers will work with the maintainers of every service controller repository to ensure they're in a production-ready state and have been tested up to the standard required for GA.

Generic ACK Modularisation

Status: ⚪ Not Started

The ACK code-generator system helps decouple the complexity of the AWS APIs from the higher level abstractions of an "AWS resource" - splitting it into a declarative model with the appropriate CRUD operations. We plan to refactor ACK, to remove the hard dependency on our K8s CRDs, making our generated code agnostic to the underlying system. This would allow other declarative systems to use the ACK resources by importing our common runtime and generating their own clients.

Lifecycle Management with EKS APIs

Status: 🟠 In Planning

ACK plans to integrate more closely with the EKS service to provide lifecycle management through directly EKS APIs. This management system will make it easier for EKS customers to install and manage the ACK controllers in their clusters without needing to manage the Helm charts directly.

Backstage Integration

Status: ⚪ Not Started

Backstage offers a centralized software catalog for microservice teams to manage their infrastructure as code manifests. ACK plans to contribute by submitting either a Backstage plugin or by adding manifests to the community catalog.

GitOps Advocacy

Status: 🟢 In Progress

The emergence of GitOps as a standard within K8s for deploying infrastructure as code. The ACK maintainer team plan to advocate for the adoption and growth of GitOps.

Integration Testing Redesign

Status: 🟢 In Progress

The ACK integration testing framework was designed at a time where there were significantly fewer controllers, and those that did exist were far simpler. As the logic in our controllers has grown, the testing framework has not adapted to support this complexity, hindering our coverage of new features. ACK plans to update the testing framework to support the new common features, such as references field exports and adoption.

Enhanced Install and Upgrade Story

Status: ⚪ Not Started

ACK plans to support a stronger story for controller lifecycle management in any supported environment. We plan on testing against a larger range of inputs - such as architecture, cluster provider and cluster version. We also plan on implementing the changes necessary for multi-version support and documenting the upgrade plan for cluster operators.