Releases: doitintl/easyeks
Releases · doitintl/easyeks
v0.5.0-pre-alpha
Currently Available in Pre-Alpha:
Useful elements of Helm's design pattern are used:
- A nice feature of Helm over say Kustomize, Terraform, or common CDK/Pulumi design patterns, is
that it's intuitively clear what parts of the IaC are fine to change vs shouldn't be changed. - Configuration input parameters have sensible defaults, but can be overridden.
- Some IaC complexity can be hidden, which allows users to focus on well organized config, which
in turn significantly lowers cognitive overhead and improves ease of mangement and accessibility. - Supports the deployment of Multiple Instances: It's very easy to have multiple clusters per
environment (dev1-eks, dev2-eks, etc.) - Helm popularized a convention of mixing config values with
heavy commentary
which improves accessibility and general user experience, by explaining what a config flag will
do and documenting commented out examples of alternative possible values with correct syntax.
- A nice feature of Helm over say Kustomize, Terraform, or common CDK/Pulumi design patterns, is
Useful elements of Kustomize's design pattern are used:
- Kustomize popularized the config overlay design pattern,
which offers multiple advantages:- It allows config shared between multiple environments, to be deduplicated which makes it much
easier to avoid unwanted config drift between environments, which improves maintainability. - It keeps the config well organized, which makes it easier to quickly navigate.
- It allows config shared between multiple environments, to be deduplicated which makes it much
- Kustomize popularized the config overlay design pattern,
Two well configured AWS VPCs
- The VPCs are dualstack(IPv4/v6), and EKS cluster's use IPv6 mode to eliminate problem of running
out of IPs. - fck-nat: The (f)easible (c)ost (k)onfigurable NAT, is an alternative to AWS's Managed NAT GW,
that's an order of magnitude cheaper. - lower-envs-vpc defaults to 1 fck-NAT instance
- higher-envs-vpc defaults to 2 fck-NAT instances, and can optionally be set to 3 AWS Managed NAT
GWs. - node-local-dns-cache and S3 Gateway endpoints are also enabled by default.
- The VPCs are dualstack(IPv4/v6), and EKS cluster's use IPv6 mode to eliminate problem of running
Heavily cost optimized:
- Easy EKS gives the benefits of EKS's Auto Mode (and more), without Auto Mode's additional costs.
- The baseline costs of a dev cluster is under $100/month.
- EKS control plane cost is $73/month.
- lower-env-vpc's fck-NAT defaults to $3.06/month, and is meant to be shared by multiple clusters.
- 2x t4g.small spot baseline nodes are $10.22/month
- karpenter's lower-envs default config is weighted to prefer spot based ARM bottlerocket nodes.
UX optimizations:
- EKS clusters have useful tags.
- Name tags of EC2 instances are nicely organized.
- IAM admins are given EKS viewer access by default for both the EKS web console and kubectl.
- kubectl onboarding is streamlined.
Production Readiness optimizations:
- kubernetes secrets stored in etcd get KMS encrypted by default.
- EKS Addons are all installed by default.
- CoreDNS's config is optimized by default in terms of node affinity and autoscaling.
- AWS Load Balancer Controller is installed by default and configured using eks-pod-identity-agent,
which means it doubles as a great IaC reference for pod level IAM rights. - Karpenter is installed by default and preconfigured to provision spot, on-demand, AMD, or ARM
bottlerocket based worker nodes.
What's Changed
- Initial Release (pre-alpha quality)
- Finished QA after renaming "eks-cdk-quickstart" to "easyeks" by @neoakris in #7
New Contributors
Full Changelog: https://github.com/doitintl/easyeks/commits/v0.5.0-pre-alpha