4장. Repository 사용자 정의 리소스 사용
Repository
CR(사용자 정의 리소스)에는 다음과 같은 기본 기능이 있습니다.
- 파이프라인에 URL에서 이벤트를 처리하는 방법에 대한 코드로 알립니다.
- 파이프라인을 파이프라인 실행의 네임스페이스에 대한 코드로 알립니다.
- Webhook 방법을 사용할 때 Git 공급자 플랫폼에 필요한 API 시크릿, 사용자 이름 또는 API URL을 참조합니다.
- 리포지토리의 마지막 파이프라인 실행 상태를 제공합니다.
4.1. 리포지토리 사용자 정의 리소스 생성
tkn pac
CLI 또는 기타 대체 방법을 사용하여 대상 네임스페이스에 리포지토리 CR (
사용자 정의 리소스)을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
cat <<EOF|kubectl create -n my-pipeline-ci -f- 1
apiVersion: "pipelinesascode.tekton.dev/v1alpha1"
kind: Repository
metadata:
name: project-repository
spec:
url: "https://github.com/<repository>/<project>"
EOF
- 1
my-pipeline-ci
는 대상 네임스페이스입니다.
https://github.com/<repository>/<project
>와 같은 URL에서 이벤트가 발생할 때마다 Code와 일치하는 Pipeline이 일치하고 .tekton
> 리포지토리의 콘텐츠를 확인하기 시작합니다.
/
디렉터리의 콘텐츠와 일치하도록 파이프라인 실행을 위한 <repository>/<project
참고
-
소스 코드 리포지토리와 연결된 파이프라인이 실행될 동일한 네임스페이스에
Repository
CR을 생성해야 합니다. 다른 네임스페이스를 대상으로 지정할 수 없습니다. -
여러
Repository
CR이 동일한 이벤트와 일치하는 경우 Code와 Pipelines는 가장 오래된 이벤트만 처리합니다. 특정 네임스페이스와 일치해야 하는 경우pipelinesascode.tekton.dev/target-namespace: "<mynamespace>"
주석을 추가합니다. 이러한 명시적 대상에서는 악의적인 행위자가 액세스 권한이 없는 네임스페이스에서 파이프라인 실행을 실행하지 못하도록 합니다.