Skip to content

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.

Add EKS Charts Repository

  • Optionally, you can validate the correct configuration of the repository by clicking on the validate option.

Validate EKS Charts Repository


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
  • In the Pod Security Policy section, enter "rafay-privileged-psp"
  • 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.

Create Addon


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.

New Addon Version

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.

New Blueprint Version


Next Steps

You are now ready to move on to the second part of the recipe.