Configuration in this directory creates the AWS resources required by EKS capabilities
module "ack_eks_capability" {
source = "terraform-aws-modules/eks/aws//modules/capability"
name = "example-ack"
cluster_name = "example"
type = "ACK"
# IAM Role/Policy
iam_role_policies = {
AdministratorAccess = "arn:aws:iam::aws:policy/AdministratorAccess"
}
tags = {
Environment = "dev"
Terraform = "true"
}
}
module "argocd_eks_capability" {
source = "terraform-aws-modules/eks/aws//modules/capability"
name = "example-argocd"
cluster_name = "example"
type = "ARGOCD"
configuration = {
argo_cd = {
aws_idc = {
idc_instance_arn = "arn:aws:sso:::instance/ssoins-1234567890abcdef0"
}
namespace = "argocd"
rbac_role_mapping = [{
role = "ADMIN"
identity = [{
id = "686103e0-f051-7068-b225-e6392b959d9e"
type = "SSO_GROUP"
}]
}]
}
}
# IAM Role/Policy
iam_policy_statements = {
ECRRead = {
actions = [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
]
resources = ["*"]
}
}
tags = {
Environment = "dev"
Terraform = "true"
}
}
module "kro_eks_capability" {
source = "terraform-aws-modules/eks/aws//modules/capability"
name = "example-kro"
cluster_name = "example"
type = "KRO"
tags = {
Environment = "dev"
Terraform = "true"
}
}
| Name |
Version |
| aws |
>= 6.33 |
| time |
>= 0.9 |
No modules.
| Name |
Description |
Type |
Default |
Required |
| cluster_name |
The name of the EKS cluster |
string |
"" |
no |
| configuration |
Configuration for the capability |
object({ argo_cd = optional(object({ aws_idc = object({ idc_instance_arn = string idc_region = optional(string) }) namespace = optional(string) network_access = optional(object({ vpce_ids = optional(list(string)) })) rbac_role_mapping = optional(list(object({ identity = list(object({ id = string type = string })) role = string }))) })) }) |
null |
no |
| create |
Controls if resources should be created (affects nearly all resources) |
bool |
true |
no |
| create_iam_role |
Determines whether an IAM role is created |
bool |
true |
no |
| delete_propagation_policy |
The propagation policy to use when deleting the capability. Valid values: RETAIN |
string |
"RETAIN" |
no |
| iam_policy_description |
IAM policy description |
string |
null |
no |
| iam_policy_name |
Name of the IAM policy |
string |
null |
no |
| iam_policy_path |
Path of the IAM policy |
string |
null |
no |
| iam_policy_statements |
A map of IAM policy statements - used for adding specific IAM permissions as needed |
map(object({ sid = optional(string) actions = optional(list(string)) not_actions = optional(list(string)) effect = optional(string) resources = optional(list(string)) not_resources = optional(list(string)) principals = optional(list(object({ type = string identifiers = list(string) }))) not_principals = optional(list(object({ type = string identifiers = list(string) }))) condition = optional(list(object({ test = string values = list(string) variable = string }))) })) |
null |
no |
| iam_policy_use_name_prefix |
Determines whether the name of the IAM policy (iam_policy_name) is used as a prefix |
bool |
true |
no |
| iam_role_arn |
The ARN of the IAM role that provides permissions for the capability |
string |
null |
no |
| iam_role_description |
IAM role description |
string |
null |
no |
| iam_role_max_session_duration |
Maximum API session duration in seconds between 3600 and 43200 |
number |
null |
no |
| iam_role_name |
Name of the IAM role |
string |
null |
no |
| iam_role_override_assume_policy_documents |
A list of IAM policy documents to override the default assume role policy document for the Karpenter controller IAM role |
list(string) |
[] |
no |
| iam_role_path |
Path of the IAM role |
string |
null |
no |
| iam_role_permissions_boundary_arn |
Permissions boundary ARN to use for the IAM role |
string |
null |
no |
| iam_role_policies |
Policies to attach to the IAM role in {'static_name' = 'policy_arn'} format |
map(string) |
{} |
no |
| iam_role_source_assume_policy_documents |
A list of IAM policy documents to use as a source for the assume role policy document for the Karpenter controller IAM role |
list(string) |
[] |
no |
| iam_role_tags |
A map of additional tags to add the the IAM role |
map(string) |
{} |
no |
| iam_role_use_name_prefix |
Determines whether the name of the IAM role (iam_role_name) is used as a prefix |
bool |
true |
no |
| name |
The name of the capability to add to the cluster |
string |
"" |
no |
| region |
Region where the resource(s) will be managed. Defaults to the Region set in the provider configuration |
string |
null |
no |
| tags |
A map of tags to add to all resources |
map(string) |
{} |
no |
| timeouts |
Create, update, and delete timeout configurations for the capability |
object({ create = optional(string) update = optional(string) delete = optional(string) }) |
null |
no |
| type |
Type of the capability. Valid values: ACK, KRO, ARGOCD |
string |
"" |
no |
| wait_duration |
Duration to wait between creating the IAM role/policy and creating the capability |
string |
"20s" |
no |
Apache 2 Licensed. See LICENSE for full details.