Skip to content

Kubernetes Fury Distribution AWS Add-on Module: additional components for EKS-based clusters on AWS

License

Notifications You must be signed in to change notification settings

sighupio/fury-kubernetes-aws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes Fury AWS

Release License Slack

Kubernetes Fury AWS provides support AWS packages for Kubernetes Fury Distribution (KFD).

If you are new to KFD please refer to the official documentation on how to get started with KFD.

Overview

Kubernetes Fury AWS uses a collection of open source tools to make an EKS cluster on AWS production grade.

Packages

The following packages are included in Kubernetes Fury AWS:

Package Version Description
cluster-autoscaler v1.28.2,v1.29.0,v1.30.2,v1.31.0 A component that automatically adjusts the size of a Kubernetes Cluster
IAM role for cluster-autoscaler - Terraform module to manage IAM role used by cluster-autoscaler
aws-node-termination-handler v1.22.1 Automatically manage graceful termination of pods in the event that one node is retired by AWS
aws-load-balancer-controller v2.10.0 AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster
IAM role for aws-load-balancer-controller - Terraform module to manage IAM role used by aws-load-balancer-controller
snapshot-controller v8.1.0 Snapshot controller to enable snapshotting of the Amazon EBS driver.
IAM role for aws-ebs-csi-driver - Terraform module to manage IAM role used by EBS CSI driver

Click on each package to see its full documentation.

Compatibility

Kubernetes Version Compatibility Notes
1.28.x No known issues
1.29.x No known issues
1.30.x No known issues
1.31.x No known issues

Check the compatibility matrix for additional informations about previous releases of the modules.

Usage

Prerequisites

Tool Version Description
furyctl >=0.25.0 The recommended tool to download and manage KFD modules and their packages. To learn more about furyctl read the official documentation.
kustomize >=3.5.3 Packages are customized using kustomize. To learn how to create your customization layer with kustomize, please refer to the repository.
terraform >=1.3.0 Terraform is used to provision packages using modules. To learn how to use terraform, please refer to the repository.

Deployment

  1. List the packages you want to deploy and their version in a Furyfile.yml
bases:
  - name: aws/cluster-autoscaler
    version: "v4.3.0"
  - name: aws/node-termination-handler
    version: "v4.3.0"
  - name: aws/load-balancer-controller
    version: "v4.3.0"
  - name: aws/snapshot-controller
    version: "v4.3.0" 

See furyctl documentation for additional details about Furyfile.yml format.

  1. Execute furyctl legacy vendor -H to download the packages

  2. Inspect the download packages under ./vendor/katalog/aws.

  3. Define a kustomization.yaml that includes the ./vendor/katalog/aws directory as resource.

resources:
- ./vendor/katalog/aws/cluster-autoscaler/{v1.28.x,v1.29.x,v1.30.x,v1.31.x}
- ./vendor/katalog/aws/node-termination-handler
- ./vendor/katalog/aws/load-balancer-controller
- ./vendor/katalog/aws/snapshot-controller

NB: some packages needs additional configurations (IAM roles), they will not work out of the box. Refer to each package documentation for more details.

  1. To deploy the packages to your cluster, execute:
kustomize build . | kubectl apply -f -

Contributing

Before contributing, please read first the Contributing Guidelines.

Reporting Issues

In case you experience any problem with the module, please open a new issue.

License

This module is open-source and it's released under the following LICENSE