배포 개체의 자동 업그레이드 제한
릴리스 후보를 시험하는 동안 다른 버전으로 자동 업그레이드되지 않게 하려면, 제품의 자동 승격 파이프라인에 포함되지 않은 전용 릴리스 채널을 사용합니다. 원하는 릴리스만 그 채널에 추가하고 대상 배포 개체가 그 채널을 추적하도록 구성합니다.
전용 채널 만들기
Settings & Configuration → Release channels → Create release channel에서 채널을 만듭니다. 기존 사용자 지정 채널을 사용할 수도 있습니다. 아래는 FREEZE_VERSIONS_FOR_DEMO라는 가상의 채널 예시입니다.
채널이 제품의 자동 승격 파이프라인에 들어가 있으면 새 릴리스가 자동으로 추가될 수 있으므로 동결 목적에 맞는지 확인합니다.
개체의 구독 채널 변경
- 배포 환경의 Settings → Edit settings manually를 엽니다.
- Edit를 선택합니다.
- 대상 배포 개체의
release-channel을 전용 채널로 바꿉니다.
release-channel: FREEZE_VERSIONS_FOR_DEMO
이 필드는 대상 배포 개체 항목에서 entity-locator와 같은 수준에 둡니다. 제품의 버전별 overrides 안에 넣는 Helm values가 아닙니다. 기존 환경 파일 전체를 위 한 줄로 교체해서도 안 됩니다.
- Review로 변경을 검토합니다.
- Submit으로 환경 설정 변경 요청을 제출합니다.
전용 채널에서도 계속되는 관리
채널을 바꾸어도 Apollo는 배포 개체에 대한 계획을 계속 평가합니다. 그 채널에 새 릴리스를 수동 또는 자동으로 추가하면 새 버전으로 바뀔 수 있으며, 회수 정책도 계속 적용됩니다.
현재 릴리스가 회수되었는데 해당 채널 안에 전환 전략을 만족하는 대체 릴리스가 없으면, 적합한 릴리스를 추가하기 전까지 회수된 버전에 머무를 수 있습니다.
자동 업그레이드를 다시 허용하려면 배포 개체의 구독 채널을 원래 채널로 변경합니다.
긴급 명령과 억제 시간대를 함께 쓰는 방식
특정 버전을 명령으로 강제 적용한 뒤 변경 억제 시간대로 자동 변경을 막는 방법도 있지만 다음 문제가 있습니다.
- 명령은 제품 의존 관계 제약을 무시하므로 호환성이 깨질 수 있습니다.
- 억제 시간대가 만료되거나 실수로 삭제되면 업그레이드가 다시 가능해집니다.
- 억제 시간대는 버전 변경뿐 아니라 새 구성 재정의 적용 등 다른 변경도 막습니다.
따라서 버전 선택만 제어하려는 목적에는 전용 릴리스 채널을 사용하는 편이 관리 범위를 명확히 구분할 수 있습니다.