Create a New Cluster
This guide details the process of provisioning a new Amazon EKS (Elastic Kubernetes Service) cluster through the Scoutflo Deploy interface. Unlike traditional managed services, Scoutflo empowers your DevOps and GitOps practices by automating infrastructure-as-code.
How It Works: The Scoutflo Automation Engine
Before you begin, it's important to understand the automation behind the process:
Your Cloud, Your Account: The EKS cluster and all associated resources (VPCs, EC2 instances, etc.) are created directly in your AWS account. Scoutflo does not host or manage the infrastructure on its own account.
Terraform Automation: Scoutflo uses Terraform, the industry-standard Infrastructure-as-Code (IaC) tool, to provision your cluster. You define the desired state through our UI, and we generate and execute the precise Terraform code required to achieve it.
GitOps for Audit and Control: To ensure full transparency and an immutable audit trail, the generated Terraform code is automatically committed to a designated repository in your connected GitHub account. This allows you to:
Track Changes: Every modification to your infrastructure is version-controlled and attributable.
Enable Collaboration: Your team can review Terraform code changes via pull requests.
Recreate Environments: You can easily replicate or recover your infrastructure from the known-good code state.
This process combines the simplicity of a UI with the power, safety, and transparency of GitOps.
Step 1: Accessing the Cluster Creation
Navigate to "My Cluster": After connecting your Git account, find the 'My Cluster' section on the left sidebar, located below the workspace drop down.
Add a New Cluster: Click on the "+Add Cluster" button at the top right corner of the 'My Cluster' screen to initiate the creation of a new cluster.

Add a New Cluster:
Click on the "+Add Cluster" button located at the top right corner of the 'My Cluster' screen.
Select "Create a cluster" which opens a new screen dedicated to setting up the details of your new cluster.

Step 2: Selecting Cloud Credentials
Scoutflo Official Account: Use the default credentials provided by Scoutflo.
Add New Credentials: If you prefer to create a custom credential profile, enter your AWS Access Key ID and Secret Access Key.

Step 3: Define Cluster Metadata
Provide the foundational specifications for your Kubernetes cluster.
Cluster Name: Enter a unique, descriptive name. This will be used to generate the Terraform workspace name and resource tags.
Region: Select the AWS Region (e.g.,
us-east-1
) where all resources will be deployed. This ensures all generated Terraform resources are configured for the correct region.

Step 4: Configure Networking (VPC & Subnets)
Define the virtual network topology for your cluster. The Terraform code will configure the AWS VPC module based on your choice.
Create New VPC (Recommended for simplicity): Scoutflo's Terraform code will generate a new, properly configured VPC with both public and private subnets, NAT gateways, and route tables.
Use Existing VPC (For advanced users): Specify an existing VPC ID. You must also provide at least two Subnet IDs (from different Availability Zones) that meet the networking requirements for an EKS cluster.
Subnet Selection
Subnet IDs: Choose two or more subnets within the selected VPC. At least two subnet IDs must be specified (e.g.,
subnet-07782a9328cee29e9
,subnet-05ac09a44ea968fa6
).
Step 5: Configure Node Groups
Define the worker nodes that will run your applications. Each node group translates to a separate Terraform aws_eks_node_group
resource.
For each node group, specify:
Scaling Configuration: Set the Minimum, Desired, and Maximum number of nodes. This configures the Terraform arguments and integrates with the Cluster Autoscaler.
Instance Type: Choose the Instance Family (e.g.,
t3
,m5
) and a specific Instance Type (e.g.,t3.large
). This defines theinstance_types
parameter in Terraform.Capacity Type: Choose
ON_DEMAND
for reliability orSPOT
for cost optimization. This is a key variable in the Terraform node group definition.

Node Group 1:
Min Node: Specify the minimum number of nodes (e.g., 1).
Desired Node: Define the desired number of nodes (e.g., 3).
Max Node: Set a maximum number of nodes (e.g., 5).
Instance Family: Select an instance category (e.g., t3a, m5) — this field is required.
Instance Type: Choose a specific instance type (e.g., t3a.large, c5.xlarge) — this field cannot be empty.
Capacity Type: Select between ON_DEMAND or SPOT instances.
Node Group 2 (Optional):
Repeat the same steps as Node Group 1 to define additional node groups if needed. You can add more node groups by clicking the "Add More" button.
Step 6: Review Cost & Deploy
Cost Estimation: Scoutflo provides a real-time, API-driven cost breakdown based on your node configuration and AWS pricing. Review this estimate carefully.
Scoutflo integrates with AWS APIs to provide a real-time cost breakdown based on your configuration. As you adjust parameters, the estimated cost updates automatically, helping you make informed decisions before deployment.

Final Review: Scoutflo will summarize all your choices that will be written into the Terraform configuration.
Deploy Cluster: Clicking
Deploy Cluster
triggers the following automated process:Terraform Generation: Scoutflo generates the complete, reusable Terraform code for your cluster.
Git Commit: This code is committed to the selected branch in your GitHub repository.
Terraform Execution: Scoutflo's agent executes
terraform apply
using the generated code, streaming the logs directly to the UI for you to monitor.State Management: The Terraform state file is securely stored and managed by Scoutflo on your behalf.
Instance Configuration Options:
Node Configuration:- (Min: 1, Max: User Defined, Desired: User Defined).
Instance Type:- Select the instance type based on your workload requirements.
General Purpose
Versatile instances for various web applications
M5A (AMD)
2
8
EBS Only
AMD
T3A (AMD)
2
8
EBS Only
AMD
M4 (AMD)
8
32
EBS Only
AMD
Compute Optimized
High CPU power for compute-intensive tasks
C5A (AMD)
2
4
EBS Only
AMD
Memory Optimized
Abundant memory for fast data access
R5A (AMD)
2
16
EBS Only
AMD
Storage Optimized
High local storage capacity for large datasets
I3EN (Intel Xeon)
2
16
1 x 1250 GB NVMe SSD
Intel Xeon Skylake
Setting Up External Add-ons
Scoutflo Deploy offers several external add-ons to enhance your cluster's capabilities automatically. These add-ons provide essential monitoring, cost management, and control over your infrastructure:
Kubecost: Provides cost tracking and optimization tools for efficient resource management.
Grafana: Offers data visualization tools to monitor your cluster's performance and metrics.
Ingress Controller: Manages external access to services in your cluster, ensuring traffic routing is correctly handled.
DNS: Ensures your cluster's domain name resolution works seamlessly.

These add-ons are integrated automatically, saving you time and effort while ensuring your cluster is equipped with essential tools.
What Happens Next?
The provisioning process begins. You can monitor the real-time output of the
terraform apply
command in the Scoutflo UI, which provides detailed feedback on the creation status of each resource (e.g., VPC, EKS Control Plane, Node Groups).This process typically takes 10-15 minutes to complete.
Once finished, your new EKS cluster will be running in your AWS account, its configuration is fully described in the Terraform code in your GitHub repository, and it is ready for application deployments.
Last updated