12P by xguru 1달전 | favorite | 댓글과 토론
  • Kubernetes를 사용하지 않는 사람들을 위한 GitOps 툴
  • 원격 git 저장소를 감시하고, 변경 사항을 pull하며, 서버(서비스) 프로세스에 HUP 시그널을 보내 리로드
  • 각 서비스는 실제로 필요한 파일만 보게 되는 sparse(하지만 전체 히스토리를 가진) git 체크아웃이 수행됨
  • 서비스에 Git 내 파일에 대한 접근 권한을 부여하기 위해 여러 바인드 마운트가 설정됨
  • 대상 디렉토리가 존재하지 않으면 현재 사용자로 생성됨(지정된 경우)
  • 단순히 리포지토리를 가져오는 것 이상의 기능을 제공하지는 않지만, Kubernetes와 같은 환경에 의존하지 않고도 GitOps 워크플로우를 사용할 수 있음
  • 서비스를 프로비저닝하는 데 사용하는 Git 저장소에는 각 서비스에 대해 최소한 하나의 (하위)디렉토리가 있어야 함
  • 지정된 경우 패키지를 설치하지만, 더 나은 방법이 있다고 가정하면 업그레이드나 다운그레이드는 하지 않음
  • 원격 인터페이스는 인증에 SSH 키를 사용함
  • 다음과 같은 기능이 구현됨:
    • Metrics: Git 해시를 내보내므로 롤아웃을 추적할 수 있음
    • Diff detection: metrics나 gitopperctl을 사용해 가능함
    • Out of band rollbacks: gitopperctl을 사용해 일반 Git 워크플로우를 우회함
    • No client side processing: 파일은 Git 저장소에 있는 그대로 사용됨
    • Canarying: 서비스에 체크아웃할 다른 브랜치를 제공할 수 있음