작성
·
1.2K
1
안녕하세요..
관련 자료를 찾아보았는데, 명확한 이야기가 없어서 혹시나 하고 질문을 드립니다.
Kustomize나 kubenetes yaml 파일을 commit으로 auto symc를 하는방법은 잘 나와있는데
Helm Sync하는 부분은 공식문서에도 어디에도 안보입니다.
그래서 Github Actions로
Helm value의 image tag 이름만 변경시키고,
Helm repository로 사용하고있는
Github Page의 패키지를 업데이트 하고, index.yaml을 변경하여 배포하는 형식으로 만들어 놓고.
이 Github Page를 ArgoCD의 repository연결을 한후, Application을 생성하여 Sync를 시도하니,
첫 연결시의 리소스와 Value만 고정되어있고,
이후 변경하는 Value에 대해서는 manual Sync로도 이미지 태그값이 변경되지 않습니다..
Github Page의 helm package와 index.yaml이 변경되어도 auto sync는 작동하지 않구요..
혹시 관심이 있으시다면 답변 부탁드리겠습니다..
긴글 읽어주셔서 감사합니다. ㅠ
답변 2
1
안녕하세요 강사 최일선입니다.
1. 매뉴얼 싱크
우선 헬름 차트 버전 업데이트 후 매뉴얼 싱크 방법 안내드립니다.
helmchart 다음 버전을 개발하고 해당 차트의 Chart.yaml에서 버전을 0.1.0에서 0.1.1로 수정하고 이미지의 버전도 1.16.0에서 1.16.1로 올렸습니다.
다시 차트를 package한 후 index.yaml 파일을 구성해서 index.yaml 파일을 업데이트 수행하시고
argoCD로 돌아와서 해당 앱의 디테일로 들어가서 수정 버튼을 누릅니다.
차트 버전 정보를 0.1.1로 수정하고 저장합니다.
그럼 싱크가 바로 진행되어 추가 rs와 애플리케이션이 배포됩니다.
파드의 디테일에서 정보를 확인하시면 1.16.1 nginx를 사용하고 있습니다.
2. 오토 싱크
이번엔 동일한 헬름 차트 버전으로 오토 싱크를 수행하기 위해 0.1.1 차트의 이미지를 1.16.2로 변경했습니다. 그리고 패키징을 다시 수행한 다음 index.html도 새로 만들었습니다. 변경 후 강제로 리프레시를 수행하면 out of sync 상태가 발생되며 오토 싱크가 시작됩니다. 아래 화면에서는 nginx:1.16.2 버전이 존재하지 않아서 이미지 풀링 에러가 발생하고는 있습니다만 이미지가 있었다면 정상 업데이트 되었을 것으로 예상하시면 됩니다.
원하시는 정보가 맞는지 모르겠네요 ㅎㅎ
확인 부탁드립니다. 감사합니다.
0
맞습니다.. 맞는데.. 조금 혼동이옵니다..ㅠ
1. Refresh 버튼을 눌러야 AUTO SYNC가 작동하는건가요?
Helm이외의 K8S YAML 이나 kustomize는 git push만 해도 알아서 AUTO SYNC가 되길래
HELM은 왜 안되지 싶었습니다.
그런데 REFRESH라는 버튼이 단순히 F5같은 새로고침 기능이 아니였나요?
새로고침과 다른 기능이 있는건가요?
REFRESH를 누르고 나면 AUTO SYNC가 되는것이라면...
이건 AUTO SYNC라는 생각이 안들고 MANUAL SYNC라는 생각이 들어서요...
REFRESH를 하지않고 SYNC를 누르면 제자리 걸음이 됩니다. (변경사항이 반영안됌)
게다가 AUTO SYNC인데 분명...
일반 REFRESH도 아니고 HARD REFRESH를 눌른뒤 SYNC를 다시 눌러줘야 한다는게 이해가 힘듭니다 ㅠ
2.
HELM을 HELM PACKAGE로 HELM REPOSITORY를 등록하지 않고,
GIT REPOSITORY로 등록하여 사용하여도 상관없을까요?
간간히 찾아보았을때 보이는것을 보면 HELM을 PACKAGE로 사용하지않고 등록하여 사용하는 경우도 있더라구요..
3. AppOfApps 패턴이라는게 어느정도 효용성이 있을까요..?