Skip to content

[ Infra ] 운영 배포 파이프라인이 시크릿 미설정으로 계속 실패한다 #94

Description

@RosieOh

💚 어떤 기능인가요?

main 에 머지해도 운영 배포가 되지 않는다. 배포용 시크릿이 비어 있어
Deploy to Production (Blue/Green) 잡이 첫 스텝에서 죽는다.

머지결과
#78 (2026-08-12)Test/Build/Scan 통과, Deploy to Production 실패
#80 (2026-08-22)Test/Build/Scan 통과, Deploy to Production 실패
success 3. Determine deployment strategy
failure 4. Deploy to target environment ← test -n "${{ secrets.PRODUCTION_DEPLOY_HOST }}"
skipped 5. Wait for target instance to be ready
skipped 6. Switch traffic to new environment
failure 8. Rollback if needed ← PRODUCTION_ROUTER_SWITCH_URL 도 비어 있음

로그에서 PRODUCTION_HEALTH_URL: 이 공란으로 찍힌다.

컨테이너를 띄우기 전에 멈추므로 운영 인스턴스를 건드리지는 않는다. 장애는 없다.
문제는 그 반대다 — 아무것도 배포되지 않는데 파이프라인이 그걸 조용히 넘기지 않고
매번 빨간불로 끝나서, 이제는 그 빨간불이 정상처럼 보인다.

지금 당장 문제가 되는 이유

#80 이 P0 두 건(#82 가입 시 role 신뢰, #83/users 권한 상승)을 고쳤지만
운영에는 반영되지 않았다. 코드가 main 에 있을 뿐이다.
수동 배포를 하지 않으면 "누구나 관리자가 될 수 있는" 상태가 그대로 남는다.

확인이 필요한 시크릿

Deploy to Stagingdevelop 브랜치용이라 지금은 skip 된다. 운영 쪽만 보면 된다.

  • PRODUCTION_DEPLOY_HOST
  • PRODUCTION_DEPLOY_USER
  • PRODUCTION_HEALTH_URL
  • PRODUCTION_ROUTER_STATUS_URL
  • PRODUCTION_ROUTER_SWITCH_URL
  • PRODUCTION_ROUTER_TOKEN
  • PRODUCTION_TARGET_HEALTH_URL_TEMPLATE

또 SSH 로 접속하는데 워크플로에 개인키를 로드하는 스텝이 없다.
ssh -o StrictHostKeyChecking=no ... 만 있어서, 시크릿을 채워도 인증에서 다시 막힐 가능성이 크다.
(테스트·스캔 잡에 배포키를 올리지 않으려고 의도적으로 뺀 흔적이 주석에 있는데,
정작 배포 잡에도 추가되지 않았다.)

배포 시 함께 필요한 환경변수

#80 에서 인증 메일 기준 주소를 필수로 바꿨다. 없으면 기동이 실패한다(의도된 fail-fast).

✅ To Dos

  • 운영 배포 시크릿 7종 설정
  • 배포 잡에 SSH 개인키 로드 스텝 추가 (webfactory/ssh-agent 등)
  • /opt/carecode/.envEMAIL_VERIFICATION_BASE_URL 추가
  • 파이프라인이 실제로 끝까지 도는지 한 번 확인 (블루/그린 전환 + 롤백 경로 포함)
  • 그때까지는 FIX : 권한 상승 경로 차단과 커뮤니티 N+1 개선 #80 의 보안 수정을 수동 배포로 먼저 반영
  • 배포 실패가 눈에 띄도록 알림 연결 (현재 Notify deployment status 는 echo 만 한다)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:infra인프라/설정/배포priority:P0즉시 대응 필요type:bug버그/회귀 이슈

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions