2.3.5.3. Jenkins를 사용하여 반복 가능한 프로모션 프로세스
OpenShift Container Platform의 Jenkins Docker 이미지에 정의된 OpenShift 샘플 작업은 Jenkins 구성 내의 OpenShift Container Platform 내에서 이미지 승격의 예입니다. 이 샘플의 설정은 OpenShift Origin 소스 리포지토리에 있습니다.
이 샘플에는 다음이 포함됩니다.
- Jenkins를 CI/CD 엔진으로 사용합니다.
-
Jenkins용 OpenShift Pipeline 플러그인을 사용합니다. 이 플러그인은 Jenkins Freestyle 및 DSL 작업 단계로 패키지된 OpenShift Container Platform용
oc
CLI에서 제공하는 기능의 하위 집합을 제공합니다.oc
바이너리는 OpenShift Container Platform의 Jenkins Docker 이미지에 포함되어 있으며 Jenkins 작업에서 OpenShift Container Platform과 상호 작용하는 데 사용할 수도 있습니다. - Jenkins를 위한 OpenShift Container Platform 제공 템플릿 임시 스토리지와 영구 스토리지를 위한 템플릿이 있습니다.
-
샘플 애플리케이션: OpenShift Origin 소스 리포지토리에 정의된 이 애플리케이션은 승격 파이프라인의 다른 단계에 해당하는
ImageStreams
,ImageChangeTriggers
,ImageStreamTags
,BuildConfigs
, separateDeploymentConfigs
및Services
를 활용합니다.
다음은 OpenShift 샘플 작업의 다양한 부분을 자세히 설명합니다.
-
첫 번째 단계는
oc scale dc --replicas=0
호출과 동일합니다. 이 단계는 실행 중인 이전 버전의 애플리케이션 이미지를 가져오기 위한 것입니다. -
두 번째 단계는
oc start-build frontend
호출과 동일합니다. -
세 번째 단계는
oc rollout 최신 dc/frontend
호출과 동일합니다. - 네 번째 단계는 이 샘플의 "테스트"입니다. 이 애플리케이션의 관련 서비스가 네트워크 관점에서 실제로 액세스할 수 있도록 합니다. covers 아래에서 소켓 연결이 OpenShift Container Platform 서비스와 연결된 IP 주소 및 포트에 대해 시도됩니다. 물론 추가 테스트(OpenShift Pipepline 플러그인 단계를 통해 제공되지 않는 경우) Jenkins Shell 단계를 사용하여 애플리케이션을 테스트할 수 있습니다.
-
다섯 번째 단계는 애플리케이션 테스트가 통과했음을 가정하고, 따라서 이미지를 "ready"로 표시하려고 합니다. 이 단계에서는 최신 이미지에서 애플리케이션 이미지에 대한 새 prod 태그가 생성됩니다. 해당 태그에
ImageChangeTrigger
가 정의된 frontendDeploymentConfig
를 사용하면 해당 "production" 배포가 시작됩니다. - 여섯 번째 단계 및 마지막 단계는 플러그인에서 OpenShift Container Platform이 "프로덕션" 배포에 필요한 복제본 수를 시작했음을 확인하는 확인 단계입니다.