📋 개요
AgenticCP에서 AWS EKS 클러스터 및 노드 그룹을 관리할 수 있도록 연동합니다.
상위 기획 이슈: #170
멀티클라우드 환경에서 Kubernetes 기반 컨테이너 오케스트레이션을 관리하는 것이 목표입니다.
🎯 목표
- EKS 클러스터의 생성/조회/수정/삭제 기능 지원
- 노드 그룹(Node Group) 기본 관리
- 클러스터 상태/버전/엔드포인트 조회
- 태그 기반 관리
- (선택) Kubernetes API 연동은 별도 하위 이슈로 분리
🧩 기능 요구사항
-
클러스터 생명주기
- CreateCluster / DescribeCluster / UpdateClusterVersion / DeleteCluster
- VPC/Subnet/Security Group 등은 이미 연동된 리소스와 연계 (참조 ID 기반)
-
노드 그룹 관리 (1단계 – 최소 범위)
- Managed Node Group 생성/삭제
- 상태 조회
-
클러스터 운영
- 상태, 버전, 엔드포인트, 인증 정보 조회
- 로깅 설정은 P1 이후 범위로 분리 가능
-
Kubernetes API (선택적)
io.kubernetes:client-java 기반 클러스터 내부 리소스 조회/조작은 별도 이슈에서 진행
🏗️ 아키텍처 / 패턴
상위 이슈 #170에서 정의한 공통 패턴을 따릅니다.
-
domain/cloud/adapter/outbound/aws/eks/
AwsEksManagementAdapter – 클러스터/노드 그룹 생명주기
AwsEksDiscoveryAdapter – 클러스터/노드 그룹 조회
AwsEksMapper – 도메인 <-> AWS SDK 모델 매핑
AwsEksErrorTranslator (선택)
-
domain/cloud/port/outbound/eks/
EksManagementPort
EksDiscoveryPort
-
domain/cloud/service/eks/
EksPortRouter
EksUseCaseService
-
domain/cloud/controller/
EksController – EKS 관련 REST API 엔드포인트
-
공통 설정
config/AwsEksConfig
EksClient eksClient()
EksClient createEksClient(CloudSessionCredential session, String region)
-
Capability 등록
AwsCapabilityConfig.initializeEksCapabilities()
ProviderType.AWS, Service: "EKS", Resource: "Cluster"
🔧 기술 스택
- AWS SDK for Java v2
software.amazon.awssdk.services.eks.EksClient
- 주요 API:
CreateCluster, DescribeCluster, UpdateClusterVersion, DeleteCluster
- (선택) Kubernetes Java Client
io.kubernetes:client-java (추후 별도 이슈에서 사용)
✅ 체크리스트
📋 개요
AgenticCP에서 AWS EKS 클러스터 및 노드 그룹을 관리할 수 있도록 연동합니다.
상위 기획 이슈: #170
멀티클라우드 환경에서 Kubernetes 기반 컨테이너 오케스트레이션을 관리하는 것이 목표입니다.
🎯 목표
🧩 기능 요구사항
클러스터 생명주기
노드 그룹 관리 (1단계 – 최소 범위)
클러스터 운영
Kubernetes API (선택적)
io.kubernetes:client-java기반 클러스터 내부 리소스 조회/조작은 별도 이슈에서 진행🏗️ 아키텍처 / 패턴
상위 이슈 #170에서 정의한 공통 패턴을 따릅니다.
domain/cloud/adapter/outbound/aws/eks/AwsEksManagementAdapter– 클러스터/노드 그룹 생명주기AwsEksDiscoveryAdapter– 클러스터/노드 그룹 조회AwsEksMapper– 도메인 <-> AWS SDK 모델 매핑AwsEksErrorTranslator(선택)domain/cloud/port/outbound/eks/EksManagementPortEksDiscoveryPortdomain/cloud/service/eks/EksPortRouterEksUseCaseServicedomain/cloud/controller/EksController– EKS 관련 REST API 엔드포인트공통 설정
config/AwsEksConfigEksClient eksClient()EksClient createEksClient(CloudSessionCredential session, String region)Capability 등록
AwsCapabilityConfig.initializeEksCapabilities()ProviderType.AWS, Service:"EKS", Resource:"Cluster"🔧 기술 스택
software.amazon.awssdk.services.eks.EksClientCreateCluster,DescribeCluster,UpdateClusterVersion,DeleteClusterio.kubernetes:client-java(추후 별도 이슈에서 사용)✅ 체크리스트
EksManagementPort/EksDiscoveryPort정의AwsEksManagementAdapter/AwsEksDiscoveryAdapter구현AwsEksConfig설정 및 세션 기반 Client 팩토리 구현AwsCapabilityConfig)EksUseCaseService/EksController기본 플로우 구현