Skip to content

Commit

Permalink
Merge pull request #17 from ns-squareops/main
Browse files Browse the repository at this point in the history
added node outputs and added disk size in module
  • Loading branch information
RohitSquareops authored Dec 22, 2023
2 parents 3ca99e0 + 4247488 commit 476c1f0
Show file tree
Hide file tree
Showing 11 changed files with 252 additions and 5 deletions.
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,24 @@ module "eks" {
source = "squareops/eks/aws"
name = "skaf"
vpc_id = "vpc-xyz425342176"
subnet_ids = [module.vpc.private_subnets[0]]
min_size = 2
max_size = 5
desired_size = 2
ebs_volume_size = 50
capacity_type = "ON_DEMAND"
instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
environment = "prod"
kms_key_arn = "arn:aws:kms:us-east-2:222222222222:key/kms_key_arn"
cluster_version = "1.27"
cluster_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
private_subnet_ids = ["subnet-abc123" , "subnet-xyz12324"]
default_addon_enabled = true
cluster_log_retention_in_days = 30
cluster_endpoint_public_access = true
cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"]
create_aws_auth_configmap = true
default_addon_enabled = true
eks_nodes_keypair_name = module.key_pair_eks.key_pair_name
aws_auth_roles = [
{
rolearn = "arn:aws:iam::222222222222:role/service-role"
Expand Down Expand Up @@ -66,6 +74,7 @@ module "managed_node_group_production" {
environment = "prod"
kms_key_arn = "arn:aws:kms:us-east-2:222222222222:key/kms_key_arn"
capacity_type = "ON_DEMAND"
ebs_volume_size = 50
instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
kms_policy_arn = module.eks.kms_policy_arn
eks_cluster_name = module.eks.cluster_name
Expand Down Expand Up @@ -220,6 +229,13 @@ In this module, we have implemented the following CIS Compliance checks for EKS:
| <a name="output_worker_iam_role_name"></a> [worker\_iam\_role\_name](#output\_worker\_iam\_role\_name) | Name of the IAM role assigned to the EKS worker nodes. |
| <a name="output_kms_policy_arn"></a> [kms\_policy\_arn](#output\_kms\_policy\_arn) | ARN of the KMS policy that is used by the EKS cluster. |
| <a name="output_cluster_certificate_authority_data"></a> [cluster\_certificate\_authority\_data](#output\_cluster\_certificate\_authority\_data) | Base64 encoded certificate data required to communicate with the cluster |
| <a name="output_default_ng_node_group_arn"></a> [default\_ng\_node\_group\_arn](#output\_default\_ng\_node\_group\_arn) | ARN for the nodegroup |
| <a name="output_default_ng_min_node"></a> [default\_ng\_min\_node](#output\_default\_ng\_min\_node) | n/a |
| <a name="output_default_ng_max_node"></a> [default\_ng\_max\_node](#output\_default\_ng\_max\_node) | n/a |
| <a name="output_default_ng_desired_node"></a> [default\_ng\_desired\_node](#output\_default\_ng\_desired\_node) | n/a |
| <a name="output_default_ng_capacity_type"></a> [default\_ng\_capacity\_type](#output\_default\_ng\_capacity\_type) | n/a |
| <a name="output_default_ng_instance_types"></a> [default\_ng\_instance\_types](#output\_default\_ng\_instance\_types) | n/a |
| <a name="output_default_ng_ebs_volume_size"></a> [default\_ng\_ebs\_volume\_size](#output\_default\_ng\_ebs\_volume\_size) | n/a |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

## Contribution & Issue Reporting
Expand Down
14 changes: 14 additions & 0 deletions examples/complete-ipv6/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,18 @@ No inputs.
| <a name="output_worker_iam_role_arn"></a> [worker\_iam\_role\_arn](#output\_worker\_iam\_role\_arn) | ARN of the IAM role assigned to the EKS worker nodes. |
| <a name="output_worker_iam_role_name"></a> [worker\_iam\_role\_name](#output\_worker\_iam\_role\_name) | Name of the IAM role assigned to the EKS worker nodes. |
| <a name="output_kms_policy_arn"></a> [kms\_policy\_arn](#output\_kms\_policy\_arn) | ARN of the KMS policy that is used by the EKS cluster. |
| <a name="output_managed_ng_node_group_arn"></a> [managed\_ng\_node\_group\_arn](#output\_managed\_ng\_node\_group\_arn) | ARN for the nodegroup |
| <a name="output_managed_ng_min_node"></a> [managed\_ng\_min\_node](#output\_managed\_ng\_min\_node) | Minimum node of managed node group |
| <a name="output_managed_ng_max_node"></a> [managed\_ng\_max\_node](#output\_managed\_ng\_max\_node) | Maximum node of managed node group |
| <a name="output_managed_ng_desired_node"></a> [managed\_ng\_desired\_node](#output\_managed\_ng\_desired\_node) | Desired node of managed node group |
| <a name="output_managed_ng_capacity_type"></a> [managed\_ng\_capacity\_type](#output\_managed\_ng\_capacity\_type) | Capacity type of managed node |
| <a name="output_managed_ng_instance_types"></a> [managed\_ng\_instance\_types](#output\_managed\_ng\_instance\_types) | Instance types of managed node |
| <a name="output_managed_ng_disk_size"></a> [managed\_ng\_disk\_size](#output\_managed\_ng\_disk\_size) | Disk size of node in managed node group |
| <a name="output_default_ng_node_group_arn"></a> [default\_ng\_node\_group\_arn](#output\_default\_ng\_node\_group\_arn) | ARN for the nodegroup |
| <a name="output_default_ng_min_node"></a> [default\_ng\_min\_node](#output\_default\_ng\_min\_node) | n/a |
| <a name="output_default_ng_max_node"></a> [default\_ng\_max\_node](#output\_default\_ng\_max\_node) | n/a |
| <a name="output_default_ng_desired_node"></a> [default\_ng\_desired\_node](#output\_default\_ng\_desired\_node) | n/a |
| <a name="output_default_ng_capacity_type"></a> [default\_ng\_capacity\_type](#output\_default\_ng\_capacity\_type) | n/a |
| <a name="output_default_ng_instance_types"></a> [default\_ng\_instance\_types](#output\_default\_ng\_instance\_types) | n/a |
| <a name="output_default_ng_ebs_volume_size"></a> [default\_ng\_ebs\_volume\_size](#output\_default\_ng\_ebs\_volume\_size) | n/a |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
2 changes: 2 additions & 0 deletions examples/complete-ipv6/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ module "eks" {
min_size = 2
max_size = 5
desired_size = 2
ebs_volume_size = 50
capacity_type = "ON_DEMAND"
instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
environment = local.environment
Expand Down Expand Up @@ -163,6 +164,7 @@ module "managed_node_group_production" {
environment = local.environment
kms_key_arn = module.kms.key_arn
capacity_type = "ON_DEMAND"
ebs_volume_size = 50
instance_types = ["t3a.large", "t3.large", "m5.large"]
kms_policy_arn = module.eks.kms_policy_arn
eks_cluster_name = module.eks.cluster_name
Expand Down
67 changes: 67 additions & 0 deletions examples/complete-ipv6/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,70 @@ output "kms_policy_arn" {
description = "ARN of the KMS policy that is used by the EKS cluster."
value = module.eks.kms_policy_arn
}

# Managed Nodegroup
output "managed_ng_node_group_arn" {
description = "ARN for the nodegroup"
value = module.managed_node_group_production.node_group_arn
}

output "managed_ng_min_node" {
description = "Minimum node of managed node group"
value = module.managed_node_group_production.min_node
}

output "managed_ng_max_node" {
description = "Maximum node of managed node group"
value = module.managed_node_group_production.max_node
}

output "managed_ng_desired_node" {
description = "Desired node of managed node group"
value = module.managed_node_group_production.desired_node
}

output "managed_ng_capacity_type" {
description = "Capacity type of managed node"
value = module.managed_node_group_production.capacity_type
}

output "managed_ng_instance_types" {
description = "Instance types of managed node "
value = module.managed_node_group_production.instance_types
}

output "managed_ng_disk_size" {
description = "Disk size of node in managed node group"
value = module.managed_node_group_production.disk_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
}
14 changes: 14 additions & 0 deletions examples/complete/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,18 @@ No inputs.
| <a name="output_worker_iam_role_arn"></a> [worker\_iam\_role\_arn](#output\_worker\_iam\_role\_arn) | ARN of the IAM role assigned to the EKS worker nodes. |
| <a name="output_worker_iam_role_name"></a> [worker\_iam\_role\_name](#output\_worker\_iam\_role\_name) | Name of the IAM role assigned to the EKS worker nodes. |
| <a name="output_kms_policy_arn"></a> [kms\_policy\_arn](#output\_kms\_policy\_arn) | ARN of the KMS policy that is used by the EKS cluster. |
| <a name="output_managed_ng_node_group_arn"></a> [managed\_ng\_node\_group\_arn](#output\_managed\_ng\_node\_group\_arn) | ARN for the nodegroup |
| <a name="output_managed_ng_min_node"></a> [managed\_ng\_min\_node](#output\_managed\_ng\_min\_node) | Minimum node of managed node group |
| <a name="output_managed_ng_max_node"></a> [managed\_ng\_max\_node](#output\_managed\_ng\_max\_node) | Maximum node of managed node group |
| <a name="output_managed_ng_desired_node"></a> [managed\_ng\_desired\_node](#output\_managed\_ng\_desired\_node) | Desired node of managed node group |
| <a name="output_managed_ng_capacity_type"></a> [managed\_ng\_capacity\_type](#output\_managed\_ng\_capacity\_type) | Capacity type of managed node |
| <a name="output_managed_ng_instance_types"></a> [managed\_ng\_instance\_types](#output\_managed\_ng\_instance\_types) | Instance types of managed node |
| <a name="output_managed_ng_disk_size"></a> [managed\_ng\_disk\_size](#output\_managed\_ng\_disk\_size) | Disk size of node in managed node group |
| <a name="output_default_ng_node_group_arn"></a> [default\_ng\_node\_group\_arn](#output\_default\_ng\_node\_group\_arn) | ARN for the nodegroup |
| <a name="output_default_ng_min_node"></a> [default\_ng\_min\_node](#output\_default\_ng\_min\_node) | n/a |
| <a name="output_default_ng_max_node"></a> [default\_ng\_max\_node](#output\_default\_ng\_max\_node) | n/a |
| <a name="output_default_ng_desired_node"></a> [default\_ng\_desired\_node](#output\_default\_ng\_desired\_node) | n/a |
| <a name="output_default_ng_capacity_type"></a> [default\_ng\_capacity\_type](#output\_default\_ng\_capacity\_type) | n/a |
| <a name="output_default_ng_instance_types"></a> [default\_ng\_instance\_types](#output\_default\_ng\_instance\_types) | n/a |
| <a name="output_default_ng_ebs_volume_size"></a> [default\_ng\_ebs\_volume\_size](#output\_default\_ng\_ebs\_volume\_size) | n/a |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
4 changes: 3 additions & 1 deletion examples/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ module "eks" {
min_size = 2
max_size = 5
desired_size = 2
ebs_volume_size = 50
capacity_type = "ON_DEMAND"
instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
environment = local.environment
Expand Down Expand Up @@ -156,14 +157,15 @@ module "managed_node_group_production" {
environment = local.environment
kms_key_arn = module.kms.key_arn
capacity_type = "ON_DEMAND"
ebs_volume_size = 50
instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
kms_policy_arn = module.eks.kms_policy_arn
eks_cluster_name = module.eks.cluster_name
default_addon_enabled = local.default_addon_enabled
worker_iam_role_name = module.eks.worker_iam_role_name
eks_nodes_keypair_name = module.key_pair_eks.key_pair_name
k8s_labels = {
"Addon-Services" = "true"
"Addons-Services" = "true"
}
tags = local.additional_aws_tags
}
Expand Down
67 changes: 67 additions & 0 deletions examples/complete/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,70 @@ output "kms_policy_arn" {
description = "ARN of the KMS policy that is used by the EKS cluster."
value = module.eks.kms_policy_arn
}

# Managed Nodegroup
output "managed_ng_node_group_arn" {
description = "ARN for the nodegroup"
value = module.managed_node_group_production.node_group_arn
}

output "managed_ng_min_node" {
description = "Minimum node of managed node group"
value = module.managed_node_group_production.min_node
}

output "managed_ng_max_node" {
description = "Maximum node of managed node group"
value = module.managed_node_group_production.max_node
}

output "managed_ng_desired_node" {
description = "Desired node of managed node group"
value = module.managed_node_group_production.desired_node
}

output "managed_ng_capacity_type" {
description = "Capacity type of managed node"
value = module.managed_node_group_production.capacity_type
}

output "managed_ng_instance_types" {
description = "Instance types of managed node "
value = module.managed_node_group_production.instance_types
}

output "managed_ng_disk_size" {
description = "Disk size of node in managed node group"
value = module.managed_node_group_production.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
}
5 changes: 3 additions & 2 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,9 @@ resource "aws_eks_node_group" "default_ng" {
max_size = var.max_size
min_size = var.min_size
}
labels = var.k8s_labels
capacity_type = var.capacity_type
labels = var.k8s_labels
capacity_type = var.capacity_type

instance_types = var.instance_types
launch_template {
id = aws_launch_template.eks_template[0].id
Expand Down
10 changes: 9 additions & 1 deletion modules/managed-nodegroup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,13 @@ No modules.

## Outputs

No outputs.
| Name | Description |
|------|-------------|
| <a name="output_node_group_arn"></a> [node\_group\_arn](#output\_node\_group\_arn) | n/a |
| <a name="output_min_node"></a> [min\_node](#output\_min\_node) | n/a |
| <a name="output_max_node"></a> [max\_node](#output\_max\_node) | n/a |
| <a name="output_desired_node"></a> [desired\_node](#output\_desired\_node) | n/a |
| <a name="output_capacity_type"></a> [capacity\_type](#output\_capacity\_type) | n/a |
| <a name="output_instance_types"></a> [instance\_types](#output\_instance\_types) | n/a |
| <a name="output_ebs_volume_size"></a> [ebs\_volume\_size](#output\_ebs\_volume\_size) | n/a |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
27 changes: 27 additions & 0 deletions modules/managed-nodegroup/output.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
output "node_group_arn" {
value = aws_eks_node_group.managed_ng.arn
}

output "min_node" {
value = var.min_size
}

output "max_node" {
value = var.max_size
}

output "desired_node" {
value = var.desired_size
}

output "capacity_type" {
value = var.capacity_type
}

output "instance_types" {
value = var.instance_types
}

output "ebs_volume_size" {
value = var.ebs_volume_size
}
29 changes: 29 additions & 0 deletions outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,32 @@ output "cluster_certificate_authority_data" {
description = "Base64 encoded certificate data required to communicate with the cluster"
value = var.default_addon_enabled ? module.eks_addon[0].cluster_certificate_authority_data : module.eks[0].cluster_certificate_authority_data
}

output "default_ng_node_group_arn" {
description = "ARN for the nodegroup"
value = var.default_addon_enabled ? aws_eks_node_group.default_ng[0].arn : null
}

output "default_ng_min_node" {
value = var.default_addon_enabled ? var.min_size : null
}

output "default_ng_max_node" {
value = var.default_addon_enabled ? var.max_size : null
}

output "default_ng_desired_node" {
value = var.default_addon_enabled ? var.desired_size : null
}

output "default_ng_capacity_type" {
value = var.default_addon_enabled ? var.capacity_type : null
}

output "default_ng_instance_types" {
value = var.default_addon_enabled ? var.instance_types : null
}

output "default_ng_ebs_volume_size" {
value = var.default_addon_enabled ? var.ebs_volume_size : null
}

0 comments on commit 476c1f0

Please sign in to comment.