MaruOps Git·GitOps 실습 자료 (2026-10-18)

app/ 파일은 기존 gitops-demo 저장소 루트에 필요한 항목만 복사합니다.
기존 .git 또는 프로젝트 파일을 덮어쓰기 전에 차이를 확인합니다.
Python 3 표준 라이브러리만 사용합니다.
Linux: python3 -m unittest discover -v
Windows: py -3 -m unittest discover -v

server/: Docker와 Compose가 있는 별도 실습 호스트에서 사용합니다.
.env는 포함하지 않았습니다. 15편의 방법으로 새 비밀번호를 생성합니다.
compose.yaml은 localhost 13000/12222만 공개합니다.
backup.sh는 Gitea를 잠시 중지합니다. 새 절대 백업 경로를 인자로 받습니다.
restore.sh는 복원 준비만 하며 실제 복원은 16편에 따라 다른 프로젝트·포트·빈 볼륨으로 진행합니다.

config/: gitops-config 저장소 루트에 복사할 environments 디렉터리입니다.
argocd/: 관리자용 부트스트랩 예제입니다. 실제 저장소 주소를 입력해야 합니다.
실제 Kubernetes 적용은 전용 실습 클러스터에서만 진행합니다.
secrets/: training-only 값만 가진 로컬 암호화 학습 예제입니다.
GitOps Application 경로에 복사하지 않습니다. 개인 키는 포함하지 않았습니다.

git-scenarios.sh는 /work/examples/app 마운트를 전제로 한 작성 검증용 스크립트입니다.
일반 독자는 각 편의 명령을 따르거나 이 마운트 구조를 별도로 준비합니다.
검증 결과: Rocky Linux 9와 Ubuntu 24.04 컨테이너의 Git 시나리오와 앱 테스트,
테스트 실패 시 패키징 중단, Gitea 28.1.0 웹 설치·HTTP clone/push,
별도 Compose 프로젝트의 DB·파일 복원과 인증 후 저장소 파일 조회,
SOPS/age 예제 암호화·복호화, YAML 구문·정적 일관성 검사.
Windows GUI, 실제 GitHub/Jenkins 호스팅 작업, Kubernetes·Argo CD 배포,
Gitea LFS·외부 저장소·SSH 전송의 전체 복원 시험은 수행하지 않았습니다.

예제는 운영 환경을 대신하지 않습니다. 실제 값과 결과를 각 글의 확인 기준과 대조하세요.
글: https://blog.maruops.com/
