배포 개체 추가와 관리
배포 개체(Entity)를 추가하면 Apollo가 해당 대상을 관리할 설정을 갖게 됩니다. 이미 같은 식별의 관리되지 않는 대상이 있으면 관리를 시작하고, 대상이 없으면 새로 생성합니다.
이미 관리 중인 배포 개체는 다시 추가할 수 없습니다. 설치가 제거되었어도 아직 관리가 해제되지 않았다면 이 조건에 포함됩니다. 관리 해제를 기다린 뒤 추가하거나, 가능한 상태에서 설치 제거를 취소해야 합니다.
설치 화면 열기
배포 환경의 Settings → Install entities를 선택합니다.
기본 설정
| 필드 | 의미 |
|---|---|
| Product | 설치할 제품 |
| Name | 배포 개체 이름. 제품 선택 후 자동으로 입력되며 환경 안에서 고유해야 함 |
| K8s namespace | 제품을 설치할 Kubernetes 네임스페이스 |
| Release channel subscription | 추적할 릴리스 채널. 지정하지 않으면 환경의 기본 채널 사용 |
| Supported versions | 설치를 허용할 버전 범위의 시작점. 같은 주 버전 안에서 그 버전 이상을 허용 |
| Manual overrides | 제품 기본 구성을 덮어쓸 설정. 내용이 비어 있어도 지원 버전을 선언하는 블록은 필요 |
같은 제품을 한 환경에 여러 번 설치할 수 있지만 배포 개체 이름은 각각 달라야 합니다. 네임스페이스 선택값은 배포 개체를 만든 뒤 변경할 수 없습니다. 네임스페이스에 설치하기를 함께 확인합니다.
지원 버전의 범위
지원 버전을 9.3.7로 지정하면 9.3.7 이상이면서 10.0.0 미만인 릴리스를 설치할 수 있습니다. 9.3.7 하나만 허용한다는 뜻도, 이후 모든 주 버전을 허용한다는 뜻도 아닙니다.
여러 주 버전에 대한 범위를 지정할 수 있습니다. 선택한 버전마다 대응하는 Manual overrides 블록이 자동 생성됩니다. 자세한 범위 해석은 설정 재정의를 따릅니다.
설치 시 비밀정보 생성
Add secrets → Add new secret에서 선택적으로 비밀정보를 정의할 수 있습니다. 이름, 설명과 하나 이상의 키와 값 쌍을 입력하면 설치 과정에서 환경에 생성합니다.
고급 설정
| 필드 | 의미 |
|---|---|
| Helm release name | Helm 설치에서 사용할 이름. 기본값은 배포 개체의 Name |
| Ignored dependencies | 지정한 제품의 의존 관계 제약을 검사에서 제외 |
| Dependency stack overrides | 다른 스택의 배포 개체를 의존 대상으로 확인하도록 스택 지정 |
Apollo는 기본적으로 같은 스택에 설치된 배포 개체를 대상으로 제품 의존 관계를 검사합니다. 다른 스택에 의존하는 구성이라면 재정의가 필요합니다. 의존 관계를 무시하도록 설정하는 경우에도 운영자가 호환성을 확인해야 합니다.
승인과 설치
추가 대상을 더 구성하려면 Add entity를 선택합니다. 구성을 마치면 Submit for approval로 변경 요청을 제출합니다.
변경 요청이 승인되고 병합되면 Apollo는 스포크 환경에 적절한 제품 릴리스를 설치하고 이후 업그레이드와 운영을 관리합니다. 다만 다음 설치 조건을 충족해야 계획이 실행됩니다.
- 추적하는 채널에 설치할 제품의 릴리스가 있어야 합니다. 승격 파이프라인이나 수동 승격으로 릴리스를 채널에 넣습니다.
- 유지보수 시간대, 변경 억제 시간대와 제품 의존 관계 제약을 충족해야 합니다.
- 무시할 의존 관계와 스택 재정의가 필요한 구성이라면 올바르게 지정되어 있어야 합니다.
- 의존 제품의 설치와 업그레이드도 정상적으로 진행될 수 있어야 합니다.
업그레이드 조건
업그레이드에는 채널 안의 더 새로운 릴리스와 적용 가능한 설정이 필요합니다. 유지보수 시간대, 변경 억제와 의존 관계 제약을 충족해야 하며, 새 릴리스에서 추가된 의존 관계도 확인합니다.
현재 릴리스의 회수 정책이 모든 버전 변경 동결이면 업그레이드도 차단됩니다.
기존 관리 대상의 선언된 설정은 배포 환경 설정에서 수정합니다.