1.4. 빌드의 매개변수 값 정의
Build CR에서 빌드 전략 매개변수의 값을 지정할 수 있습니다. 매개변수 값을 지정하면 빌드 전략의 단계가 작동하는 방법을 제어할 수 있습니다. BuildRun 리소스의 값을 덮어쓸 수도 있습니다.
모든 매개변수의 경우 직접 또는 구성 맵 또는 시크릿의 참조 키를 사용하여 값을 지정해야 합니다.
빌드 전략 단계에서 매개변수를 사용하면 구성 맵 및 시크릿 사용이 제한됩니다. 매개변수가 명령, 인수 또는 환경 변수에 사용되는 경우에만 구성 맵과 시크릿을 사용할 수 있습니다.
Build CR에서 paramValues 필드를 사용하는 경우 다음 시나리오를 사용하지 마십시오.
-
BuildStrategyCR에 정의된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:
name: registry-configuration
key: reg-blocked
strategy:
name: buildah
kind: ClusterBuildStrategy
output:
# ...
- 1
- 이 값은 보안을 참조합니다.