diff --git a/examples/fargate/main.tf b/examples/fargate/main.tf index 7251440..0697a58 100644 --- a/examples/fargate/main.tf +++ b/examples/fargate/main.tf @@ -72,15 +72,25 @@ module "eks" { vpc_id = module.vpc.vpc_id fargate_profiles = { - example = { - namespace = "default" - - # Kubernetes labels for selection - # labels = { - # Environment = "test" - # GithubRepo = "terraform-aws-eks" - # GithubOrg = "terraform-aws-modules" - # } + default = { + name = "default" + selectors = [ + { + namespace = "kube-system" + labels = { + k8s-app = "kube-dns" + } + }, + { + namespace = "default" + # Kubernetes labels for selection + # labels = { + # Environment = "test" + # GithubRepo = "terraform-aws-eks" + # GithubOrg = "terraform-aws-modules" + # } + } + ] # using specific subnets instead of all the ones configured in eks # subnets = ["subnet-0ca3e3d1234a56c78"] diff --git a/modules/fargate/README.md b/modules/fargate/README.md index d31e597..459c355 100644 --- a/modules/fargate/README.md +++ b/modules/fargate/README.md @@ -11,10 +11,9 @@ Helper submodule to create and manage resources related to `aws_eks_fargate_prof | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | name | Fargate profile name | `string` | Auto generated in the following format `[cluster_name]-fargate-[fargate_profile_map_key]`| no | -| namespace | Kubernetes namespace for selection | `string` | n/a | yes | -| labels | Key-value map of Kubernetes labels for selection | `map(string)` | `{}` | no | -| tags | Key-value map of resource tags. Will be merged with root module tags. | `map(string)` | `var.tags` | no | +| selectors | A list of Kubernetes selectors. See examples/fargate/main.tf for example format. |
list(map({
namespace = string
labels = map(string)
}))| `[]` | no |
| subnets | List of subnet IDs. Will replace the root module subnets. | `list(string)` | `var.subnets` | no |
+| tags | Key-value map of resource tags. Will be merged with root module tags. | `map(string)` | `var.tags` | no |
## Requirements
diff --git a/modules/fargate/fargate.tf b/modules/fargate/fargate.tf
index e88adb6..caa73fa 100644
--- a/modules/fargate/fargate.tf
+++ b/modules/fargate/fargate.tf
@@ -20,9 +20,13 @@ resource "aws_eks_fargate_profile" "this" {
pod_execution_role_arn = local.pod_execution_role_arn
subnet_ids = lookup(each.value, "subnets", var.subnets)
tags = each.value.tags
- selector {
- namespace = each.value.namespace
- labels = lookup(each.value, "labels", null)
+
+ dynamic "selector" {
+ for_each = each.value.selectors
+ content {
+ namespace = selector.value["namespace"]
+ labels = lookup(selector.value, "labels", {})
+ }
}
depends_on = [var.eks_depends_on]