Skip to content

Commit

Permalink
Removed default nodegroup and addons codebase (#48) (#49)
Browse files Browse the repository at this point in the history
* Removed default nodegroup and addons codebase (#48)

* Removed default nodegroup and addons codebase

* Updated readme.md files

* updated Public and private endpoint of cluster

* Updated main.tf file for example module

---------

Co-authored-by: ankush-sqops <ankush.upadhyay@squareops.com>
Co-authored-by: vinayakgautamops <95210787+vinayakgautamops@users.noreply.github.com>
  • Loading branch information
3 people authored Aug 20, 2024
1 parent ed9d5a3 commit ceb3295
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 474 deletions.
42 changes: 15 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@

### [SquareOps Technologies](https://squareops.com/) Your DevOps Partner for Accelerating cloud journey.
<br>
This module simplifies the deployment of EKS clusters with dual stack mode for Cluster IP family like IPv6 and IPv4, allowing users to quickly create and manage a production-grade Kubernetes cluster on AWS. The module is highly configurable, allowing users to customize various aspects of the EKS cluster, such as the Kubernetes version, worker node instance type, number of worker nodes, and now with added support for EKS version 1.28.
This module simplifies the deployment of EKS clusters with dual stack mode for Cluster IP family like IPv6 and IPv4, allowing users to quickly create and manage a production-grade Kubernetes cluster on AWS. The module is highly configurable, allowing users to customize various aspects of the EKS cluster, such as the Kubernetes version, worker node instance type, number of worker nodes, and now with added support for EKS version 1.30.
<br>
we've introduced a new functionality that enhances the ease of cluster setup. Users can now choose to create a default nodegroup based on the value of default_addon_enabled.the module now seamlessly integrates default addons, including CoreDNS, Kube-proxy, VPC CNI, and EBS CSI Driver. This ensures that your EKS clusters are equipped with essential components for optimal performance and functionality right from the start.
<br>
With this module, users can take advantage of the latest features and improvements offered by EKS 1.28 while maintaining the ease and convenience of automated deployment. The module provides a streamlined solution for setting up EKS clusters, reducing the manual effort required for setup and configuration.
With this module, users can take advantage of the latest features and improvements offered by EKS 1.30 while maintaining the ease and convenience of automated deployment. The module provides a streamlined solution for setting up EKS clusters, reducing the manual effort required for setup and configuration.


## Usage Example
Expand All @@ -22,20 +20,13 @@ module "eks" {
name = "skaf"
vpc_id = "vpc-xyz425342176"
vpc_subnet_ids = [module.vpc.private_subnets[0]]
eks_ng_min_size = 1
eks_ng_max_size = 5
eks_ng_desired_size = 1
ebs_volume_size = 50
eks_ng_capacity_type = "SPOT"
eks_ng_instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
environment = "prod"
eks_kms_key_arn = "arn:aws:kms:us-east-2:222222222222:key/kms_key_arn"
eks_cluster_version = "1.29"
eks_cluster_version = "1.30"
eks_cluster_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
eks_cluster_log_retention_in_days = 30
eks_cluster_endpoint_public_access = true
eks_cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"]
eks_default_addon_enabled = true
eks_nodes_keypair_name = module.key_pair_eks.key_pair_name
access_entry_enabled = false
access_entries = {
Expand Down Expand Up @@ -81,13 +72,12 @@ module "managed_node_group_addons" {
managed_ng_ebs_volume_size = 50
managed_ng_instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
managed_ng_kms_policy_arn = module.eks.kms_policy_arn
eks_cluster_name = module.eks.eks_cluster_name
worker_iam_role_name = module.eks.worker_iam_role_name
worker_iam_role_arn = module.eks.worker_iam_role_arn
default_addon_enabled = true
managed_ng_pod_capacity= 90
eks_cluster_name = module.eks.eks_cluster_name
worker_iam_role_name = module.eks.worker_iam_role_name
worker_iam_role_arn = module.eks.worker_iam_role_arn
managed_ng_pod_capacity = 90
managed_ng_monitoring_enabled = true
eks_nodes_keypair_name = "key-pair-name"
eks_nodes_keypair_name = "key-pair-name"
k8s_labels = {
"Addons-Services" = "true"
}
Expand All @@ -97,13 +87,13 @@ module "managed_node_group_addons" {
}
module "fargate_profle" {
source = "squareops/eks/aws//modules/fargate-profile"
depends_on = [module.eks]
fargate_profile_name = "app"
fargate_subnet_ids = ["subnet-abc123"]
environment = "prod"
eks_cluster_name = module.eks.cluster_name
fargate_namespace = "default"
source = "squareops/eks/aws//modules/fargate-profile"
depends_on = [module.eks]
fargate_profile_name = "app"
fargate_subnet_ids = ["subnet-abc123"]
environment = "prod"
eks_cluster_name = module.eks.cluster_name
fargate_namespace = "default"
k8s_labels = {
"App-Services" = "fargate"
}
Expand Down Expand Up @@ -182,8 +172,6 @@ In this module, we have implemented the following CIS Compliance checks for EKS:
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_additional_aws_tags"></a> [additional\_aws\_tags](#input\_additional\_aws\_tags) | Additional tags to be applied to AWS resources | `map(string)` | `{}` | no |
| <a name="input_aws_region"></a> [aws\_region](#input\_aws\_region) | Name of the AWS region where S3 bucket is to be created. | `string` | `"us-east-1"` | no |
| <a name="input_aws_account_id"></a> [aws\_account\_id](#input\_aws\_account\_id) | Account ID of the AWS Account. | `string` | `""` | no |
| <a name="input_environment"></a> [environment](#input\_environment) | Environment identifier for the EKS cluster, such as dev, qa, prod, etc. | `string` | `""` | no |
| <a name="input_name"></a> [name](#input\_name) | Specify the name of the EKS cluster. | `string` | `""` | no |
| <a name="input_cluster_version"></a> [cluster\_version](#input\_cluster\_version) | Specifies the Kubernetes version (major.minor) to use for the EKS cluster. | `string` | `""` | no |
Expand Down
89 changes: 38 additions & 51 deletions examples/complete/main.tf
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
locals {
region = "us-west-1"
kms_deletion_window_in_days = 7
kms_key_rotation_enabled = true
is_enabled = true
multi_region = false
environment = "stage"
name = "sqops"
auto_assign_public_ip = true
vpc_availability_zones = ["us-west-1a", "us-west-1b"]
vpc_public_subnet_enabled = true
vpc_private_subnet_enabled = true
vpc_database_subnet_enabled = true
vpc_intra_subnet_enabled = true
vpc_one_nat_gateway_per_az = true
vpn_server_instance_type = "t3a.small"
vpc_flow_log_enabled = false
kms_user = null
vpc_cidr = "10.10.0.0/16"
vpn_server_enabled = true
# default_addon_enabled = false # If true, a node group will be created along with enabling vpc-cni, ebs-csi addons.
cluster_version = "1.30"
cluster_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
cluster_log_retention_in_days = 30
# ng_capacity_type = "SPOT" # Can use "On_DEMAND" also
region = "us-west-1"
kms_deletion_window_in_days = 7
kms_key_rotation_enabled = true
is_enabled = true
multi_region = false
environment = "stage"
name = "sqops"
auto_assign_public_ip = true
vpc_availability_zones = ["us-west-1a", "us-west-1b"]
vpc_public_subnet_enabled = true
vpc_private_subnet_enabled = true
vpc_database_subnet_enabled = true
vpc_intra_subnet_enabled = true
vpc_one_nat_gateway_per_az = true
vpn_server_instance_type = "t3a.small"
vpc_flow_log_enabled = false
kms_user = null
vpc_cidr = "10.10.0.0/16"
vpn_server_enabled = true
cluster_version = "1.30"
cluster_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
cluster_log_retention_in_days = 30
managed_ng_capacity_type = "SPOT" # Can use "On_DEMAND" also
cluster_endpoint_private_access = false
cluster_endpoint_public_access = true
Expand All @@ -31,11 +29,10 @@ locals {
fargate_profile_name = "app"
vpc_s3_endpoint_enabled = true
vpc_ecr_endpoint_enabled = false
# vpc_flow_log_cloudwatch_log_group_skip_destroy = false
vpc_public_subnets_counts = 2
vpc_private_subnets_counts = 2
vpc_database_subnets_counts = 2
vpc_intra_subnets_counts = 2
vpc_public_subnets_counts = 2
vpc_private_subnets_counts = 2
vpc_database_subnets_counts = 2
vpc_intra_subnets_counts = 2
additional_aws_tags = {
Owner = "Organization_name"
Expires = "Never"
Expand Down Expand Up @@ -137,9 +134,8 @@ module "vpc" {
}

module "eks" {
source = "squareops/eks/aws"
version = "4.0.9"
# aws_region = local.region
source = "squareops/eks/aws"
version = "4.0.9"
access_entry_enabled = true
access_entries = {
"example" = {
Expand All @@ -161,25 +157,16 @@ module "eks" {
depends_on = [module.vpc]
name = local.name
vpc_id = module.vpc.vpc_id
vpc_subnet_ids = [module.vpc.private_subnets[0]]
# ng_min_size = 1
# ng_max_size = 3
# ng_desired_size = 2
# ebs_volume_size = local.ebs_volume_size
# ng_capacity_type = local.ng_capacity_type
# ng_instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
environment = local.environment
kms_key_arn = module.kms.key_arn
cluster_version = local.cluster_version
cluster_log_types = local.cluster_log_types
vpc_private_subnet_ids = module.vpc.private_subnets
cluster_log_retention_in_days = local.cluster_log_retention_in_days
cluster_endpoint_public_access = local.cluster_endpoint_public_access
cluster_endpoint_public_access_cidrs = local.cluster_endpoint_public_access_cidrs
cluster_endpoint_private_access = local.cluster_endpoint_private_access
# managed_ng_pod_capacity = 90
# default_addon_enabled = local.default_addon_enabled
nodes_keypair_name = module.key_pair_eks.key_pair_name
environment = local.environment
kms_key_arn = module.kms.key_arn
cluster_version = local.cluster_version
cluster_log_types = local.cluster_log_types
vpc_private_subnet_ids = module.vpc.private_subnets
cluster_log_retention_in_days = local.cluster_log_retention_in_days
cluster_endpoint_public_access = local.cluster_endpoint_public_access
cluster_endpoint_public_access_cidrs = local.cluster_endpoint_public_access_cidrs
cluster_endpoint_private_access = local.cluster_endpoint_private_access
nodes_keypair_name = module.key_pair_eks.key_pair_name
cluster_security_group_additional_rules = {
ingress_port_mgmt_tcp = {
description = "mgmt vpc cidr"
Expand Down
30 changes: 0 additions & 30 deletions examples/complete/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -118,33 +118,3 @@ output "managed_ng_disk_size" {
description = "Disk size of node in managed node group"
value = module.managed_node_group_addons.managed_ng_ebs_volume_size
}

# default Nodegroup
# output "default_ng_node_group_arn" {
# description = "ARN for the nodegroup"
# value = local.default_addon_enabled ? module.eks.default_ng_node_group_arn : null
# }

# output "default_ng_min_node" {
# value = local.default_addon_enabled ? module.eks.default_ng_min_node : null
# }

# output "default_ng_max_node" {
# value = local.default_addon_enabled ? module.eks.default_ng_max_node : null
# }

# output "default_ng_desired_node" {
# value = local.default_addon_enabled ? module.eks.default_ng_desired_node : null
# }

# output "default_ng_capacity_type" {
# value = local.default_addon_enabled ? module.eks.default_ng_capacity_type : null
# }

# output "default_ng_instance_types" {
# value = local.default_addon_enabled ? module.eks.default_ng_instance_types : null
# }

# output "default_ng_ebs_volume_size" {
# value = local.default_addon_enabled ? module.eks.default_ng_ebs_volume_size : null
# }
Loading

0 comments on commit ceb3295

Please sign in to comment.