Terraform을 통해 EKS Cluster 생성 및 Add-on 설치 시에 아래와 같이 내가 방금 Terraform을 통해 생성한 EKS Cluster가 없다는 ERROR가 발생하여, Add-on 설치를 실패했다는 로그가 나온다.
Error: creating EKS Add-On (alin-test-cluster:vpc-cni): ResourceNotFoundException: No cluster found for name: alin-test-cluster.
│ {
│ RespMetadata: {
│ StatusCode: 404,
│ RequestID: "27b9e182-4dc9-4cd7-a2e9-efaa0a858699"
│ },
│ ClusterName: "alin-test-cluster",
│ Message_: "No cluster found for name: alin-test-cluster."
│ }
│
│ with aws_eks_addon.vpc_cni,
│ on main.tf line 39, in resource "aws_eks_addon" "vpc_cni":
│ 39: resource "aws_eks_addon" "vpc_cni" {
│
내 코드에서 Add-on 설치 부분을 보면 단순히 Cluster와 어떤 Add-on인지에 대해서만 명시되어 있다.
Terraform을 통한 EKS Cluster가 생성 되기 전 Add-on 설치가 먼저 이루어지는 바람에 Add-on 설치가 실패된 것이다.
###############################################################################
# EKS Add-on
################################################################################
resource "aws_eks_addon" "vpc_cni" {
cluster_name = var.eks_cluster_name
addon_name = "vpc-cni"
addon_version = var.vpc_cni_version
}
depens_on 을 사용하여 EKS Cluster가 생성 된 후 Add-on이 설치될 수 있도록 한다.
###############################################################################
# EKS Add-on
################################################################################
resource "aws_eks_addon" "vpc_cni" {
cluster_name = var.eks_cluster_name
addon_name = "vpc-cni"
addon_version = var.vpc_cni_version
depends_on = [aws_eks_cluster.eks_cluster]
}
Terraform 생성 로그를 보면 depens_on을 사용하여 종속성을 명시해준 이후에 Cluster 생성 후 Add-on이 설치되는 것을 확인할 수 있었다.

depens_on 이라는 블록을 사용하게 되면 Value에 중괄호 []를 사용하여 작성하게 되는데요.
이 중괄호는 여러 개의 리소스에 의존할 수 있기 때문에 리스트(Slice) 형태로 입력 받습니다.
depends_on = [
aws_eks_cluster.eks_cluster,
aws_iam_role.eks_role
]
위 코드와 같이 여러 개의 의존성을 가질 수 있다라고 알고 있으면 됩니다.