본문 바로가기
공부/IaC

[Terraform/EKS/k8s] import 시 Kubernetes: Unauthorized

by haejang 2022. 6. 28.
728x90
728x90

 

상황


Terraform의 한 모듈 내에서 EKS Cluster와 k8s 리소스들을 같이 프로비저닝 중

k8s 리소스 블럭들을 추가하였고, 기존 cluster 내부 리소스들을 import 해야하는 상황

## k8s provider 설정

data "aws_eks_cluster_auth" "cluster" {
  name = aws_eks_cluster.this.id
}

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

 

에러


plan : 잘 돌아감

apply : 동일한 이름의 리소스가 이미 존재한다고 에러남

import : Unauthorized 에러남;;;;;;

 

해결


도대체 왜 unauthorized 인지 이해가 안갔으나, 아래 이슈를 정독하고 해결함

https://github.com/hashicorp/terraform-provider-kubernetes/issues/918

 

Kubernetes Provider 1.11.3 "Unauthorized" · Issue #918 · hashicorp/terraform-provider-kubernetes

Terraform Version and Provider Version Terraform v0.12.26 provider.archive v1.3.0 provider.aws v2.70.0 provider.helm v1.2.3 provider.kubernetes v1.11.3 provider.null v2.1.2 Affected Resource(s) kub...

github.com

 

k8s provider의 인수로 사용하는 eks cluster의 token 값은 15분 동안만 유효하다고 한다

따라서 apply 할 땐 생기지 않는 권한 에러가 import 할 때만 나타나는 것이다

 

-> terraform refresh 명령을 내린 후 import 하면 잘 됨

 

 

 

 

 

 

728x90
728x90

댓글