변경 억제 시간대와 변경 계획 취소
변경 억제 시간대(Suppression window)는 배포 환경 또는 특정 배포 개체에 대한 변경 계획 발행을 막습니다. 유지보수 시간대보다 우선하므로, 유지보수가 허용된 시간이라도 억제 설정이 활성화되어 있으면 새 변경 계획을 발행하지 않습니다.
적용 범위는 두 가지입니다.
| 범위 | 억제 대상 |
|---|---|
| 배포 환경 수준 | 배포 환경과 그 안의 모든 배포 개체 |
| 배포 개체 수준 | 지정한 배포 개체 |
새 계획의 발행을 막는 것과 이미 실행 중인 계획을 취소하는 것은 구분해야 합니다. 진행 중인 계획도 중단하려면 계획 취소 작업을 사용하거나 억제 생성 시 Cancel Active Plans를 선택합니다.
자동으로 생성되는 억제
Apollo는 다음 상황에서 배포 개체 수준의 변경 억제 시간대를 자동으로 생성합니다.
- 해당 배포 개체가 카나리 기반 릴리스 승격의 시험 대상으로 사용될 때.
- 변경 계획이 실패했을 때. 실패한 계획이 다시 발행되는 것을 막기 위한 억제입니다.
배포 환경 안에서 자동 억제 중인 배포 개체 수가 설정된 임계값을 초과하면 배포 환경 수준의 자동 억제도 생성됩니다.
실패로 생긴 자동 억제에는 롤백을 허용하기 위한 예외가 적용될 수 있습니다. 사람이 만든 수동 억제는 이 롤백 예외로 무시되지 않습니다. 실패 처리와 롤백의 관계는 변경 계획과 제약 조건에서 설명합니다.
억제 상태 조회
배포 환경에서 Settings → Maintenance and Suppressions를 선택합니다. Suppressions 표에 배포 환경과 배포 개체의 억제 시간대가 표시됩니다.
목록은 다음 기준으로 필터링할 수 있습니다.
- 범위: 배포 환경 또는 배포 개체.
- 생성 방식: 수동 또는 자동.
- 시간 상태: 활성, 예정 또는 종료.
특정 배포 개체에서는 Activity → Overrides and Suppressions로 이동합니다.
배포 환경 수준의 수동 억제
배포 환경의 Editor는 배포 환경과 그 안의 배포 개체에 변경 억제 시간대를 생성할 수 있습니다.
- 배포 환경의 Settings 탭을 엽니다.
- 유지보수 시간대 달력에서 Create suppression을 선택합니다.
- 열린 양식에서 억제 시간대를 구성합니다.
생성한 억제가 활성화되면 배포 환경과 배포 개체 페이지 위쪽에 배너가 나타납니다. 배너의 팝오버에서 활성 억제의 상세 내용을 확인하고 개별 억제를 제거할 수 있습니다.
자동 억제의 임계값 조정
배포 환경 수준의 자동 억제를 유발할 개체 수는 배포 환경 설정의 suppress-deployment-after-num-autosuppressions로 지정할 수 있습니다.
다음은 임계값을 30으로 정하는 가상의 설정 예시입니다.
suppress-deployment-after-num-autosuppressions: 30
이 값은 자동 억제 중인 배포 개체 수가 30개를 초과하면 배포 환경 수준의 자동 억제를 생성하도록 정합니다.
배포 개체 수준의 수동 억제
배포 환경 또는 배포 개체의 Editor와 Operator는 개별 배포 개체의 변경 억제 시간대를 설정할 수 있습니다.
배포 개체 홈에서 Actions → Suppress helm-chart를 선택합니다. 이후 양식의 설정 방법은 배포 환경 수준의 억제와 같습니다.
배포 개체 페이지의 배너에는 해당 개체의 활성 억제뿐 아니라 배포 환경에서 상속한 활성 억제도 함께 표시됩니다. 상세 팝오버에서 각각의 내용과 제거 작업을 확인할 수 있습니다.
억제 제거
수동 또는 자동으로 생성된 억제를 제거하려면 배포 환경이나 배포 개체의 Suppressions 표에서 해당 억제 오른쪽의 삭제 아이콘을 선택합니다. 표 위쪽의 억제 제거 옵션으로 해당 범위의 억제를 일괄 제거할 수도 있습니다.
배포 환경 수준의 억제를 배포 개체 화면에서 제거해도 같은 배포 환경의 모든 배포 개체에서 그 억제가 제거됩니다.
페이지 위쪽의 억제 배너를 열고 삭제 아이콘을 선택하는 방법도 사용할 수 있습니다.
진행 중인 계획 취소
배포 환경 또는 배포 개체에서 진행 중인 계획을 모두 취소하려면 해당 페이지의 Actions → Cancel active plan을 선택합니다.
특정 배포 개체의 계획 하나를 취소하려면 Activity 탭에서 진행 중인 계획을 연 다음 Actions → Cancel active plan을 선택합니다.
취소 양식에는 사유를 입력합니다. Apollo는 취소 후 30분 동안 변경 억제 시간대를 만들도록 안내합니다. 억제를 만들지 않으면 같은 계획을 즉시 다시 발행할 수 있으므로 이 임시 억제를 사용하는 것이 권장됩니다.
짧은 억제 시간대를 만들면서 취소하기
변경 억제 시간대를 만드는 양식에서 Cancel Active Plans를 선택할 수도 있습니다. 억제를 생성하면 그 범위에서 진행 중인 모든 계획을 취소합니다. 배포 개체 범위로 만들었다면 해당 개체의 계획을, 배포 환경 범위로 만들었다면 그 배포 환경의 계획을 대상으로 합니다.
이후 억제를 직접 제거하거나 설정한 종료 시각까지 기다릴 수 있습니다.
계획 취소는 즉시 완료되지 않을 수 있습니다. Apollo가 에이전트에 중단 요청을 전달해야 하므로, 에이전트가 내려가 있거나 응답하지 않으면 취소가 오래 걸리거나 끝내 전달되지 않을 수 있습니다.