Skip to main content

Deploying the EKS Platform

Quick Start

StepsExample
1. Vendor EKS componentsatmos workflow vendor -f eks
2. Connect to the VPN
3. Deploy roles for each EKS stackatmos workflow deploy/iam-service-linked-roles -f eks
4. Deploy cluster into each stackatmos workflow deploy/cluster -s plat-use1-dev -f eks
5. Deploy resources into each stackatmos workflow deploy/resources -s plat-use1-dev -f eks
NOTE:

Repeat steps 4 and 5 for each EKS stack, typically plat-dev, plat-staging, and plat-prod

Requirements

In order to deploy EKS, Networking must be fully deployed and functional. In particular, the user deploying the cluster must have a working VPN connection to the targeted account. See the network documentation for details.

All deployment steps below assume that the environment has been successfully set up with the following steps.

  1. Sign into AWS via Leapp
  2. Connect to the VPN
  3. Open Geodesic

Steps

2 Vendor Components

EKS adds many components required to set up a cluster. Generally, all these components are contained in the EKS components and catalog folders, under components/terraform/eks and catalog/stacks/eks respectively.

Vendor these components with the included Atmos Workflows.

These are the commands included in the vendor workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

3 Deploy EKS Cluster

EKS provisioning includes many components packaged together into a single import per stack. Leveraging Atmos inheritance, we have defined a baseline set of required components for all EKS deployments and a unique set of additional components for a particular stack's EKS deployment. Find these catalog set definitions under catalog/stacks/eks/clusters.

To provision a cluster, these components need to be deployed in order. The included Atmos Workflows will carry out this deployment in the proper order, but any of these step can be run outside of a workflow if desired.

See the eks workflow (stacks/workflows/eks.yaml) for each individual deployment step.

4 Deploy IAM Service Linked Roles

In order for Karpenter to reserve Spot Instances, the cluster needs to have a Service-Linked Role. Deploy these to all cluster accounts with iam-service-linked-roles

These are the commands included in the deploy/iam-service-linked-roles workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

5 Deploy Initial Platform Dev Cluster

First deploy the cluster and AWS EFS. Since Karpenter will be used in the following steps, the initial cluster is deployed without Nodes.

These are the commands included in the deploy/cluster workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

6 Deploy Platform Dev Cluster Resources

Once the cluster is up and running, continue with the EKS plat resources deployment. These need to be deployed in the given order by the include Atmos Workflow. For additional details on each component, see the included README.md for the individual component.

Run the Atmos Workflow to deploy all required plat components.

These are the commands included in the deploy/resources workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

Validate the cluster deployment with eks/echo-server and the targeted service domain. The following URL should return a success message for dev:

https://echo.use1.dev.plat.acme-svc.com/

7 Deploy Staging

Once the dev cluster is deployed and validated, continue with staging and then prod.

Repeat the same deployment steps in staging

These are the commands included in the deploy/cluster workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀
These are the commands included in the deploy/resources workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

Validate staging: https://echo.use1.staging.plat.acme-svc.com/

8 Deploy Production

Then deploy prod

These are the commands included in the deploy/cluster workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀
These are the commands included in the deploy/resources workflow in the examples/snippets/stacks/workflows/eks.yaml file:
    No commands found
Too many commands? Consider using the Atmos workflow! 🚀

Validate prod: https://echo.use1.prod.plat.acme-svc.com/

Related Topics