두 개의 개별적이지만 동일한 환경을 만드는 배포 전략
- Bule는 구버전, Green은 새로운 버전으로 가정하다면, 운영 환경에 기존 버전인 Blue와 동일하게 새로운 Green 버전의 인스턴스를 구성하고, 테스트를 완료 후 라이브 트래픽을 로드밸런서를 통하여 새로운 버전으로 전환하는 형태

# apps/v1 대신 argoproj.io/v1alpha1 설정
apiVersion: argoproj.io/v1alpha1
# Rollout 선언
kind: Rollout
metadata:
name: example-rollout-canary
spec:
# 롤아웃을 위해 복제 할 pod 수
replicas: 5
analysis:
# 기록에 저장할 성공적인 분석 실행 및 실험의 수를 제한합니다.
successfulRunHistoryLimit: 10
# 기록에 저장할 실패한 분석 실행 및 실험의 수를 제한합니다.
# 실패 단계: "오류", "실패", "미확정"
unsuccessfulRunHistoryLimit: 10
# 팟(Pod)의 레이블 선택기. 포드가 선택된 기존 ReplicaSet, 이번 롤아웃의 영향을 받는 항목입니다. 포드와 일치해야 합니다. 템플릿의 라벨.
selector:
matchLabels:
app: guestbook
# 포드 템플릿을 제공하는 워크로드에 대한 참조를 보유합니다.
# (e.g. Deployment). 사용하는 경우 롤아웃 템플릿 속성을 사용하지 마십시오.
workloadRef:
apiVersion: apps/v1
kind: Deployment
name: rollout-ref-deployment
# 템플릿은 생성될 포드를 설명합니다. 배포와 동일합니다.
# 사용하는 경우 롤아웃 워크로드Ref 속성을 사용하지 마십시오.
template:
spec:
containers:
- name: guestbook
image: argoproj/rollouts-demo:blue
strategy:
# Blue-green 업데이트 전략
blueGreen:
# [필수 입력] 롤아웃이 활성 서비스로 수정하는 서비스에 대한 참조입니다.
activeService: active-service
# [선택 입력] 롤아웃이 미리 보기 서비스로 수정하는 서비스의 이름입니다.
previewService: preview-service
# 롤아웃이 새 ReplicaSet를 자동으로 승격시켜야 하는지 여부를 나타냅니다.
# 활성 서비스로 전환하거나 일시 중지 상태로 들어갑니다. 지정하지 않으면,
# 기본값은 true입니다.
autoPromotionEnabled: false
apiVersion
activeService
previewService [선택입력]
service.yaml 파일이 2개 pod 이상일 경우에 사용하여 해당 pod의 name으로 선택 할 수 있다.
autoPromotionEnabled
workloadRef
template
workloadRef, template 필드는 같이 사용하지 못한다.





