1.4. 빌드 컨트롤러


빌드 컨트롤러는 Build 리소스의 업데이트를 모니터링하고 다음 작업을 수행합니다.

  • 참조된 StrategyRef 오브젝트가 Build 리소스에 있는지 확인합니다.
  • Build CR에서 지정된 매개변수가 참조된 빌드 전략에 있는지 확인합니다. 매개변수 이름이 예약된 이름과 충돌하는지도 확인합니다.
  • Build 리소스에 컨테이너 레지스트리 출력 시크릿이 있는지 확인합니다.
  • 참조된 spec.source.git.url 끝점 URL이 Build 리소스에 있는지 확인합니다.

빌드 실행 컨트롤러는 Build 또는 TaskRun 리소스의 업데이트를 모니터링하고 다음 작업을 수행합니다.

  • 기존 TaskRun 리소스를 검색하고 상위 BuildRun 리소스 상태를 업데이트합니다.
  • 지정된 서비스 계정을 검색하고 Build 리소스의 출력 보안과 함께 설정합니다.
  • TaskRun 리소스가 없는 경우 컨트롤러는 새 Tekton TaskRun 리소스를 생성하고 TaskRun 리소스에 대한 참조를 설정합니다.
  • TaskRun 리소스의 후속 업데이트의 경우 컨트롤러는 상위 BuildRun 리소스를 업데이트합니다.

1.4.1. 빌드 검증

잘못된 종속성 또는 구성 설정으로 인해 실패하는 BuildRun 리소스를 트리거하지 않으려면 빌드 컨트롤러에서 미리 유효성을 검사합니다. 모든 검증이 성공하면 Succeeded 라는 status.reason 필드를 볼 수 있습니다. 그러나 검증이 실패하는 경우 status.reasonstatus.message 필드를 확인하여 근본 원인을 파악해야 합니다.

Expand
표 1.1. 빌드 컨트롤러의 빌드 검증
status.reason 필드설명

BuildStrategyNotFound

네임스페이스 수준에서 참조된 전략이 존재하지 않습니다.

ClusterBuildStrategyNotFound

클러스터 수준에서 참조된 전략이 존재하지 않습니다.

SetOwnerReferenceFailed

BuildBuildRun 리소스 간의 소유자 참조를 설정하지 못했습니다. 이 상태는 빌드에서 spec.retention.atBuildDeletion 필드를 true 로 설정할 때 트리거됩니다.

SpecSourceSecretRefNotFound

Git에 인증하는 데 사용되는 시크릿은 존재하지 않습니다.

SpecOutputSecretRefNotFound

컨테이너 레지스트리에 인증하는 데 사용되는 시크릿은 존재하지 않습니다.

SpecBuilderSecretRefNotFound

컨테이너 레지스트리에 인증하는 데 사용되는 시크릿은 존재하지 않습니다.

MultipleSecretRefNotFound

인증에 사용되는 여러 보안이 누락되어 있습니다.

RestrictedParametersInUse

하나 이상의 정의된 params 는 예약된 매개변수와 함께 배치됩니다.

정의되지 않음 매개변수

매개변수는 참조된 전략에 정의되지 않습니다. 해당 매개변수를 전략의 spec.parameters 사양에 정의해야 합니다.

RemoteRepositoryUnreachable

정의된 spec.source.git.url 사양을 찾을 수 없습니다. 이 검증은 HTTP 및 HTTPS 프로토콜에서만 수행됩니다.

BuildNameInvalid

metadata.name 필드의 빌드 이름이 유효하지 않습니다. 빌드 이름에 유효한 라벨 값을 사용해야 합니다.

SpecEnvNameCanNotBeBlank

사용자 제공 환경 변수의 이름이 비어 있음을 나타냅니다.

SpecEnvValueCanNotBeBlank

사용자 제공 환경 변수의 값이 비어 있음을 나타냅니다.

1.4.2. 컨트롤러 설정

컨트롤러는 OpenShift Container Platform 클러스터에 몇 가지 기본값이 있습니다. 그러나 controller.yaml 파일에 정의된 환경 변수를 사용하여 몇 가지 컨트롤러 설정을 설정하거나 수정할 수 있습니다. 다음 환경 변수를 사용할 수 있습니다.

Expand
표 1.2. 컨트롤러 설정
환경 변수설명

CTX_TIMEOUT

모든 사용자 정의 리소스 정의 조정 작업에 사용되는 기본 컨텍스트 시간 초과를 재정의합니다. 기본값은 5 초입니다.

REMOTE_ARTIFACTS_CONTAINER_IMAGE

.spec.sources 원격 아티팩트 다운로드에 사용되는 컨테이너 이미지를 지정합니다. 기본적으로 환경 변수는 quay.io/quay/busybox:latest 컨테이너 이미지를 사용합니다.

TERMINATION_LOG_PATH

종료 로그의 경로를 나타냅니다. 기본값은 /dev/termination-log 입니다.

GIT_ENABLE_REWRITE_RULE

Git 래퍼를 활성화하여 해당 소스 호스트 이름에 대해 대신 Git 구성 재작성 규칙 URL을 설정합니다. 기본값은 false입니다.

GIT_CONTAINER_TEMPLATE

Git 리포지토리를 복제하는 단계에 사용되는 컨테이너 템플릿의 JSON 표시를 나타냅니다. 기본값은 {"image": "ghcr.io/shipwright-io/build/git:latest", "command": ["/ko-app/git"], "env": [{"name": "HOME", "value": "/shared-home"}, "securityContext":{"allowPrivilegeEscalation": false, "securityContext":{"입니다. "capabilities": {"drop": ["ALL"]}, "runAsUser": 1000,"runAsGroup": 1000}}. argsname 속성은 빌드 컨트롤러에서 설정하므로 무시됩니다.

GIT_CONTAINER_IMAGE

Git 복제 단계를 위한 사용자 정의 컨테이너 이미지를 나타냅니다. GIT_CONTAINER_TEMPLATEGIT_CONTAINER_IMAGE 변수가 모두 이미지를 지정하는 경우 GIT_CONTAINER_IMAGE 변수에 지정된 이미지가 우선합니다.

BUNDLE_IMAGE_CONTAINER_TEMPLATE

패키지 소스 코드를 가져오기 위해 번들 이미지를 가져오는 단계에 사용되는 컨테이너 템플릿의 JSON 표시를 나타냅니다. 기본값은 {"image": "ghcr.io/shipwright-io/build/bundle:latest", "command": ["/ko-app/bundle"], "env": [{"name": "HOME","value": "/shared-home"}], "securityContext":{"allowPrivilegeEscalation": false, "capabilities": {"drop": ["ALL"]}, "runAsUser":1000,"runAsGroup":1000}}. argsname 속성은 빌드 컨트롤러에서 설정하므로 무시됩니다.

BUNDLE_IMAGE_CONTAINER_IMAGE

패키지된 소스 코드를 가져오기 위해 번들 이미지를 가져오는 사용자 지정 컨테이너 이미지를 나타냅니다. BUNDLE_IMAGE_CONTAINER_TEMPLATEBUNDLE_IMAGE_CONTAINER_IMAGE 변수가 모두 이미지를 지정하는 경우 BUNDLE_IMAGE_CONTAINER_IMAGE 변수에 지정된 이미지가 우선합니다.

IMAGE_PROCESSING_CONTAINER_TEMPLATE

이미지를 처리하는 단계에 사용되는 컨테이너 템플릿의 JSON 표시를 나타냅니다. 기본값은 {"image": "ghcr.io/shipwright-io/build/image-processing:latest", "command": ["/ko-app/image-processing"], "env": [{"name": "HOME"": "/shared-home"}, "securityContext": {"allowPrivilegeEscalation": false입니다. "capabilities": {"add": ["DAC_OVERRIDE"], "drop": ["ALL"]}, "runAsUser": 0, "runAsgGroup": 0}}. argsname 속성은 빌드 컨트롤러에서 설정하므로 무시됩니다.

IMAGE_PROCESSING_CONTAINER_IMAGE

이미지를 처리하는 단계에 사용되는 사용자 지정 컨테이너 이미지를 나타냅니다. IMAGE_PROCESSING_CONTAINER_TEMPLATEIMAGE_PROCESSING_CONTAINER_IMAGE 변수가 모두 이미지를 지정하는 경우 IMAGE_PROCESSING_CONTAINER_IMAGE 변수에 지정된 이미지가 우선합니다.

WAITER_IMAGE_CONTAINER_TEMPLATE

로컬 소스 코드가 업로드될 때까지 대기하는 컨테이너 템플릿의 JSON 표시를 나타냅니다. 기본값은 {"image":"ghcr.io/shipwright-io/build/waiter:latest", "command": ["/ko-app/waiter"], "args": ["start"], "env": [{"name": "HOME"": "HOME"": "/shared-home"}]입니다. "securityContext":{"allowPrivilegeEscalation": false, "capabilities": {"drop": ["ALL"]}, "runAsUser":1000,"runAsGroup":1000}}. argsname 속성은 빌드 컨트롤러에서 설정하므로 무시됩니다.

WAITER_IMAGE_CONTAINER_IMAGE

로컬 소스 코드가 업로드될 때까지 대기하는 사용자 지정 컨테이너 이미지를 나타냅니다. WAITER_IMAGE_CONTAINER_TEMPLATEWAITER_IMAGE_CONTAINER_IMAGE 변수가 모두 이미지를 지정하는 경우 WAITER_IMAGE_CONTAINER_IMAGE 변수에 지정된 이미지가 우선합니다.

BUILD_CONTROLLER_LEADER_ELECTION_NAMESPACE

shipwright-build-controller 잠금을 저장하는 데 사용되는 네임스페이스를 설정합니다. 기본적으로 잠금은 빌드 컨트롤러와 동일한 네임스페이스에 있습니다.

BUILD_CONTROLLER_LEASE_DURATION

컨트롤러 작업을 강제로 인수하기 전에 컨트롤러가 아닌 노드의 대기 기간인 LeaseDuration 필드를 재정의합니다.

BUILD_CONTROLLER_RENEW_DEADLINE

작동 중인 컨트롤러 노드가 컨트롤러 작업을 다시 설정하는 기간인 RenewDeadline 필드를 재정의합니다.

BUILD_CONTROLLER_RETRY_PERIOD

새 컨트롤러를 선택하기 전에 컨트롤러 선택기 노드가 대기하는 기간인 RetryPeriod 필드를 재정의합니다.

BUILD_MAX_CONCURRENT_RECONCILES

빌드 컨트롤러의 동시 조정 수를 나타냅니다. 기본값은 0입니다.

BUILDRUN_MAX_CONCURRENT_RECONCILES

빌드 실행 컨트롤러의 동시 조정 수를 나타냅니다. 기본값은 0입니다.

BUILDSTRATEGY_MAX_CONCURRENT_RECONCILES

빌드 전략 컨트롤러의 동시 조정 수를 나타냅니다. 기본값은 0입니다.

CLUSTERBUILDSTRATEGY_MAX_CONCURRENT_RECONCILES

클러스터 빌드 전략 컨트롤러의 동시 조정 수를 나타냅니다. 기본값은 0입니다.

KUBE_API_BURST

Kubernetes API 클라이언트에 사용할 버스트를 나타냅니다. 기본값은 0입니다.

KUBE_API_QPS

Kubernetes API 클라이언트에 사용할 QPS를 나타냅니다. 기본값은 0입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat