dittos / animeta

Manage your anime watch history.
https://animeta.net
Other
56 stars 6 forks source link

푸시 방식 배포 #103

Closed dittos closed 1 year ago

dittos commented 1 year ago

문제점

현재 Keel을 사용해서 Docker 이미지가 업데이트될 때 k8s Deployment가 수정되는 방식(pull 방식)을 사용하고 있다.

개선 방향

GitHub Actions에서 Docker 이미지 업데이트 후에 k8s Deployment를 직접 수정한다.

계획

일단은 백엔드 배포에만 적용

✅ GitHub Actions에서 k8s 클러스터에 접근할 수 있도록 한다

.kube/config를 GitHub Secret으로 저장하고 액션에서 사용

(참고: https://docs.k3s.io/cluster-access#accessing-the-cluster-from-outside-with-kubectl)

GitHub Secret에 멀티 라인 데이터를 넣기가 어렵다; 다음과 같이 base64 인코딩해서 넣는다.

sudo cat /etc/rancher/k3s/k3s.yaml

edit yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://aws.dittos.pe.kr:6443
    tls-server-name: 127.0.0.1

base64 encode

cat edited.yaml | base64 -w 0; echo

✅ Docker 이미지 빌드 완료 후 k8s Deployment를 수정한다

작업 전 keel 설정을 제거한다

✅ 배포 전 DB 마이그레이션 작업 실행한다