Create
In this part, you will:
- Create and configure a a repository to dynamically pull the desired version of the AWS Load Balancer Controller Helm chart.
- Create an AWS Load Balancer Controller addon.
- Create a custom cluster blueprint with the AWS Load Balancer Controller addon.
Add EKS Charts Repo¶
Configure the repo endpoint so that the controller can automatically retrieve the required Helm chart directly from the Internet facing repository.
- Click on Integrations -> Repository.
- Create New Repository -> Provide a name such as "eks-charts" and Select "Helm" for Type.
- Enter "https://aws.github.io/eks-charts" for Endpoint and Select "Internet Facing" for Reachability.
- Optionally, you can validate the correct configuration of the repository by clicking on the validate option.
Create Namespace¶
We will deploy the ALB Load Balancer controller to the kube-system namespace. We will create this in our project and take over management of the kube-system namespace on the EKS cluster.
- Click on Infrastructure -> Namespaces
- Click New Namespace
- Enter "kube-system" in the "Name" section
- For "Type" Select "Wizard" from the dropdown
- Click "SAVE"
- Click "SAVE & GO TO PLACEMENT"
- Select the specific cluster
- Click "SAVE & GO TO PUBLISH"
- Select "PUBLISH"
- Select "EXIT" once namespace has published
Create Addon¶
- Click on Infrastructure -> Addons.
- Click on Create New Addon with the name "aws-load-balancer-controller".
- Select "Helm3" for addon type.
- Select "Pull files from repository" for Artifact Sync.
- Select repository type as "helm".
- Select the "kube-system" namespace from the dropdown.
Custom Values¶
The AWS Load Balancer Controller supports many functions that can be enabled in a custom values file. For this recipe we will use a scaled down version of the default values file. If you need additional functionality you can pull the helm chart and create your own custom values file. Save the following overrides in a "aws-load-balancer-controller-values.yaml" file.
Important
-
You can instruct the helm chart to pull the container image from your local region by setting the appropriate registry under the image section of the values file. Amazon container image registries can be found here.
-
The helm chart requires that the "cluster name" be set in the values file. To do this a special notation is used that will pull the cluster name from the cluster label "clusterName". This will inject the value of the cluster label into the values file at time of deployment.
Option 1
If using the node instance role to grant AWS permissions then under the serviceAccount set create to "true".
Option 2
If using IRSA set create under serviceAccount to "false" as we have created the service account in the previous part.
image:
repository: 602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller
tag: v2.3.1
pullPolicy: IfNotPresent
clusterName: {{{ .global.Rafay.ClusterName }}}
serviceAccount:
# Specifies whether a service account should be created
create: false
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: demo-aws-lb-controller-sa
# Automount API credentials for a Service Account.
automountServiceAccountToken: true
New Addon Version¶
- Click on "New Version" to create a new version of the secrets store csi driver addon.
- Provide a version (e.g. v1.0).
- Select the "eks-charts" repository.
- Enter "aws-load-balancer-controller" for the Chart Name.
- Enter "1.3.3" for the version number.
- Select "Upload Files" and select the file created above if the plan is to sync secrets pulled from AWS Secrets Manager to Kubernetes Secrets or enabling support for additional functionality.
Important
At this time 1.3.3 is the latest version of the helm chart.
NAME | CHART VERSION | APP VERSION | DESCRIPTION |
---|---|---|---|
eks/aws-load-balancer-controller | 1.3.3 | v2.3.1 | AWS Load Balancer Controller Helm charts |
New Blueprint¶
- Select blueprints and create a new blueprint (e.g. aws-load-balancer-controller).
- Click on "New version" (e.g. v1.0).
- Select the "aws-load-balancer-controller" addon and "version" from the list of custom addons.
- Deselect Ingress Controller under Managed System Add-Ons.
- Save blueprint.
Next Steps¶
You are now ready to move on to the second part of the recipe.