- Remove curl dependency (not available in alpine/git)
- Use sed to directly update deployment.yaml files
- Change directory to hgzero-back/kustomize/base
- Update services list: user, meeting, stt, notification
Fix: curl not found error in manifest update stage
문제:
- PostgreSQL에서 order는 예약어
- INSERT 구문에서 'syntax error at or near "order"' 오류 발생
해결:
- @Column(name = "\"order\"") 로 수정
- SQL 생성 시 "order"로 이스케이프되어 예약어 충돌 방지
영향:
- MinutesSectionEntity INSERT/UPDATE 정상 동작
- 회의 메모 저장 기능 복구
File: meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MinutesSectionEntity.java:40
주요 변경사항:
- podTemplate 사용하여 Kubernetes Pod에서 실행
- 3개 컨테이너 사용: podman, gradle, git
- mgoltzsche/podman 이미지로 Podman 빌드
- gradle:jdk21 이미지로 Gradle 빌드
- alpine/git으로 manifest 저장소 업데이트
컨테이너별 역할:
- podman: Docker 이미지 빌드 및 ACR 푸시
- gradle: Gradle 빌드 및 JAR 생성
- git: Kustomize로 manifest 저장소 업데이트
리소스 최적화:
- Pod 자동 정리 (idleMinutes: 1, terminationGracePeriodSeconds: 3)
- 컨테이너별 리소스 제한 설정
- emptyDir 볼륨으로 Gradle 캐시 및 Podman 소켓 공유
Fix: Docker 대신 Podman 사용으로 Jenkins 환경 호환성 개선
- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
- ExtractedTodoDTO에 assignee 필드 추가 (담당자 정보)
- EndMeetingService에서 AI 추출 담당자 정보 매핑
- Python AI 서비스 모델 및 프롬프트 업데이트
- JDK 21 압축 해제 완료까지 대기 루프 추가
- Gradle 빌드 시 JAVA_HOME과 PATH 명시적 export
- java -version으로 사용 중인 Java 버전 확인
- JDK 경로를 직접 사용하여 Java 17 우선순위 문제 해결
Fix: JAVA_HOME is set to an invalid directory 오류 해결
- Setup Java stage에서 JAVA_HOME 명시적 설정
- tool() 함수로 Jenkins에 등록된 JDK21 사용
- PATH에 JDK bin 디렉토리 추가
- java -version으로 설정 확인
Fix: Toolchain installation '/opt/bitnami/java' does not provide JAVA_COMPILER 오류 해결
- Jenkinsfile: GitHub Actions 대체 Jenkins Pipeline 구축
- 5개 백엔드 서비스 빌드 (user, meeting, stt, ai, notification)
- Gradle 빌드 및 SonarQube 분석 (선택사항)
- Docker 이미지 빌드 및 ACR 푸시
- Manifest 저장소 업데이트 (ArgoCD 연동)
- 환경별 배포 지원 (dev/staging/prod)
- deployment/jenkins/JENKINS_SETUP.md: Jenkins 설정 가이드
- Credentials 설정 방법
- JDK 21 및 SonarQube 설정
- Pipeline Job 생성 및 실행 가이드
- 트러블슈팅 가이드
- 사용 이유: GitHub Actions 차단으로 인한 대체 CI/CD 구축
- AI 서비스와 Meeting 서비스 통합 개선
- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
- EndMeetingService에서 AI 서비스 타임아웃 처리 개선
- AIServiceClient에 상세한 에러 로깅 추가
- 회의록 consolidate 프롬프트 개선
- Todo 추출 로직 강화 (자연스러운 표현 인식)
- 안건별 decisions 필드 추가 (대시보드 표시용)
- 담당자 패턴 인식 개선
- Kubernetes 배포 설정 개선
- meeting-service.yaml에 AI_SERVICE_URL 환경변수 추가
- AI_SERVICE_TIMEOUT 설정 추가
- 데이터베이스 관리 SQL 스크립트 추가
- check-agenda-sections.sql: 안건 섹션 확인
- cleanup-test-data.sql: 테스트 데이터 정리
- insert-test-data-final.sql: 최종 테스트 데이터
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
문제:
- @ConditionalOnExpression의 SpEL 표현식 오류로 EventHubConfig가 활성화되지 않음
- NoOpEventPublisher가 대신 사용되어 Event Hub로 메시지가 발행되지 않음
해결:
- @ConditionalOnProperty 사용으로 변경
- eventhub.connection-string 속성 존재 여부로 Bean 활성화 제어
영향:
- EventHub 설정이 있을 때 EventHubPublisher가 정상 활성화됨
- 회의 시작/종료, Todo 할당 등의 이벤트가 Event Hub로 발행됨
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AI 서비스: Redis 캐싱 및 EventHub 통합 개선
- STT 서비스: 오디오 버퍼링 및 변환 기능 추가
- 설정 파일 업데이트
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>