This repo provides a multi-language component that creates a "batteries included" cluster ready for you to attach your EKS nodes to.
⚠️ This is a work in progress
It creates:
- an EKS cluster with CloudTrail logging enabled, and secret encryption enabled
- Installs an operator that eases the process of adding Role Mappings to the aws-auth
- A node group designed to run "system" workloads with a taint
- The AWS EBS CSI Addon with an IAM role using IAM Roles for Service accounts
- The AWS VPC CBI Addon with an IAM role using IAM Roles for Service accounts
- The CoreDNS Addon
- An internal and external NGINX ingress controller with relevant ingress classes
- External DNS, with an IAM role that can modify Route53 domains using IAM Roles for service accounts
- Cert Manager, with an IAM role that can modify Route53 domains using IAM Roles for service accounts
It is designed to be an opinionated implementation of EKS, without the overhead of having to install all of the things required for your cluster to be functional.
It also provides a mechanism to quickly attached a workload node to your newly created cluster, and create an IAM role for Service accounts with your cluster's OIDC provider.
Examples for all languages are in the examples directory.
Note, you need to create a VPC, and also add your worker nodes.
Add an issue, but this is mainly designed to be useful for workloads I run, so I reserve the right to refuse.
I have no plans to make any of the batteries included optional at this time
This package is available in many languages in the standard packaging formats.
To use from JavaScript or TypeScript in Node.js, install using either npm
:
$ npm install @lbrlabs/pulumi-eks
or yarn
:
$ yarn add @lbrlabs/pulumi-eks
To use from Python, install using pip
:
$ pip install lbrlabs_pulumi_eks
To use from Go, use go get
to grab the latest version of the library
$ go get github.com/lbrlabs/pulumi-lbrlabs-eks/sdk/go/...
To use from Dotnet, use dotnet add package
to install into your project. You must specify the version if it is a pre-release version.
$ dotnet add package Lbrlabs.PulumiPackage.Eks
See the Pulumi registry for API docs:
https://www.pulumi.com/registry/packages/lbrlabs-eks/api-docs/