컨베이어 CI 드라이버 런타임 기여 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
CI/CD 도구 개발자, Conveyor CI SDK 기여자, DevOps 엔지니어
(중급~고급 수준: Docker, API 인터페이스, 코드 기여 프로세스 이해 필요)
핵심 요약
- 컨베이어 CI 드라이버 런타임은
Driver Manager
와Client Library
로 구성된 SDK로, 드라이버 실행 환경을 제공 - 핵심 기능: 이벤트 시스템(NATS Jetstream), 실시간 로깅(Grafana Loki), 수평 확장, API 서버 연동, 관찰성(메트릭/트레이싱/로깅)
- 기여 프로세스: Docker 환경 설정 →
compose.yml
및loki.yml
다운로드 →fork
→branch
생성 → 테스트 작성 → PR 제출
섹션별 세부 요약
1. 런타임 구성 요소
- Driver Manager:
- NATS Jetstream을 통해 messages
스트림에서 이벤트 수신 및 필터링
- Reconcile
함수 실행: payload
, event
, driverName
, logger
매개변수 전달
- 로깅 기능: driver:{DRIVER_NAME}:logs:{RUN_ID}
주제로 실시간 스트리밍
- Client Library:
- Conveyor CI API Server와의 HTTP 통신
- API 호스트, 포트 정보 가져오기
2. 개발 환경 설정
- 필수 도구: Docker 설치 및
compose.yml
,loki.yml
다운로드 - 실행 명령:
docker compose up
또는docker compose up -d
- 포트 설정:
CONVEYOR_SERVER_HOST
및CONVEYOR_SERVER_PORT
환경 변수 사용
3. 기여 워크플로우
- 이슈 신고:
- 명확한 제목, 재현 단계, 예상 결과, 실제 결과 포함
- 기존 이슈 중복 확인 필수
- 기능 추가:
- 기능의 필요성, 사용 시나리오, 구현 제안 명시
- 요청은 단일 변경에 집중
- 코드 기여:
- fork
→ clone
→ branch
생성 → 변경사항 반영 → 테스트 작성 → 커밋 → push
→ PR 제출
- PR 기준: 단일 변경사항, 테스트 완료, 코드 스타일 준수
결론
- Docker와 NATS Jetstream 기반 환경 설정을 통해 런타임 테스트 가능
- PR 제출 시 테스트 커버리지 확대, 문서 개선, 코드 스타일 준수를 강조
- 관찰성 플랫폼 구현을 위해 메트릭/트레이싱/로깅 기능을 반드시 통합해야 함