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
, 및 승격 파이프라인의 다른 단계에 해당하는 별도의DeploymentConfigs
및Services
를 활용합니다.
다음은 OpenShift 샘플 작업의 다양한 부분을 자세히 검사합니다.
-
첫 번째 단계는
oc scale dc frontend --replicas=0
호출과 동일합니다. 이 단계는 실행 중일 수 있는 이전 버전의 애플리케이션 이미지를 중단하기 위한 것입니다. -
두 번째 단계는
oc start-build frontend
호출과 동일합니다. -
세 번째 단계는
oc rollout latest dc/frontend
호출과 동일합니다. - 네 번째 단계는 이 샘플의 '테스트'입니다. 이를 통해 이 애플리케이션의 연결된 서비스가 네트워크 관점에서 실제로 액세스할 수 있습니다. 커버에서 소켓 연결은 OpenShift Container Platform 서비스와 연결된 IP 주소 및 포트에 대해 시도됩니다. 물론 OpenShift Pipepline 플러그인 단계를 통해 추가 테스트를 추가한 다음 Jenkins Shell 단계를 통해 OS 수준 명령 및 스크립트를 활용하여 애플리케이션을 테스트할 수 있습니다.
-
다섯 번째 단계는 애플리케이션 테스트가 통과되어 이미지를 "사용 가능"으로 표시하려는 가정 하에 시작됩니다. 이 단계에서는 최신 이미지에서 애플리케이션 이미지에 대한 새 prod 태그가 생성됩니다. 해당 태그에 대해 frontend
DeploymentConfig
에ImageChangeTrigger
가 정의되어 있으면 해당 "production" 배포가 시작됩니다. - 마지막 단계는 플러그인에서 "프로덕션" 배포에 대해 원하는 수의 복제본 수를 시작했음을 확인하는 확인 단계입니다.