본문 바로가기

Data/Data Engineering

[Terraform] EKS iam terraform 배포시 "The configmap "aws-auth" does not exist" 에러 해결 방법

반응형

Terraform을 활용하여 EKS의 권한관련 IAM를 설정할때 아래와같이 코드를 추가하면 설정할수가있다

https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest

 

Terraform Registry

 

registry.terraform.io

  # aws-auth configmap
  manage_aws_auth_configmap = true

  aws_auth_roles = [
    {
      rolearn  = "arn:aws:iam::66666666666:role/role1"
      username = "role1"
      groups   = ["system:masters"]
    },
  ]

  aws_auth_users = [
    {
      userarn  = "arn:aws:iam::66666666666:user/user1"
      username = "user1"
      groups   = ["system:masters"]
    },
    {
      userarn  = "arn:aws:iam::66666666666:user/user2"
      username = "user2"
      groups   = ["system:masters"]
    },
  ]

다만, 배포를 하려고하면 아래와같이 에러문이 뜨게된다...

해석하자면 kube-systemdp 있는 aws-auth를 인식못하는것같다.

 

해결방법을 찾아보니 아래와같이 github issue에도 동일한 현상을 겪는사람들이 있었고

https://github.com/terraform-aws-modules/terraform-aws-eks/issues/2009

 

`Error: The configmap "aws-auth" does not exist` when deploying an EKS cluster with `manage_aws_auth_configmap = true` · Issue

Description When deploying an EKS cluster using manage_aws_auth_configmap = true, the deploy fails with the error: Error: The configmap "aws-auth" does not exist ✋ I have searched the ope...

github.com

결론적으로는 아래와같이 코드를 추가하니 해결이 되었다

# Error handling with "The configmap "aws-auth" does not exist"
# https://github.com/terraform-aws-modules/terraform-aws-eks/issues/2009
data "aws_eks_cluster" "default" {
  name = module.eks.cluster_id
}

data "aws_eks_cluster_auth" "default" {
  name = module.eks.cluster_id
}

provider "kubernetes" {
  host                   = data.aws_eks_cluster.default.endpoint
  cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority[0].data)
  token                  = data.aws_eks_cluster_auth.default.token
}

 

반응형