1.11. Pipeline과 함께 Repository CRD를 코드로 사용
Repository CR(사용자 정의 리소스)에는 다음과 같은 기본 기능이 있습니다.
- 파이프라인에 URL에서 이벤트를 처리하는 방법에 대한 코드로 알립니다.
- 파이프라인을 파이프라인 실행의 네임스페이스에 대한 코드로 알립니다.
- Webhook 방법을 사용할 때 Git 공급자 플랫폼에 필요한 API 시크릿, 사용자 이름 또는 API URL을 참조합니다.
- 리포지토리의 마지막 파이프라인 실행 상태를 제공합니다.
tkn pac CLI 또는 기타 대체 방법을 사용하여 대상 네임스페이스에 리포지토리 CR을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
- 1
my-pipeline-ci는 대상 네임스페이스입니다.
https://github.com/<repository>/<project >와 같은 URL에서 이벤트가 발생할 때마다 Code로 Pipeline이 일치하고 .tekton > 리포지토리의 콘텐츠를 확인하기 시작합니다.
/ 디렉터리의 콘텐츠와 일치하도록 파이프라인 실행을 위한 <repository>/<project
-
소스 코드 리포지토리와 연결된 파이프라인이 실행될 동일한 네임스페이스에
RepositoryCRD를 생성해야 합니다. 다른 네임스페이스를 대상으로 지정할 수 없습니다. -
여러
RepositoryCRD가 동일한 이벤트와 일치하는 경우 Code와 Pipelines는 가장 오래된 CRD만 처리합니다. 특정 네임스페이스와 일치해야 하는 경우pipelinesascode.tekton.dev/target-namespace: "<mynamespace>"주석을 추가합니다. 이러한 명시적 대상에서는 악의적인 행위자가 액세스 권한이 없는 네임스페이스에서 파이프라인 실행을 실행하지 못하도록 합니다.
1.11.1. 동시성 제한 설정 링크 복사링크가 클립보드에 복사되었습니다!
Repository CRD(사용자 정의 리소스 정의)에서 concurrency_limit 사양을 사용하여 리포지토리에 대해 동시에 실행되는 최대 파이프라인 실행 수를 정의할 수 있습니다.
이벤트와 일치하는 파이프라인이 여러 개 있는 경우 파이프라인은 이벤트 시작과 알파벳순으로 실행됩니다.
예를 들어 .tekton 디렉터리에 3개의 파이프라인 실행이 있고 리포지토리 구성에서 concurrency_limit 를 사용하여 가져오기 요청을 생성하는 경우 모든 파이프라인 실행이 알파벳순으로 실행됩니다. 언제든지 하나의 파이프라인 실행만 실행 중 상태인 동안 나머지 실행은 대기열에 있습니다.