Skip to content

aws_eks_addon pod_identity_associationย #3520

@cdenneen

Description

@cdenneen

Errors:

updating EKS Add-On (dev-use1-400:cert-manager): operation error EKS: UpdateAddon, https response error StatusCode: 400, RequestID: REDACTED, InvalidParameterException: Pod Identity feature is not supported for addon version: v1.18.2-eksbuild.2

updating EKS Add-On (dev-use1-400:amazon-cloudwatch-observability): operation error EKS: UpdateAddon, https response error StatusCode: 400, RequestID: REDACTED, InvalidParameterException: Service account amazon-cloudwatch in pod identity configuration is not supported for addon amazon-cloudwatch-observability

I know the cert-manager one was working so not sure why that would be now, unless its a bug in the latest EKS add-on version of cert-manager?

The Service Account for amazon-cloudwatch is same one used in the pod-identity module but maybe the "hyphen" here is causing the issue with updating, does it need to be escaped or something?

Code:

module "eks" {
  source  = "terraform-aws-modules/eks/aws"
  version = "21.3.1"
...
  addons = {
    aws-efs-csi-driver = {
      most_recent                 = true
      resolve_conflicts_on_update = "OVERWRITE"
      pod_identity_association = [{
        role_arn        = try(module.aws_efs_csi_pod_identity.iam_role_arn, null)
        service_account = "efs-csi-controller-sa"
      }]
    }
    external-dns = {
      most_recent                 = true
      resolve_conflicts_on_update = "OVERWRITE"
      pod_identity_association = [{
        role_arn        = try(module.external_dns_pod_identity.iam_role_arn, null)
        service_account = "external-dns"
      }]
    }
    cert-manager = {
      most_recent                 = true
      resolve_conflicts_on_update = "OVERWRITE"
      pod_identity_association = [{
        role_arn        = try(module.cert_manager_pod_identity.iam_role_arn, null)
        service_account = "cert-manager"
      }]
    }
    amazon-cloudwatch-observability = {
      most_recent                 = true
      resolve_conflicts_on_update = "OVERWRITE"
      pod_identity_association = [{
        role_arn        = try(module.cloudwatch_pod_identity.iam_role_arn, null)
        service_account = "amazon-cloudwatch"
      }]
    }
    snapshot-controller = {
      most_recent                 = true
      resolve_conflicts_on_update = "OVERWRITE"
    }
  }
...
}

Plan

  ~ resource "aws_eks_addon" "this" {
        id                          = "dev-use1-400:amazon-cloudwatch-observability"
        tags                        = {
            "Environment"   = "production"
            "Service"       = "EKS"
            "Support Team"  = "Platform Engineering"
            "Terraform"     = "true"
        }
        # (11 unchanged attributes hidden)
      + pod_identity_association {
          + role_arn        = "arn:aws:iam::1234567890:role/dev-use1-400-AmazonEKS_Observability_Role"
          + service_account = "amazon-cloudwatch"
        }
        # (1 unchanged block hidden)
    }
  ~ resource "aws_eks_addon" "this" {
        id                          = "dev-use1-400:cert-manager"
        tags                        = {
            "Environment"   = "production"
            "Service"       = "EKS"
            "Support Team"  = "Platform Engineering"
            "Terraform"     = "true"
        }
        # (11 unchanged attributes hidden)
      + pod_identity_association {
          + role_arn        = "arn:aws:iam::1234567890:role/dev-use1-400-cert-manager"
          + service_account = "cert-manager"
        }
        # (1 unchanged block hidden)
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions