Skip to content

Commit 2e78fb3

Browse files
author
vijay-stephen
committed
Merge pull request #118 from sourcefuse/feature/eks_capabilities
Feature/eks capabilities
1 parent 461321f commit 2e78fb3

File tree

1 file changed

+81
-1
lines changed
  • docs/arc-iac-docs/modules/terraform-aws-ref-arch-eks/docs/module-usage-guide

1 file changed

+81
-1
lines changed

docs/arc-iac-docs/modules/terraform-aws-ref-arch-eks/docs/module-usage-guide/README.md

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ The [Terraform AWS ARC EKS](https://github.com/sourcefuse/terraform-aws-arc-eks)
1717
Before using this module, ensure you have the following:
1818

1919
- AWS credentials configured.
20-
- Terraform installed.
20+
- Terraform installed (>= 1.6.0).
21+
- AWS Terraform provider (>= 6.0.0) required for EKS capabilities support.
2122
- A working knowledge of AWS VPC, EKS, Kubernetes, Helm, Karpenter and Terraform concepts.
2223

2324
## Getting Started
@@ -245,12 +246,91 @@ resource "kubectl_manifest" "karpenter_nodeclass" {
245246

246247
---
247248

249+
#### 5. **EKS Capabilities (ArgoCD, ACK, KRO)**
250+
251+
For EKS Cluster with the latest EKS capabilities, see the [examples/eks-capabilities](https://github.com/sourcefuse/terraform-aws-arc-eks/tree/main/examples/eks-capabilities) folder.
252+
253+
This module supports the latest **EKS Capabilities** feature, which enables powerful add-ons and integrations directly on your EKS cluster:
254+
255+
**Key Capabilities:**
256+
- **ArgoCD**: GitOps continuous delivery tool for automated deployment and management
257+
- **ACK (AWS Controllers for Kubernetes)**: Manage AWS services (EC2, S3, RDS, etc.) directly from Kubernetes
258+
- **KRO (Kubernetes Resource Operator)**: Simplified resource management and operations
259+
260+
**Example Use Case:**
261+
You want to enable GitOps deployment with ArgoCD, manage AWS infrastructure resources from Kubernetes using ACK controllers, and leverage KRO for simplified resource operations.
262+
263+
**How to Use:**
264+
```hcl
265+
eks_capabilities_config = {
266+
enable = true
267+
capabilities = [
268+
# ArgoCD Capability
269+
{
270+
name = "argocd"
271+
capability_name = "ArgoCD"
272+
type = "ARGOCD"
273+
role_arn = aws_iam_role.argocd_role.arn
274+
argocd_config = {
275+
namespace = "argocd"
276+
# Requirerd: Configure AWS IAM Identity Center
277+
aws_idc = {
278+
idc_instance_arn = "arn:aws:sso:::instance/ssoins-xxxxxxxxx"
279+
idc_region = "us-east-1"
280+
}
281+
# Optional: Configure network access with VPC endpoints
282+
# network_access = {
283+
# vpce_ids = ["vpce-xxxxxxxx", "vpce-yyyyyyyy"]
284+
# }
285+
# Optional: Configure RBAC role mappings
286+
# rbac_role_mapping = [
287+
# {
288+
# role = "ADMIN"
289+
# identity = [
290+
# {
291+
# id = "123456789012"
292+
# type = "SSO_USER"
293+
# }
294+
# ]
295+
# }
296+
# ]
297+
}
298+
},
299+
# ACK EC2 Capability
300+
{
301+
name = "ack-ec2"
302+
capability_name = "ACK-EC2"
303+
type = "ACK"
304+
role_arn = aws_iam_role.ack_ec2_role.arn
305+
},
306+
# KRO Capability
307+
{
308+
name = "kro"
309+
capability_name = "KRO"
310+
type = "KRO"
311+
role_arn = aws_iam_role.kro_role.arn
312+
}
313+
]
314+
}
315+
```
316+
317+
**Benefits:**
318+
- **Simplified Operations**: AWS manages the installation, upgrades, and patching of these capabilities
319+
- **Deep Integration**: Seamlessly integrates with EKS control plane and IAM
320+
- **Production Ready**: Pre-configured with secure defaults and best practices
321+
- **GitOps Workflow**: ArgoCD enables declarative, version-controlled deployments
322+
- **AWS Service Management**: ACK allows you to manage AWS resources using Kubernetes manifests
323+
- **Resource Optimization**: KRO provides simplified resource management and operations
324+
325+
---
326+
248327
### Tips and Recommendations
249328

250329
- Use `node_group_config` for granular node group management
251330
- Use `karpenter_config` for dynamic compute provisioning
252331
- Leverage `fargate_profile_config` for low-priority or bursty workloads
253332
- Consider EKS Auto Mode for minimal operational overhead
333+
- Use `eks_capabilities_config` to enable ArgoCD, ACK, and KRO for enhanced cluster functionality
254334
- Use custom `access_config` to centralize EKS access management
255335

256336

0 commit comments

Comments
 (0)