구성
1장. 빌드 구성
Build
CR(사용자 정의 리소스)에서는 소스, 빌드 전략, 매개변수 값, 출력, 보존 매개변수 및 볼륨을 정의하여 빌드를 구성할 수 있습니다. 빌드
리소스는 네임스페이스 내에서 사용할 수 있습니다.
빌드를 구성하려면 Build
리소스 YAML 파일을 생성하여 OpenShift Container Platform 클러스터에 적용합니다.
1.1. 빌드의 구성 가능한 필드
Build
사용자 정의 리소스(CR)에서 다음 필드를 사용할 수 있습니다.
필드 | presence | 설명 |
---|---|---|
| 필수 항목 |
리소스의 API 버전을 지정합니다(예: |
| 필수 항목 |
리소스 유형을 지정합니다(예: |
| 필수 항목 |
|
| 필수 항목 | 소스 코드의 위치(예: Git 리포지토리 또는 소스 번들 이미지)를 나타냅니다. |
| 필수 항목 |
|
| 필수 항목 | 생성된 이미지를 내보낼 위치를 나타냅니다. |
| 필수 항목 | 컨테이너 레지스트리에 액세스하기 위한 기존 시크릿을 나타냅니다. |
| 선택 사항 | 빌드 전략에 정의된 매개변수 값을 지정하는 name-value 목록을 나타냅니다. |
| 선택 사항 |
사용자 정의 시간 초과를 정의합니다. 기본값은 10분입니다. |
| 선택 사항 | 출력 이미지에 주석을 달 때 사용할 수 있는 키-값 쌍 목록을 나타냅니다. |
| 선택 사항 | 출력 이미지에 레이블을 지정하는 데 사용할 수 있는 키-값 쌍 목록을 나타냅니다. |
| 선택 사항 | 빌드 컨테이너에 전달할 수 있는 추가 환경 변수를 정의합니다. 사용 가능한 변수는 빌드 전략에서 사용하는 도구에 따라 달라집니다. |
| 선택 사항 | 실패한 빌드 실행이 존재할 수 있는 기간을 지정합니다. |
| 선택 사항 | 성공적인 빌드 실행이 존재할 수 있는 기간을 지정합니다. |
| 선택 사항 | 존재할 수 있는 실패한 빌드 실행 수를 지정합니다. |
| 선택 사항 | 존재할 수 있는 성공적인 빌드 실행 수를 지정합니다. |
1.2. 소스 정의
다음 필드의 값을 설정하여 빌드의 소스 세부 정보를 Build
CR(사용자 정의 리소스)에서 구성할 수 있습니다.
-
source.git.url
: Git 리포지토리에서 사용할 수 있는 이미지의 소스 위치를 정의합니다. -
source.git.cloneSecret
: 개인 Git 리포지토리의 SSH 개인 키가 포함된 네임스페이스의 시크릿을 참조합니다. -
source.git.revision
: 소스 Git 리포지토리에서 선택할 특정 버전을 정의합니다. 예를 들어 커밋, 태그 또는 분기 이름입니다. 이 필드는 기본적으로 Git 리포지토리 기본 분기입니다. -
source.contextDir
: 소스 코드가 루트 폴더에 없는 리포지토리의 컨텍스트 경로를 지정합니다.
빌드 컨트롤러에서 이미지를 가져오기 위해 지정한 Git 리포지토리가 있는지 자동으로 확인하지 않습니다. 검증해야 하는 경우 다음 예와 같이 build.shipwright.io/verify.repository
주석의 값을 true
로 설정합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-golang-build annotations: build.shipwright.io/verify.repository: "true" spec: source: git: url: https://github.com/shipwright-io/sample-go contextDir: docker-build
빌드 컨트롤러는 다음 시나리오에서 Git 리포지토리가 있는지 확인합니다.
- HTTP 또는 HTTPS 프로토콜과 함께 끝점 URL을 사용하는 경우
-
git@
과 같은 SSH 프로토콜을 정의했지만 참조된 보안(예:source.git.cloneSecret
)이 정의되어 있지 않은 경우입니다.
다음 예제에서는 다양한 소스 입력 세트를 사용하여 빌드를 구성하는 방법을 보여줍니다.
예: 인증 정보를 사용하여 빌드 구성
다음 예와 같이 인증 정보를 지정하여 소스로 빌드를 구성할 수 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-build spec: source: git: url: https://github.com/sclorg/nodejs-ex cloneSecret: source-repository-credentials
예: 컨텍스트 경로를 사용하여 빌드 구성
다음 예와 같이 Git 리포지토리에서 컨텍스트 경로를 지정하는 소스로 빌드를 구성할 수 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-custom-context-dockerfile spec: source: git: url: https://github.com/userjohn/npm-simple contextDir: docker-build
예: 태그를 사용하여 빌드 구성
다음 예와 같이 Git 리포지토리의 v.0.1.0
태그를 지정하는 소스로 빌드를 구성할 수 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-golang-build spec: source: git: url: https://github.com/shipwright-io/sample-go revision: v0.1.0
예: 환경 변수를 사용하여 빌드 구성
다음 예와 같이 환경 변수를 지정하는 빌드를 구성할 수도 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-golang-build spec: source: git: url: https://github.com/shipwright-io/sample-go contextDir: docker-build env: - name: <example_var_1> value: "<example_value_1>" - name: <example_var_2> value: "<example_value_2>"
1.3. 전략 정의
Build
CR에서 빌드에 대한 전략을 구성할 수 있습니다. 다음 빌드 전략을 사용할 수 있습니다.
-
buildah
-
source-to-image
빌드 전략을 구성하려면 다음 예와 같이 Build
CR에서 spec.strategy.name
및 spec.strategy.kind
필드를 정의합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-build spec: strategy: name: buildah kind: ClusterBuildStrategy
1.4. 빌드의 매개변수 값 정의
Build
CR에서 빌드 전략 매개변수의 값을 지정할 수 있습니다. 매개변수 값을 지정하면 빌드 전략의 단계가 작동하는 방법을 제어할 수 있습니다. BuildRun
리소스의 값을 덮어쓸 수도 있습니다.
모든 매개변수의 경우 직접 또는 구성 맵 또는 시크릿의 참조 키를 사용하여 값을 지정해야 합니다.
빌드 전략 단계에서 매개변수를 사용하면 구성 맵 및 시크릿 사용이 제한됩니다. 매개변수가 명령, 인수 또는 환경 변수에 사용되는 경우에만 구성 맵과 시크릿을 사용할 수 있습니다.
Build
CR에서 paramValues
필드를 사용하는 경우 다음 시나리오를 사용하지 마십시오.
-
BuildStrategy
CR에 정의된spec.parameters
중 하나와 일치하지 않는spec.paramValues
이름을 지정합니다. -
shipwright 예약된 매개변수와 충돌하는
spec.paramValues
이름을 지정합니다. 이러한 매개변수에는BUILDER_IMAGE
,CONTEXT_DIR
및shp-
로 시작하는 모든 이름이 포함됩니다.
또한 Build
CR에서 paramValues
필드를 정의하기 전에 전략의 내용을 이해해야 합니다.
1.4.1. 매개변수 값을 정의하는 구성 예
다음 예제에서는 빌드 전략에서 매개변수를 정의하고 Build
CR을 사용하여 해당 매개변수에 값을 할당하는 방법을 보여줍니다. Build
CR의 유형 배열
의 매개변수에 값을 할당할 수도 있습니다.
예: ClusterBuildStrategy
CR의 매개변수 정의
다음 예제에서는 여러 매개변수를 정의하는 ClusterBuildStrategy
CR을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: buildah spec: parameters: - name: build-args description: "The values for the args in the Dockerfile. Values must be in the format KEY=VALUE." type: array defaults: [] # ... - name: storage-driver description: "The storage driver to use, such as 'overlay' or 'vfs'." type: string default: "vfs" # ... steps: # ...
예: Build
CR에서 매개변수에 값 할당
위의 ClusterBuildStrategy
CR은 storage-driver
매개변수를 정의하고 다음 예와 같이 Build
CR에서 storage-driver
매개변수 값을 지정할 수 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: <your_build> namespace: <your_namespace> spec: paramValues: - name: storage-driver value: "overlay" strategy: name: buildah kind: ClusterBuildStrategy output: # ...
예: 중앙에서 매개변수를 제어하기 위해 ConfigMap
CR 생성
여러 빌드에 storage-driver
매개변수를 사용하고 중앙에서 사용을 제어하려면 다음 예와 같이 ConfigMap
CR을 생성할 수 있습니다.
apiVersion: v1 kind: ConfigMap metadata: name: buildah-configuration namespace: <your_namespace> data: storage-driver: overlay
다음 예와 같이 생성된 ConfigMap
CR을 Build
CR에서 매개변수 값으로 사용할 수 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: <your_build> namespace: <your_namespace> spec: paramValues: - name: storage-driver configMapValue: name: buildah-configuration key: storage-driver strategy: name: buildah kind: ClusterBuildStrategy output: # ...
예: Build
CR에서 type 배열
의 매개변수에 값 할당
배열
형식의 매개 변수에 값을 할당할 수 있습니다. buildah
전략을 사용하는 경우 registries-search
매개변수를 정의하여 특정 레지스트리의 이미지를 검색할 수 있습니다. 다음 예제에서는 registries-search
배열 매개변수에 값을 할당하는 방법을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: <your_build> namespace: <your_namespace> spec: paramValues: - name: storage-driver configMapValue: name: buildah-configuration key: storage-driver - name: registries-search values: - value: registry.redhat.io strategy: name: buildah kind: ClusterBuildStrategy output: # ...
예: Build
CR에서 시크릿 참조
다음 예와 같이 registries-block
배열 매개변수의 시크릿을 참조할 수 있습니다.
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: <your_build>
namespace: <your_namespace>
spec:
paramValues:
- name: storage-driver
configMapValue:
name: buildah-configuration
key: storage-driver
- name: registries-block
values:
- secretValue: 1
name: registry-configuration
key: reg-blocked
strategy:
name: buildah
kind: ClusterBuildStrategy
output:
# ...
- 1
- 이 값은 보안을 참조합니다.
1.5. 빌더 또는 Docker 파일 정의
Build
CR에서 spec.paramValues
필드를 사용하여 출력 이미지를 빌드하는 도구가 포함된 이미지를 지정할 수 있습니다. 다음 예제는 Build
CR에서 Dockerfile
이미지를 지정합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-golang-build spec: source: git: url: https://github.com/shipwright-io/sample-go contextDir: docker-build strategy: name: buildah kind: ClusterBuildStrategy paramValues: - name: dockerfile value: Dockerfile
다음 예와 같이 빌더
이미지를 Build
CR의 source-to-image
빌드 전략의 일부로 사용할 수도 있습니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: s2i-nodejs-build spec: source: git: url: https://github.com/shipwright-io/sample-nodejs contextDir: source-build/ strategy: name: source-to-image kind: ClusterBuildStrategy paramValues: - name: builder-image value: docker.io/centos/nodejs-10-centos7
1.6. 출력 정의
Build
CR에서 이미지를 내보낼 출력 위치를 지정할 수 있습니다. 외부 프라이빗 레지스트리를 출력 위치로 사용하는 경우 이미지에 액세스할 시크릿을 지정해야 합니다. 출력 이미지에 대한 주석 및 레이블을 지정할 수도 있습니다.
주석 또는 레이블을 지정하면 출력 이미지가 두 번 푸시됩니다. 첫 번째 푸시는 빌드 전략에서 가져오고 두 번째 푸시는 이미지 구성을 변경하여 주석과 레이블을 추가합니다.
다음 예제에서는 이미지가 푸시되는 퍼블릭 레지스트리를 정의합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: s2i-nodejs-build spec: source: git: url: https://github.com/shipwright-io/sample-nodejs contextDir: source-build/ strategy: name: source-to-image kind: ClusterBuildStrategy paramValues: - name: builder-image value: docker.io/centos/nodejs-10-centos7 output: image: image-registry.openshift-image-registry.svc:5000/build-examples/nodejs-ex
다음 예제에서는 이미지가 푸시되는 프라이빗 레지스트리를 정의합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: s2i-nodejs-build spec: source: git: url: https://github.com/shipwright-io/sample-nodejs contextDir: source-build/ strategy: name: source-to-image kind: ClusterBuildStrategy paramValues: - name: builder-image value: docker.io/centos/nodejs-10-centos7 output: image: us.icr.io/source-to-image-build/nodejs-ex pushSecret: icr-knbuild
다음 예제에서는 이미지에 대한 주석 및 레이블을 정의합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: s2i-nodejs-build spec: source: git: url: https://github.com/shipwright-io/sample-nodejs contextDir: source-build/ strategy: name: source-to-image kind: ClusterBuildStrategy paramValues: - name: builder-image value: docker.io/centos/nodejs-10-centos7 output: image: us.icr.io/source-to-image-build/nodejs-ex pushSecret: icr-knbuild annotations: "org.opencontainers.image.source": "https://github.com/org/repo" "org.opencontainers.image.url": "https://my-company.com/images" labels: "maintainer": "team@my-company.com" "description": "This is my cool image"
1.7. 빌드에 대한 보존 매개변수 정의
보존 매개변수는 다음과 같은 목적으로 정의할 수 있습니다.
- 완료된 빌드 실행이 존재할 수 있는 기간을 지정하려면 다음을 수행합니다.
- 빌드에 존재할 수 있는 성공 또는 실패한 빌드 실행 수를 지정하려면 다음을 수행합니다.
보존 매개 변수를 사용하면 BuildRun
인스턴스 또는 리소스를 자동으로 정리할 수 있습니다. Build
CR에서 다음 보존 매개변수 값을 설정할 수 있습니다.
-
retention.succeededLimit
: 빌드에 존재할 수 있는 성공한 빌드 실행 수를 정의합니다. -
retention.failedLimit
: 빌드에 존재할 수 있는 실패한 빌드 실행 수를 정의합니다. -
retention.ttlAfterFailed
: 실패한 빌드 실행이 존재할 수 있는 기간을 지정합니다. -
retention.ttlAfterSucceeded
: 성공적인 빌드 실행이 존재할 수 있는 기간을 지정합니다.
다음 예제에서는 Build
CR에서 보존 매개변수를 사용하는 방법을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: build-retention-ttl spec: source: git: url: "https://github.com/shipwright-io/sample-go" contextDir: docker-build strategy: kind: ClusterBuildStrategy name: buildah output: # ... retention: ttlAfterFailed: 30m ttlAfterSucceeded: 1h failedLimit: 10 succeededLimit: 20 # ...
retention.failedLimit
및 retention.succeededLimit
매개변수 값을 변경하면 빌드에 변경 사항이 적용되는 즉시 새 제한이 적용됩니다. 그러나 retention.ttlAfterFailed
및 retention.ttlAfterSucceeded
매개변수 값을 변경하면 새 빌드 실행에서만 새 보존 기간이 적용됩니다. 이전 빌드는 이전 보존 기간을 따릅니다. BuildRun
및 Build CR 모두에 보존 기간이 정의된 경우
CR에 정의된 보존 기간이 우선 순위를 가져옵니다.
Build
Run
1.8. 빌드의 볼륨 정의
Build
CR에서 볼륨을 정의할 수 있습니다. 정의된 볼륨은 BuildStrategy
리소스에 지정된 볼륨을 재정의합니다. 볼륨을 재정의하지 않으면 빌드 실행에 실패합니다.
다음 예제에서는 Build
CR의 volumes
필드를 사용하는 방법을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: <build_name> spec: source: git: url: https://github.com/example/url strategy: name: buildah kind: ClusterBuildStrategy paramValues: - name: dockerfile value: Dockerfile output: image: registry/namespace/image:latest volumes: - name: <your_volume_name> configMap: name: <your_configmap_name>
2장. 빌드 전략 구성
BuildStrategy
또는 ClusterBuildStrategy
CR(사용자 정의 리소스)에서는 전략 매개변수, 시스템 매개변수, 단계 리소스 정의, 주석 및 볼륨을 정의하여 빌드 전략을 구성할 수 있습니다. BuildStrategy
리소스는 네임스페이스 내에서 사용할 수 있으며 ClusterBuildStrategy
리소스는 클러스터 전체에서 사용할 수 있습니다.
빌드 전략을 구성하려면 BuildStrategy
또는 ClusterBuildStrategy
리소스 YAML 파일을 생성하여 OpenShift Container Platform 클러스터에 적용합니다.
2.1. 전략 매개변수 정의
BuildStrategy
또는 ClusterBuildStrategy
CR(사용자 정의 리소스)에서 전략 매개변수를 정의하고 Build 또는
CR에서 해당 매개변수 값을 설정하거나 수정할 수 있습니다. 빌드 전략을 생성할 때 빌드 시 전략 매개변수를 구성하거나 수정할 수도 있습니다.
Build
Run
전략에 대한 매개변수를 정의하기 전에 다음 사항을 고려하십시오.
-
빌드 전략 CR의
spec.parameters
필드에 매개변수 목록을 정의합니다. 각 목록 항목에는 배열 유형에 대한 이름, 설명, 유형 및 선택적 기본값 또는 값이 포함되어 있습니다. 기본값이 설정되지 않은 경우Build
또는BuildRun
CR에 값을 정의해야 합니다. -
빌드 전략의
spec.steps
필드에 문자열 또는 배열 유형의 매개변수를 정의합니다. $(params.your-parameter-name)
구문을 사용하여 문자열 유형의 매개변수를 지정합니다. 전략을 참조하는Build
또는BuildRun
CR에서your-parameter-name
매개변수 값을 설정할 수 있습니다. 요구 사항에 따라 다음 문자열 매개변수를 정의할 수 있습니다.표 2.1. 문자열 매개변수 매개변수 설명 image
이 매개변수를 사용하여
golang:$(params.go-version)
과 같은 사용자 정의 태그를 정의합니다.args
이 매개변수를 사용하여 빌더 명령에 데이터 전달
env
이 매개변수를 사용하여 환경 변수의 값을 제공
$(params.your-array-parameter-name[*])
구문을 사용하여 배열 유형의 매개변수를 지정합니다. 배열을 지정한 후 인수 또는 명령에서 사용할 수 있습니다. 배열의 각 항목에 대해 인수가 설정됩니다. 다음 예제에서는 빌드 전략의spec.steps
필드에서 array 매개변수를 사용합니다.apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: <cluster_build_strategy_name> # ... spec: parameters: - name: tool-args description: Parameters for the tool type: array steps: - name: a-step command: - some-tool args: - --tool-args - $(params.tool-args[*])
-
매개변수 값을 단순한 문자열로 제공하거나 구성 맵 또는 시크릿의 키에 대한 참조로 제공합니다. 매개변수의 경우
명령에
정의된 경우에만 구성 맵 또는 시크릿 값을 사용할 수 있습니다.spec.steps
필드의args
또는env
섹션.
2.2. 시스템 매개변수 정의
빌드 전략의 단계를 정의하여 시스템 정보에 액세스하거나 Build
또는 BuildRun
CR(사용자 정의 리소스)에서 사용자 정의 정보를 정의할 때 시스템 매개변수를 사용할 수 있습니다. 빌드 실행 컨트롤러에서 런타임에 정의하므로 시스템 매개변수를 구성하거나 수정할 수 없습니다.
빌드 전략 정의에서 다음 시스템 매개변수를 정의할 수 있습니다.
매개변수 | 설명 |
---|---|
| 소스 코드가 포함된 디렉터리의 절대 경로를 나타냅니다. |
|
소스 코드의 컨텍스트 디렉터리에 대한 절대 경로를 나타냅니다. |
|
|
2.3. 단계 리소스 정의
빌드 전략의 모든 단계에 대한 CPU, 메모리, 디스크 사용량과 같은 리소스 정의를 포함할 수 있습니다. 여러 단계가 있는 전략의 경우 다른 단계보다 많은 리소스가 필요할 수 있습니다. 전략 관리자는 각 단계에 적합한 리소스 값을 정의할 수 있습니다.
예를 들어 동일한 단계를 사용하여 전략을 설치할 수 있지만 클러스터에 다른 이름과 단계 리소스를 설치하여 사용자가 더 작거나 큰 리소스 요구 사항을 사용하여 빌드를 생성할 수 있습니다.
2.3.1. 다양한 리소스가 있는 전략
리소스에 대한 다양한 제한으로 동일한 전략의 여러 유형을 정의합니다. 다음 예제에서는 리소스에 정의된 소규모 및 중간 제한과 동일한 buildah
전략을 사용합니다. 이 예제에서는 전략 관리자가 단계 리소스 정의를 보다 효과적으로 제어할 수 있도록 제공합니다.
2.3.1.1. 작은 제한이 있는 Buildah 전략
다음 예와 같이 buildah
전략에 대한 작은 리소스 제한을 사용하여 spec.steps[].resources
필드를 정의합니다.
예: 작은 제한이 있는 buildah
전략
apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: buildah-small spec: steps: - name: build-and-push image: quay.io/containers/buildah:v1.31.0 workingDir: $(params.shp-source-root) securityContext: capabilities: add: - "SETFCAP" command: - /bin/bash args: - -c - | set -euo pipefail # Parse parameters # ... # That's the separator between the shell script and its args - -- - --context - $(params.shp-source-context) - --dockerfile - $(build.dockerfile) - --image - $(params.shp-output-image) - --build-args - $(params.build-args[*]) - --registries-block - $(params.registries-block[*]) - --registries-insecure - $(params.registries-insecure[*]) - --registries-search - $(params.registries-search[*]) resources: limits: cpu: 250m memory: 65Mi requests: cpu: 250m memory: 65Mi parameters: - name: build-args description: "The values for the args in the Dockerfile. Values must be in the format KEY=VALUE." type: array defaults: [] # ...
2.3.1.2. 중간 제한이 있는 Buildah 전략
다음 예와 같이 buildah
전략에 대한 중간 리소스 제한을 사용하여 spec.steps[].resources
필드를 정의합니다.
예: 중간 제한이 있는 buildah
전략
apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: buildah-medium spec: steps: - name: build-and-push image: quay.io/containers/buildah:v1.31.0 workingDir: $(params.shp-source-root) securityContext: capabilities: add: - "SETFCAP" command: - /bin/bash args: - -c - | set -euo pipefail # Parse parameters # ... # That's the separator between the shell script and its args - -- - --context - $(params.shp-source-context) - --dockerfile - $(build.dockerfile) - --image - $(params.shp-output-image) - --build-args - $(params.build-args[*]) - --registries-block - $(params.registries-block[*]) - --registries-insecure - $(params.registries-insecure[*]) - --registries-search - $(params.registries-search[*]) resources: limits: cpu: 500m memory: 1Gi requests: cpu: 500m memory: 1Gi parameters: - name: build-args description: "The values for the args in the Dockerfile. Values must be in the format KEY=VALUE." type: array defaults: [] # ...
전략에 대한 리소스 정의를 구성한 후 다음 예와 같이 Build
CR의 전략을 참조해야 합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-medium spec: source: git: url: https://github.com/shipwright-io/sample-go contextDir: docker-build strategy: name: buildah-medium kind: ClusterBuildStrategy # ...
2.3.2. Tekton 파이프라인의 리소스 관리
빌드 컨트롤러는 전략 단계를 실행하기 위해 Pod를 예약할 수 있도록 Tekton 파이프라인 컨트롤러에서 작동합니다. 런타임 시 빌드 컨트롤러에서 Tekton TaskRun
리소스를 생성하고 TaskRun
리소스는 특정 네임스페이스에 새 Pod를 생성합니다. 그런 다음 이 Pod는 모든 전략 단계를 순차적으로 실행하여 이미지를 빌드합니다.
2.4. 주석 정의
빌드 전략 또는 다른 Kubernetes 오브젝트에 대한 클러스터 빌드 전략에 대한 주석을 정의할 수 있습니다. 빌드 전략에서는 먼저 주석을 TaskRun
리소스에 전파합니다. 그런 다음 Tekton은 해당 항목을 Pod에 전파합니다.
다음과 같은 목적으로 주석을 사용할 수 있습니다.
-
Pod가 사용할 수 있는 네트워크 대역폭을 제한하기 위해
kubernetes.io/ingress-bandwidth
및kubernetes.io/egress-bandwidth
주석은 Kubernetes 네트워크 트래픽 셰이핑 기능에 정의됩니다. -
컨테이너의 AppArmor 프로필을 정의하려면
container.apparmor.security.beta.kubernetes.io/<container_name
> 주석이 사용됩니다.
다음 예제에서는 빌드 전략에서 주석 사용을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: <cluster_build_strategy_name> annotations: container.apparmor.security.beta.kubernetes.io/step-build-and-push: unconfined container.seccomp.security.alpha.kubernetes.io/step-build-and-push: unconfined spec: # ...
다음 주석은 전파되지 않습니다.
-
kubectl.kubernetes.io/last-applied-configuration
-
clusterbuildstrategy.shipwright.io/*
-
buildstrategy.shipwright.io/*
-
build.shipwright.io/*
-
buildrun.shipwright.io/*
전략 관리자는 정책 엔진을 사용하여 주석 사용을 추가로 제한할 수 있습니다.
2.5. 문자열 매개변수 보안 참조
문자열 매개변수는 BuildStrategy 또는 Cluster
CR(사용자 정의 리소스)에서 환경 변수, 인수 또는 이미지를 정의할 때 사용됩니다. 빌드 전략 단계에서는 BuildStrategy
$(params.your-parameter-name)
구문을 사용하여 문자열 매개변수를 참조할 수 있습니다.
빌드 전략 단계에서 $(params.your-parameter-name)
구문을 사용하여 시스템 매개변수 및 전략 매개변수를 참조할 수도 있습니다.
Pod에서 모든 $(params.your-parameter-name)
변수가 실제 문자열로 교체됩니다. 그러나 인라인 스크립트를 사용하여 인수에서 string 매개변수를 참조할 때 주의해야 합니다. 예를 들어 스크립트로 정의된 인수로 매개변수 값을 안전하게 전달하려면 다음 접근 방법 중 하나를 선택할 수 있습니다.
- 환경 변수 사용
- 인수 사용
예: 문자열 매개변수를 환경 변수에 참조
문자열 매개 변수를 스크립트 내에서 직접 사용하는 대신 환경 변수에 전달할 수 있습니다. 환경 변수 인용을 사용하면 명령 삽입 취약점을 방지할 수 있습니다. buildah
와 같은 전략에 이 접근 방식을 사용할 수 있습니다. 다음 예제에서는 스크립트 내의 환경 변수를 사용하여 문자열 매개변수를 참조합니다.
apiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: sample-strategy spec: parameters: - name: sample-parameter description: A sample parameter type: string steps: - name: sample-step env: - name: PARAM_SAMPLE_PARAMETER value: $(params.sample-parameter) command: - /bin/bash args: - -c - | set -euo pipefail some-tool --sample-argument "${PARAM_SAMPLE_PARAMETER}"
예: 문자열 매개변수를 인수로 참조
string 매개변수를 스크립트 내에 정의된 인수로 전달할 수 있습니다. 명령 주입에 대한 감시를 인용하는 적절한 쉘입니다. buildah
와 같은 전략에 이 접근 방식을 사용할 수 있습니다. 다음 예제에서는 스크립트 내에 정의된 인수를 사용하여 문자열 매개변수를 참조합니다.
apiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: sample-strategy spec: parameters: - name: sample-parameter description: A sample parameter type: string steps: - name: sample-step command: - /bin/bash args: - -c - | set -euo pipefail SAMPLE_PARAMETER="$1" some-tool --sample-argument "${SAMPLE_PARAMETER}" - -- - $(params.sample-parameter)
2.6. 시스템 결과 정의
빌드 전략에서 생성한 이미지의 크기와 다이제스트를 결과 파일 집합에 저장할 수 있습니다. BuildRun
리소스가 실패하는 경우 디버깅을 위해 오류 세부 정보를 저장할 수도 있습니다. BuildStrategy
또는 ClusterBuildStrategy
CR에서 다음 결과 매개변수를 정의할 수 있습니다.
매개변수 | 설명 |
---|---|
| 이미지의 다이제스트를 저장하는 파일의 경로를 나타냅니다. |
| 이미지의 압축 크기를 저장하는 파일의 경로를 나타냅니다. |
| 오류 이유를 저장하는 파일의 경로를 나타냅니다. |
| 오류 메시지를 저장하는 파일의 경로를 나타냅니다. |
다음 예제는 BuildRun
CR의 .status.output
필드에 있는 이미지의 크기와 다이제스트를 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun # ... status: # ... output: digest: sha256:07626e3c7fdd28d5328a8d6df8d29cd3da760c7f5e2070b534f9b880ed093a53 size: 1989004 # ...
다음 예제에서는 BuildRun
CR의 .status.failure Details
필드에 있는 오류 이유 및 메시지를 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun # ... status: # ... failureDetails: location: container: step-source-default pod: baran-build-buildrun-gzmv5-b7wbf-pod-bbpqr message: The source repository does not exist, or you have insufficient permission to access it. reason: GitRemotePrivate
2.7. 볼륨 및 볼륨 마운트 정의
빌드 전략에는 볼륨 및 볼륨 마운트 정의가 포함됩니다. 빌드 전략에 정의된 볼륨은 일반적인 volumeSource
유형을 모두 지원합니다. 빌드 단계는 볼륨 마운트를 생성하여 볼륨을 참조합니다.
빌드 단계에 정의된 볼륨 마운트를 사용하면 BuildStrategy
, Build 또는
리소스에 정의된 볼륨에 액세스할 수 있습니다.
Build
Run
빌드 전략의 볼륨은 기본적으로 false
로 설정된 overridable
부울 플래그를 사용합니다. Build
또는 BuildRun
리소스가 BuildStrategy
리소스에 정의된 볼륨을 덮어쓰려고 하면 덮어쓸 수 있는
플래그의 기본값이 false
이므로 실패합니다.
다음 예제에서는 volumes
및 volumeMounts
필드를 정의하는 BuildStrategy
리소스를 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: buildah spec: steps: - name: build image: quay.io/containers/buildah:v1.23.3 # ... volumeMounts: - name: varlibcontainers mountPath: /var/lib/containers volumes: - name: varlibcontainers overridable: true emptyDir: {}
3장. 빌드 실행 구성
BuildRun
CR(사용자 정의 리소스)에서는 빌드 참조, 빌드 사양, 매개변수 값, 서비스 계정, 출력, 보존 매개변수 및 볼륨을 정의하여 빌드 실행을 구성할 수 있습니다. BuildRun
리소스는 네임스페이스 내에서 사용할 수 있습니다.
빌드 실행을 구성하려면 BuildRun
리소스 YAML 파일을 생성하여 OpenShift Container Platform 클러스터에 적용합니다.
3.1. 빌드 실행의 구성 가능한 필드
BuildRun
CR(사용자 정의 리소스)에서 다음 필드를 사용할 수 있습니다.
필드 | presence | 설명 |
---|---|---|
| 필수 항목 |
리소스의 API 버전을 지정합니다. 예를 들어 |
| 필수 항목 |
리소스 유형을 지정합니다. 예를 들면 |
| 필수 항목 |
사용자 지정 리소스 정의 인스턴스를 식별하는 메타데이터를 나타냅니다. 예를 들어 |
| 선택 사항 |
사용할 기존 |
| 선택 사항 |
사용할 포함된 |
| 선택 사항 | 이미지를 빌드할 때 사용할 서비스 계정을 나타냅니다. |
| 선택 사항 |
사용자 정의 시간 초과를 정의합니다. 이 필드 값은 |
| 선택 사항 |
빌드 전략에 정의된 매개변수 값을 지정하는 name-value 목록을 나타냅니다. 매개변수 값은 |
| 선택 사항 |
생성된 이미지를 내보낼 사용자 지정 위치를 나타냅니다. 이 필드 값은 |
| 선택 사항 |
컨테이너 레지스트리에 액세스할 수 있는 기존 시크릿을 나타냅니다. 이 시크릿은 |
| 선택 사항 |
빌드 컨테이너에 전달할 수 있는 추가 환경 변수를 정의합니다. 이 필드 값은 |
spec.build.name
및 spec.build.spec
필드는 함께 사용할 수 없으므로 동일한 CR에서 함께 사용할 수 없습니다.
3.2. 빌드 참조 정의
BuildRun
리소스에서 spec.build.name
필드를 구성하여 빌드할 이미지를 나타내는 Build
리소스를 참조할 수 있습니다. 다음 예제는 spec.build.name
필드를 구성하는 BuildRun
CR을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buildah-buildrun spec: build: name: buildah-build
3.3. 빌드 사양 정의
spec.build.spec
필드를 사용하여 BuildRun
리소스에 전체 빌드 사양을 포함할 수 있습니다. 사양을 포함하면 전용 Build
사용자 정의 리소스를 생성하고 유지 관리하지 않고도 이미지를 빌드할 수 있습니다. 다음 예제는 spec.build.spec
필드를 구성하는 BuildRun
CR을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: standalone-buildrun spec: build: spec: source: git: url: https://github.com/shipwright-io/sample-go.git contextDir: source-build strategy: kind: ClusterBuildStrategy name: buildah output: image: <path_to_image>
spec.build.name
및 spec.build.spec
필드는 함께 사용할 수 없으므로 동일한 CR에서 함께 사용할 수 없습니다.
3.4. 빌드 실행에 대한 매개변수 값 정의
BuildRun
CR에서 빌드 전략 매개변수의 값을 지정할 수 있습니다. 동일한 이름의 Build 리소스에도 정의된 매개변수 값을 제공한 경우
리소스에 정의된 값이 우선합니다.
Build
Run
다음 예에서 BuildRun
리소스의 cache
매개변수 값은 Build
리소스에 정의된 cache
매개변수의 값을 재정의합니다.
apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: <your_build> namespace: <your_namespace> spec: paramValues: - name: cache value: disabled strategy: name: <your_strategy> kind: ClusterBuildStrategy source: # ... output: # ...
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: <your_buildrun> namespace: <your_namespace> spec: build: name: <your_build> paramValues: - name: cache value: registry
3.5. 서비스 계정 정의
BuildRun
리소스에서 서비스 계정을 정의할 수 있습니다. 서비스 계정은 다음 예와 같이 Build
리소스에서 참조하는 모든 보안을 호스팅합니다.
apiVersion: shipwright.io/v1beta1
kind: BuildRun
metadata:
name: buildah-buildrun
spec:
build:
name: buildah-build
serviceAccount: pipeline 1
- 1
spec.serviceAccount
필드의 값을".generate"
로 설정하여 런타임 중에 서비스 계정을 생성할 수도 있습니다. 생성된 서비스 계정의 이름은BuildRun
리소스의 이름과 일치합니다.
서비스 계정을 정의하지 않으면 BuildRun
리소스는 네임스페이스에 있는 경우 파이프라인
서비스 계정을 사용합니다. 그렇지 않으면 BuildRun
리소스에서 기본
서비스 계정을 사용합니다.
3.6. 빌드 실행에 대한 보존 매개변수 정의
BuildRun
리소스에 완료된 빌드 실행이 존재할 수 있는 기간을 지정할 수 있습니다. 보존 매개 변수를 사용하면 BuildRun
인스턴스를 자동으로 정리할 수 있습니다. BuildRun
CR에서 다음 보존 매개변수의 값을 설정할 수 있습니다.
-
retention.ttlAfterFailed
: 실패한 빌드 실행이 존재할 수 있는 기간을 지정합니다. -
retention.ttlAfterSucceeded
: 성공적인 빌드 실행이 존재할 수 있는 기간을 지정합니다.
다음 예제에서는 BuildRun
CR에서 보존 매개변수를 정의하는 방법을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buidrun-retention-ttl spec: build: name: build-retention-ttl retention: ttlAfterFailed: 10m ttlAfterSucceeded: 10m
BuildRun
및 Build
CR 모두에 retention 매개변수를 정의한 경우
CR에 정의된 값이 Build CR에 정의된 보존 매개변수 값을 재정의합니다.
Build
Run
3.7. 빌드 실행에 대한 볼륨 정의
BuildRun
CR에서 볼륨을 정의할 수 있습니다. 정의된 볼륨은 BuildStrategy
리소스에 지정된 볼륨을 재정의합니다. 볼륨을 재정의하지 않으면 빌드 실행에 실패합니다.
Build
및 BuildRun
리소스가 동일한 볼륨을 재정의하는 경우 BuildRun
리소스에 정의된 볼륨이 재정의에 사용됩니다.
다음 예제에서는 volumes
필드를 사용하는 BuildRun
CR을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: <buildrun_name> spec: build: name: <build_name> volumes: - name: <volume_name> configMap: name: <configmap_name>
3.8. 환경 변수 정의
필요에 따라 BuildRun
CR에서 환경 변수를 사용할 수 있습니다. 다음 예제에서는 환경 변수를 정의하는 방법을 보여줍니다.
예: 환경 변수를 사용하여 BuildRun
리소스 정의
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buildah-buildrun spec: build: name: buildah-build env: - name: <example_var_1> value: "<example_value_1>" - name: <example_var_2> value: "<example_value_2>"
다음 예제에서는 Kubernetes Downward API를 사용하여 Pod를 환경 변수로 노출하는 BuildRun
리소스를 보여줍니다.
예: Pod를 환경 변수로 노출하도록 BuildRun
리소스 정의
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buildah-buildrun spec: build: name: buildah-build env: - name: <pod_name> valueFrom: fieldRef: fieldPath: metadata.name
다음 예제에서는 Kubernetes Downward API를 사용하여 컨테이너를 환경 변수로 노출하는 BuildRun
리소스를 보여줍니다.
예: 컨테이너를 환경 변수로 노출하도록 BuildRun
리소스 정의
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buildah-buildrun spec: build: name: buildah-build env: - name: MEMORY_LIMIT valueFrom: resourceFieldRef: containerName: <my_container> resource: limits.memory
3.9. 빌드 실행 상태
BuildRun
리소스는 다음 예와 같이 이미지 빌드 상태가 변경될 때마다 업데이트됩니다.
예: 알 수 없는 상태로 빌드
$ oc get buildrun buildah-buildrun-mp99r NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-buildrun-mp99r Unknown Unknown 1s
예: True 상태로 BuildRun
$ oc get buildrun buildah-buildrun-mp99r NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-buildrun-mp99r True Succeeded 29m 20m
BuildRun
리소스는 상태 관련 정보를 status.conditions
필드에 저장합니다. 예를 들어 Succeeded
유형의 조건은 리소스가 작업을 성공적으로 완료했음을 나타냅니다. status.conditions
필드에는 BuildRun
리소스의 status, reason, message와 같은 중요한 정보가 포함됩니다.
3.9.1. 빌드 실행 상태 설명
BuildRun
CR(사용자 정의 리소스)은 이미지 빌드 프로세스 중에 다른 상태를 가질 수 있습니다. 다음 표에서는 빌드 실행의 다양한 상태에 대해 설명합니다.
상태 | 원인 | 설명 |
---|---|---|
|
|
|
|
|
|
|
| 사용자가 빌드 실행을 취소하도록 요청했습니다. 이 요청은 빌드 실행 컨트롤러를 트리거하여 관련 작업 실행 취소를 요청합니다. 이 상태가 있는 경우에도 취소가 진행 중입니다. |
|
|
|
|
|
단계 중 하나에서 |
|
|
|
|
|
|
|
| 참조된 클러스터 범위 전략이 클러스터에서 찾을 수 없습니다. |
|
| 참조된 네임스페이스 범위 전략이 클러스터에서 찾을 수 없습니다. |
|
|
|
|
|
|
|
|
|
|
|
기본값 없이 빌드 전략에 정의된 일부 매개변수에 대한 값을 제공하지 않았습니다. |
|
| 시스템 매개 변수의 값이 제공되었습니다. 이 값은 허용되지 않습니다. |
|
| 빌드 전략에 정의되지 않은 매개변수 값이 제공되었습니다. |
|
| 잘못된 유형의 빌드 전략 매개변수에 대한 값이 제공되었습니다. 예를 들어 매개변수가 빌드 전략에서 배열 또는 문자열로 정의된 경우 그에 따라 값 집합 또는 직접 값을 제공해야 합니다. |
|
|
매개변수 값에는 값 , |
|
|
array 매개변수의 값에는 값 , |
|
|
매개변수 값에는 |
|
|
매개변수 값에는 |
|
| 참조된 서비스 계정이 클러스터에서 찾을 수 없습니다. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
정의된 |
|
|
정의된 |
|
| 빌드 실행 Pod가 실행 중인 노드에서 제거되었습니다. |
3.9.2. 빌드 실행 실패
빌드 실행에 실패하면 BuildRun
CR의 status.failure Details
필드를 확인하여 Pod 또는 컨테이너에서 오류가 발생한 정확한 지점을 확인할 수 있습니다. status.failureDetails
필드에는 오류 메시지와 실패 이유가 포함됩니다. 빌드 전략에 정의된 경우 메시지와 실패 이유만 표시됩니다.
다음 예제에서는 실패한 빌드 실행을 보여줍니다.
# ... status: # ... failureDetails: location: container: step-source-default pod: baran-build-buildrun-gzmv5-b7wbf-pod-bbpqr message: The source repository does not exist, or you have insufficient permission to access it. reason: GitRemotePrivate
status.failureDetails
필드는 Git과 관련된 모든 작업에 대한 오류 세부 정보도 제공합니다.
3.9.3. 단계적 결과 빌드 실행 상태가
BuildRun
리소스의 실행을 완료한 후 .status
필드에 빌드 실행 컨트롤러에서 생성된 단계에서 .status.taskResults
결과가 포함됩니다. 결과에는 이미지 다이제스트 또는 이미지 빌드에 사용되는 소스 코드의 커밋 SHA가 포함됩니다. BuildRun
리소스에서 .status.sources
필드에는 소스 단계 실행의 결과가 포함되어 있으며 .status.output
필드에는 출력 단계의 실행 결과가 포함됩니다.
다음 예제에서는 Git 소스에 대한 단계 결과가 있는 BuildRun
리소스를 보여줍니다.
예: Git 소스에 대한 단계 결과가 있는 BuildRun
리소스
# ... status: buildSpec: # ... output: digest: sha256:07626e3c7fdd28d5328a8d6df8d29cd3da760c7f5e2070b534f9b880ed093a53 size: 1989004 sources: - name: default git: commitAuthor: xxx xxxxxx commitSha: f25822b85021d02059c9ac8a211ef3804ea8fdde branchName: main
다음 예제에서는 로컬 소스 코드에 대한 단계 결과가 있는 BuildRun
리소스를 보여줍니다.
예: 로컬 소스 코드에 대한 단계 결과가 있는 BuildRun
리소스
# ... status: buildSpec: # ... output: digest: sha256:07626e3c7fdd28d5328a8d6df8d29cd3da760c7f5e2070b534f9b880ed093a53 size: 1989004 sources: - name: default bundle: digest: sha256:0f5e2070b534f9b880ed093a537626e3c7fdd28d5328a8d6df8d29cd3da760c7
빌드 전략에 정의된 경우에만 출력 이미지의 다이제스트와 크기가 표시됩니다.
3.9.4. 빌드 스냅샷
각 빌드 실행 조정에 대해 기존 작업 실행이 해당 빌드 실행의 일부인 경우 BuildRun
리소스 상태의 buildSpec
필드가 업데이트됩니다.
이번 업데이트 중에 Build
리소스 스냅샷은 BuildRun
리소스의 status.buildSpec
필드를 생성하고 포함합니다. 이로 인해 buildSpec
필드에는 특정 이미지 빌드를 실행하는 데 사용된 원래 Build
사양의 정확한 사본이 포함되어 있습니다. 빌드 스냅샷을 사용하면 원래 Build
리소스 구성을 볼 수 있습니다.
3.10. Tekton 작업과의 빌드 실행 관계
BuildRun
리소스는 이미지 생성 작업을 Tekton TaskRun
리소스에 위임하여 작업이 완료되거나 작업에서 실패할 때까지 모든 단계를 실행합니다.
빌드 실행 조정 중에 빌드 실행 컨트롤러에서 새 TaskRun
리소스를 생성합니다. 컨트롤러는 TaskRun
리소스에서 빌드 실행 실행에 필요한 단계를 포함합니다. 포함된 단계는 빌드 전략에 정의됩니다.
3.11. 빌드 실행 취소
상태를
로 설정하여 활성 BuildRun 인스턴스를 취소할 수 있습니다. BuildRun
CanceledBuildRun
인스턴스를 취소하면 기본 TaskRun
리소스도 취소됨으로 표시됩니다.
다음 예제에서는 BuildRun
리소스에 대해 취소된 빌드 실행을 보여줍니다.
apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: buildah-buildrun spec: # [...] state: "BuildRunCanceled"
3.12. 자동 빌드 실행 삭제
빌드 실행을 자동으로 삭제하려면 빌드 또는
사양에 다음 보존 매개변수를 추가할 수 있습니다.
build
run
buildrun
TTL 매개변수: 빌드가 완료된 후 정의된 기간 동안만 존재하는지 확인합니다.-
buildrun.spec.retention.ttlAfterFailed
: 지정된 시간이 경과하고 빌드 실행에 실패한 경우 빌드 실행이 삭제됩니다. -
buildrun.spec.retention.ttlAfterSucceeded
: 지정된 시간이 통과되고 빌드 실행에 성공하면 빌드 실행이 삭제됩니다.
-
Build
TTL 매개변수: 빌드가 완료된 후 정의된 기간 동안만 빌드에 대해 실행되도록 합니다.-
build.spec.retention.ttlAfterFailed
: 지정된 시간이 경과하고 빌드 실행에 실패한 경우 빌드 실행이 삭제됩니다. -
build.spec.retention.ttlAfterSucceeded
: 지정된 시간이 경과하고 빌드에 성공한 경우 빌드 실행이 삭제됩니다.
-
빌드
제한 매개변수: 빌드에 대해 제한된 수의 성공 또는 실패한 빌드 실행만 존재할 수 있는지 확인합니다.-
build.spec.retention.succeededLimit
: 빌드에 존재할 수 있는 성공한 빌드 실행 수를 정의합니다. -
build.spec.retention.failedLimit
: 빌드에 존재할 수 있는 실패한 빌드 실행 수를 정의합니다.
-
4장. 네트워크 제한 환경에서 빌드 사용
Red Hat OpenShift Pipelines Operator는 네트워크 제한 환경에서 프록시 환경 변수를 삽입할 수 있도록 지원합니다.
4.1. 클러스터 전체 프록시 확인
클러스터 관리자는 클러스터 전체 프록시 설정을 확인할 수 있습니다.
프로세스
클러스터 전체 프록시가 올바르게 구성되었는지 확인하려면 다음 명령을 실행합니다.
$ oc describe proxy/cluster
cluster proxy 오브젝트는 프록시 서버 및 인증서 정보를 표시합니다.
4.2. 프록시 환경 변수 확인
클러스터 관리자는 환경 변수를 확인하여 OpenShift Container Platform 클러스터에서 Red Hat OpenShift의 빌드에 프록시 설정이 올바르게 구성되었는지 확인할 수 있습니다.
프로세스
환경 변수를 확인하려면 다음 명령을 실행합니다.
$ oc set env deployment/openshift-builds-operator --list -n openshift-builds | grep PROXY
다음 예제 출력에는
HTTP_PROXY
,HTTPS_PROXY
,NO_PROXY
환경 변수가 나열되어 있습니다.HTTP_PROXY=http://192.168.130.1:3128 HTTPS_PROXY=https://192.168.130.1:3129 NO_PROXY=.cluster.local,.svc,.testing,10.217.0.0/22,10.217.4.0/23,127.0.0.1,192.168.126.0/24,192.168.1 30.11,api-int.crc.testing,localhost
4.3. 추가 리소스
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.