6.4. Pipeline을 코드로 사용하여 파이프라인 실행 상태 모니터링
컨텍스트 및 지원되는 툴에 따라 파이프라인 실행 상태를 다른 방식으로 모니터링할 수 있습니다.
GitHub 앱의 상태
파이프라인 실행이 완료되면 파이프라인의 각 작업 및 tkn pipelinerun describe
명령의 출력에 대한 제한된 정보가 있는 Check 탭에 상태가 추가됩니다.
로그 오류 스니펫
Pipeline as Code가 파이프라인 작업 중 하나에서 오류를 감지하면 첫 번째 실패한 작업의 작업 분석에서 마지막 3행으로 구성된 작은 조각이 표시됩니다.
코드로서 파이프라인을 사용하면 파이프라인 실행을 보고 시크릿 값을 숨겨진 문자로 교체하여 보안 누출을 방지할 수 있습니다. 그러나 코드로서의 파이프라인은 작업 공간 및 envFrom 소스에서 제공하는 보안을 숨길 수 없습니다.
로그 오류 스니펫에 대한 주석
TektonConfig
사용자 지정 리소스의 pipelinesAsCode.settings
사양에서 error-detection-from-container-logs
매개변수를 true
로 설정할 수 있습니다. 이 경우 코드로서의 파이프라인은 컨테이너 로그의 오류를 감지하고 오류가 발생한 가져오기 요청에 주석을 추가합니다.
로그 오류 스니펫에 대한 주석을 추가하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
현재 Pipeline은 다음과 같은 형식의 makefile
또는 grep
출력처럼 보이는 간단한 사례만 지원합니다.
<filename>:<line>:<column>: <error message>
error-detection-simple-regexp
매개변수를 사용하여 오류를 감지하는 데 사용되는 정규식을 사용자 지정할 수 있습니다. 정규식은 이름이 지정된 그룹을 사용하여 일치 항목을 지정하는 방법에 대한 유연성을 제공합니다. 일치에 필요한 그룹은 파일 이름
,행
, 오류입니다
. Pipeline을 기본 정규식의 코드 구성 맵으로 볼 수 있습니다.
기본적으로 코드로서의 파이프라인은 컨테이너 로그의 마지막 50행만 검사합니다. error-detection-max-number-of-lines
필드에서 이 값을 늘리거나 무제한 줄 수에 대해 -1
을 설정할 수 있습니다. 그러나 이러한 구성은 감시자의 메모리 사용량을 늘릴 수 있습니다.
Webhook 상태
Webhook의 경우 이벤트가 가져오기 요청이면 가져오기 또는 병합 요청에 대한 주석으로 상태가 추가됩니다.
실패
네임스페이스가 Repository
CRD(사용자 정의 리소스 정의)와 일치하는 경우 코드로서의 Pipeline은 네임스페이스 내부의 Kubernetes 이벤트에서 실패 로그 메시지를 내보냅니다.
Repository CRD와 관련된 상태
파이프라인 실행에 대한 마지막 5개의 상태 메시지는 Repository
사용자 정의 리소스 내에 저장됩니다.
$ oc get repo -n <pipelines-as-code-ci>
NAME URL NAMESPACE SUCCEEDED REASON STARTTIME COMPLETIONTIME pipelines-as-code-ci https://github.com/openshift-pipelines/pipelines-as-code pipelines-as-code-ci True Succeeded 59m 56m
tkn pac describe
명령을 사용하면 리포지토리 및 해당 메타데이터와 연결된 실행 상태를 추출할 수 있습니다.
알림
코드로서의 파이프라인은 알림을 관리하지 않습니다. 알림이 필요한 경우 파이프라인의 finally
기능을 사용합니다.