본문 바로가기
DevOps/Terraform

AWS EKS terraform 에러 : https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists.

by Rainbound-IT 2025. 7. 28.
반응형

 

 

helm provider를 eks와 동시에 배포하니 

EntityAlreadyExists: Provider with url https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists.

라는 문제 발생

 

발생원인

  1. enable_irsa = true → module.eks는 OIDC 리소스를 생성하게 됨
  2. 동시에 Helm 리소스는 다음과 같이 module.eks의 출력을 참조함:
    provider "helm" {
      kubernetes {
        host                   = module.eks.cluster_endpoint
        cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)
        token                  = data.aws_eks_cluster_auth.main.token
      }
    }


  3. 이로 인해 Terraform은 helm_release 리소스도 module.eks에 의존한다고 판단
  4. 하지만 helm_release는 provider 초기화 단계에서 클러스터 정보를 먼저 요구함
  5. 그 결과, helm_release 실행이 EKS 클러스터 생성 중에 병렬로 실행되면서
  6. module.eks 내부에서 OIDC를 만들기도 전에 AWS가 자동으로 OIDC를 생성해버릴 수 있음
  7. 이후 Terraform이 다시 OIDC를 만들려고 하면 → EntityAlreadyExists

 

oidc를 수동으로 설정하는것보다 State를 분리해주는게 가장 좋아보여서 그렇게 하기로 결정

반응형

댓글