피드로 돌아가기
Dev.toDevOps
원문 읽기
Tekton Results를 활용한 Gradle-Ansible 빌드 버전 동기화 전략
docker9
AI 요약
Context
Tekton의 컨테이너 환경은 실행 후 즉시 소멸하는 ephemeral 특성 보유. Gradle 빌드 단계에서 생성된 동적 버전 정보를 후속 Ansible 배포 단계로 전달하는 메커니즘 부재. 빌드 번호 불일치 시 배포 프로세스가 중단되는 구조적 한계 존재.
Technical Solution
- Gradle 내 전용 헬퍼 태스크를 생성하여 빌드 버전을 텍스트 파일로 내보내는 메타데이터 추출 구조 설계
- Tekton Results를 활용해 ephemeral 컨테이너 간 데이터를 공유하는 전역 변수 저장소 구축
- 빌드 단계에서 생성된 버전 파일을 Tekton Results 경로로 리다이렉션하여 파이프라인 메모리에 저장하는 데이터 흐름 구현
- Ansible 태스크의 파라미터로 Tekton Results 값을 직접 주입하여 파일명을 동적으로 결정하는 느슨한 결합 구조 적용
- YAML 수정이 불가능한 환경을 대비해 Ansible find 모듈로 최신 RPM 파일을 탐색하는 폴백(Fallback) 전략 마련
Key Takeaway
단일 진실 공급원(Single Source of Truth) 원칙을 적용하여 버전 정의를 빌드 도구에 집중시키고, 인프라 도구 간의 의존성을 제거한 데이터 전달 설계의 중요성.
실천 포인트
CI/CD 파이프라인 내 단계별 데이터 전달 시, 환경 변수나 파일 공유보다 Tekton Results와 같은 플랫폼 전용 상태 관리 도구를 우선 검토할 것