v2.2에서 v2.3으로 업그레이드
v2.2에서 v2.3으로 업그레이드 (v2.2 to 2.3)
v2.3에서는 Argo CD Notifications와 ApplicationSet가 Argo CD에 통합되어 따로 설치할 필요가 없어졌어요. 베이스 이미지에서 Python도 제거되었으므로 Python에 의존하는 구성 관리 플러그인(CMP)을 쓴다면 커스텀 이미지를 만들어야 해요.
출처: 문서
본문
Argo CD Notifications와 ApplicationSet가 Argo CD에 통합
Argo CD Notifications와 ApplicationSet이 이제 Argo CD의 일부예요. 더 이상 따로 설치할 필요 없어요. Notifications와 ApplicationSet 컴포넌트는 기본 Argo CD 설치 매니페스트에 번들로 포함돼요.
번들 매니페스트는 이전 버전의 드롭인(drop-in) 대체품이에요. Kustomize로 매니페스트를 함께 묶고 있었다면, https://github.com/argoproj-labs/argocd-notifications 와 https://github.com/argoproj-labs/applicationset 참조만 제거하면 돼요.
argocd-notifications helm 차트를 사용하고 있다면, 차트 값을 argo-cd 차트 값의 notifications 섹션으로 옮기면 돼요. 대부분의 값은 그대로 유지되지만, 자세한 내용은 자신에게 해당하는 값을 확인해 보세요.
kubectl apply를 사용한다면 조치가 필요 없어요.
추가 Argo CD 바이너리 구성
이미지에서 비-Linux Argo CD 바이너리(Darwin amd64 및 Windows amd64)와 UI 도움말 페이지의 관련 다운로드 버튼을 제거했어요 (#7668).
제거된 바이너리는 여전히 릴리스 자산에 포함되며, #7755에서 그 구성을 가능하게 했어요. argocd-cm ConfigMap에 다음을 추가하면 다른 OS 아키텍처용 다운로드 버튼을 추가할 수 있어요:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
namespace: argocd
labels:
app.kubernetes.io/name: argocd-cm
app.kubernetes.io/part-of: argocd
data:
help.download.linux-arm64: "path-or-url-to-download"
help.download.darwin-amd64: "path-or-url-to-download"
help.download.darwin-arm64: "path-or-url-to-download"
help.download.windows-amd64: "path-or-url-to-download"
베이스 이미지에서 Python 제거
Python에 의존하는 구성 관리 플러그인(Config Management Plugin)을 사용한다면, Python을 설치하기 위해 Argo CD 베이스 위에 커스텀 이미지를 빌드해야 해요.
Kustomize 버전 업그레이드
번들로 제공되는 Kustomize 버전이 4.2.0에서 4.4.1로 업그레이드됐어요.
Helm 버전 업그레이드
번들로 제공되는 Helm 버전이 3.7.1에서 3.8.0으로 업그레이드됐어요.
2.3.7에서 SHA-1 서명 해시 알고리즘을 사용하는 비공개 저장소 SSH 키 지원 제거
Argo CD 2.3.7은 베이스 이미지를 Ubuntu 21.04에서 Ubuntu 22.04로 업그레이드했고, 이로 인해 OpenSSH가 8.9로 올라갔어요. 8.8부터 OpenSSH는 ssh-rsa SHA-1 키 서명 알고리즘 지원을 제거했어요.
서명 알고리즘은 키를 생성할 때 사용되는 알고리즘과 다릅니다. 키를 업데이트할 필요는 없어요.
서명 알고리즘은 연결이 설정될 때 SSH 서버와 협상돼요. 클라이언트가 허용되는 서명 알고리즘 목록을 제시하고, 서버에 일치하는 것이 있으면 연결이 진행돼요. 최신 git 제공자의 대부분 SSH 서버에서는 ssh-rsa 외에 허용 가능한 알고리즘을 사용할 수 있어야 해요.
Argo CD 2.3.7로 업그레이드하기 전에, SSH 인증을 사용하는 git 제공자가 rsa-ssh보다 최신 알고리즘을 지원하는지 확인하세요.
- SSH 버전이 >= 8.9 (Argo CD가 사용하는 버전)인지 확인하세요. 아니라면 계속하기 전에 업그레이드하세요.
ssh -V
예시 출력: OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
- 최신 OpenSSH 버전을 갖추면 OpenSSH 8.8 릴리스 노트의 지침을 따르세요:
호스트 인증에 약한 ssh-rsa 공개 키 알고리즘을 사용하는 서버인지 확인하려면, ssh(1)의 허용 목록에서 ssh-rsa 알고리즘을 제거한 뒤 연결을 시도해 보세요: ssh -oHostKeyAlgorithms=-ssh-rsa user@host
호스트 키 검증이 실패하고 다른 지원되는 호스트 키 유형도 없다면, 해당 호스트의 서버 소프트웨어를 업그레이드해야 해요.
서버가 허용 가능한 버전을 지원하지 않으면 다음과 유사한 오류가 발생해요:
$ ssh -oHostKeyAlgorithms=-ssh-rsa vs-ssh.visualstudio.com
Unable to negotiate with 20.42.134.1 port 22: no matching host key type found. Their offer: ssh-rsa
이것은 서버가 지원하는 키 서명 알고리즘을 업데이트해야 하며, Argo CD가 그 서버에 연결하지 못한다는 뜻이에요.
우회 방법 (Workaround)
OpenSSH 8.8 릴리스 노트는 서버의 키 서명 알고리즘 구성을 변경할 수 없을 때 사용할 수 있는 우회 방법을 설명해요.
호환성 문제는 업그레이드되지 않았거나 SSH 프로토콜의 개선을 밀접하게 따라가지 않은 오래된 SSH 구현에 연결할 때 더 자주 발생해요. 이러한 경우에는 HostkeyAlgorithms 및 PubkeyAcceptedAlgorithms 옵션을 통해 RSA/SHA1을 선택적으로 다시 활성화하여 연결 및/또는 사용자 인증을 허용해야 할 수 있어요. 예를 들어 ~/.ssh/config의 다음 스탠자는 단일 대상 호스트에 대한 호스트 및 사용자 인증에서 RSA/SHA1을 활성화해요: Host old-host HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
RSA/SHA1은 레거시 구현이 업그레이드되거나 다른 키 유형(예: ECDSA 또는 Ed25519)으로 재구성될 때까지의 임시 조치로만 활성화하는 것이 좋아요.
이를 Argo CD에 적용하려면, 원하는 ssh 구성 파일이 담긴 ConfigMap을 만들고 /home/argocd/.ssh/config에 마운트하면 돼요.
더 알아보기 (Learn more)
- 이 문서의 원문: v2.2 to 2.3
- Argo CD 공식 문서: https://argo-cd.readthedocs.io