Skip to content

Install the AWS Controllers for Kubernetes (ACK)

AWS Controllers for Kubernetes (ACK) lets you define and use AWS service resources directly from Kubernetes, by mapping AWS services to Kubernetes CRDs.

There's a number of different controllers to manage different AWS services, with different levels of maturity, listed in the documentation. The following example shows how to install the Elasticache controller, but the same concept applies to all of them.

Install ElastiCache Controller

SERVICE="elasticache"
RELEASE_VERSION=`curl -sL https://api.github.com/repos/aws-controllers-k8s/$SERVICE-controller/releases/latest | grep '"tag_name":' | cut -d'"' -f4`
ACK_SYSTEM_NAMESPACE="ack-system"
AWS_REGION="eu-central-1"

aws ecr-public get-login-password --region us-east-1 | \
  helm registry login --username AWS --password-stdin public.ecr.aws

helm install \
  ack-$SERVICE-controller \
  oci://public.ecr.aws/aws-controllers-k8s/$SERVICE-chart \
  --create-namespace \
  --namespace $ACK_SYSTEM_NAMESPACE \
  --version=$RELEASE_VERSION \
  --set=aws.region=$AWS_REGION

Warning

The --region flag in the aws ecr-public get-login-password command must be set either to us-east-1 or us-west-2, as described in ECR public AWS documentation.

Set the AWS_REGION variable according to your needs and configure the IAM role for ACK's service account.

If you followed the guide for creating the EKS cluster v1.23+ you should have already configured the OIDC provider for authentication, therefore you can skip to configuring the IAM role and policy for the service account.


Last update: 2022-11-05 01:08:19