# Pulumi LBr Labs EKS
This repo provides a [multi-language](https://www.pulumi.com/blog/pulumiup-pulumi-packages-multi-language-components/) component that creates a "batteries included" cluster ready for you to attach your EKS nodes to.
It creates:
- an EKS cluster with [CloudTrail logging enabled](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.htmleks), and [secret encryption enabled](https://docs.aws.amazon.com/eks/latest/userguide/enable-kms.html)
- Installs an [operator](https://github.com/rustrial/aws-eks-iam-auth-controller) that eases the process of adding Role Mappings to the [aws-auth](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html)
- A node group designed to run "system" workloads with a taint
- The [AWS EBS CSI Addon](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) with an [IAM role using IAM Roles for Service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)
- The [AWS VPC CBI Addon](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) with an [IAM role using IAM Roles for Service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)
- The CoreDNS Addon
- An internal and external [NGINX ingress controller](https://github.com/kubernetes/ingress-nginx) with relevant ingress classes
- [External DNS](https://github.com/kubernetes-sigs/external-dns), with an IAM role that can modify Route53 domains using IAM Roles for service accounts
- [Cert Manager](https://cert-manager.io/), 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](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) with your cluster's OIDC provider.
## Examples
Examples for all languages are in the [examples](examples/) directory.
Note, you need to create a VPC, and also add your worker nodes.
## FAQs
### Can you add support for X
Add an issue, but this is mainly designed to be useful for workloads I run, so I reserve the right to refuse.
### Can you make X optional?
I have no plans to make any of the batteries included optional at this time
## Installing
This package is available in many languages in the standard packaging formats.
### Node.js (Java/TypeScript)
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
```
### Python
To use from Python, install using `pip`:
```
$ pip install lbrlabs_pulumi_eks
```
### Go
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/...
```
### .NET
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
```
## Reference
See the Pulumi registry for API docs:
https://www.pulumi.com/registry/packages/lbrlabs-eks/api-docs/
Raw data
{
"_id": null,
"home_page": null,
"name": "lbrlabs-pulumi-eks",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "eks kubernetes aws lbrlabs kind/component category/cloud",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9f/8b/0c04082b36b9eb11e7a3d2127b495c7606266fed10e6a00de4301e6b73a3/lbrlabs_pulumi_eks-0.23.0.tar.gz",
"platform": null,
"description": "# Pulumi LBr Labs EKS \n\nThis repo provides a [multi-language](https://www.pulumi.com/blog/pulumiup-pulumi-packages-multi-language-components/) component that creates a \"batteries included\" cluster ready for you to attach your EKS nodes to.\n\nIt creates:\n\n- an EKS cluster with [CloudTrail logging enabled](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.htmleks), and [secret encryption enabled](https://docs.aws.amazon.com/eks/latest/userguide/enable-kms.html)\n- Installs an [operator](https://github.com/rustrial/aws-eks-iam-auth-controller) that eases the process of adding Role Mappings to the [aws-auth](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html)\n- A node group designed to run \"system\" workloads with a taint\n- The [AWS EBS CSI Addon](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) with an [IAM role using IAM Roles for Service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)\n- The [AWS VPC CBI Addon](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html) with an [IAM role using IAM Roles for Service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)\n- The CoreDNS Addon\n- An internal and external [NGINX ingress controller](https://github.com/kubernetes/ingress-nginx) with relevant ingress classes\n- [External DNS](https://github.com/kubernetes-sigs/external-dns), with an IAM role that can modify Route53 domains using IAM Roles for service accounts\n- [Cert Manager](https://cert-manager.io/), with an IAM role that can modify Route53 domains using IAM Roles for service accounts\n\nIt 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.\n\nIt also provides a mechanism to quickly attached a workload node to your newly created cluster, and create an [IAM role for Service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) with your cluster's OIDC provider.\n\n## Examples\n\nExamples for all languages are in the [examples](examples/) directory. \n\nNote, you need to create a VPC, and also add your worker nodes. \n\n## FAQs\n\n### Can you add support for X\n\nAdd an issue, but this is mainly designed to be useful for workloads I run, so I reserve the right to refuse.\n\n### Can you make X optional?\n\nI have no plans to make any of the batteries included optional at this time\n\n## Installing\n\nThis package is available in many languages in the standard packaging formats.\n\n### Node.js (Java/TypeScript)\n\nTo use from JavaScript or TypeScript in Node.js, install using either `npm`:\n\n```\n$ npm install @lbrlabs/pulumi-eks\n```\n\nor `yarn`:\n\n```\n$ yarn add @lbrlabs/pulumi-eks\n```\n\n### Python\n\nTo use from Python, install using `pip`:\n\n```\n$ pip install lbrlabs_pulumi_eks\n```\n\n### Go\n\nTo use from Go, use `go get` to grab the latest version of the library\n\n```\n$ go get github.com/lbrlabs/pulumi-lbrlabs-eks/sdk/go/...\n```\n\n### .NET\n\nTo use from Dotnet, use `dotnet add package` to install into your project. You must specify the version if it is a pre-release version.\n\n\n```\n$ dotnet add package Lbrlabs.PulumiPackage.Eks\n```\n\n## Reference\n\nSee the Pulumi registry for API docs:\n\nhttps://www.pulumi.com/registry/packages/lbrlabs-eks/api-docs/",
"bugtrack_url": null,
"license": null,
"summary": "A batteries included EKS cluster following best practices.",
"version": "0.23.0",
"project_urls": {
"Repository": "https://github.com/lbrlabs/pulumi-lbrlabs-eks"
},
"split_keywords": [
"eks",
"kubernetes",
"aws",
"lbrlabs",
"kind/component",
"category/cloud"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9f8b0c04082b36b9eb11e7a3d2127b495c7606266fed10e6a00de4301e6b73a3",
"md5": "0645eea26d75f6cbc4ff0ba87dfb61c8",
"sha256": "63bdadd0feb0f7ee343ef28d73f0a818917e1caa256ab03496f07eae309ad208"
},
"downloads": -1,
"filename": "lbrlabs_pulumi_eks-0.23.0.tar.gz",
"has_sig": false,
"md5_digest": "0645eea26d75f6cbc4ff0ba87dfb61c8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 19009,
"upload_time": "2024-11-16T23:26:16",
"upload_time_iso_8601": "2024-11-16T23:26:16.069300Z",
"url": "https://files.pythonhosted.org/packages/9f/8b/0c04082b36b9eb11e7a3d2127b495c7606266fed10e6a00de4301e6b73a3/lbrlabs_pulumi_eks-0.23.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-16 23:26:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lbrlabs",
"github_project": "pulumi-lbrlabs-eks",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "lbrlabs-pulumi-eks"
}