10.7.3. 매개 변수
매개변수를 사용하면 값을 사용자가 제공하도록 할 수도 있고 템플릿이 인스턴스화될 때 생성되도록 할 수도 있습니다. 그러면 해당 값이 매개변수가 참조될 때마다 대체됩니다. 참조는 오브젝트 목록 필드의 어떤 필드에서든 정의할 수 있습니다. 임의의 암호를 생성하거나 사용자가 템플릿을 사용자 정의하는 데 필요한 호스트 이름 또는 기타 사용자 특정 값을 제공할 수 있도록 하는 데 유용합니다. 매개변수는 다음 두 가지 방법으로 참조할 수 있습니다.
- 템플릿에 있는 임의의 문자열 필드에 ${PARAMETER_NAME} 형식의 값을 배치하여 문자열 값으로 참조합니다.
- 템플릿에서 임의의 필드 대신 ${{PARAMETER_NAME}} 형식의 값을 배치하여 json/yaml 값으로 참조합니다.
${PARAMETER_NAME} 구문을 사용하는 경우 여러 매개변수 참조가 단일 필드에서 결합될 수 있으며 참조는 "http://${PARAMETER_1}${PARAMETER_2}" 같이 고정된 데이터에 내에 포함될 수 있습니다. 매개변수 값이 둘 다 대체되며 결과 값은 인용된 문자열이 됩니다.
${{PARAMETER_NAME}} 구문을 사용하는 경우 단일 매개변수 참조만 허용되며 선행/후행 문자는 허용되지 않습니다. 대체가 수행된 후 결과가 유효한 json 오브젝트인 경우 결과 값이 인용되지 않습니다. 결과가 유효한 json 값이 아닌 경우 결과 값이 인용되고 표준 문자열로 처리됩니다.
단일 매개변수는 템플릿 내에서 여러 번 참조될 수 있으며 단일 템플릿 내에서 두 대체 구문을 사용하여 참조될 수도 있습니다.
사용자가 다른 값을 제공하지 않은 경우 사용되는 기본값을 제공할 수 있습니다.
예 10.5. Explicit Value를 기본값으로 설정
parameters: - name: USERNAME description: "The user name for Joe" value: joe
매개변수 값은 매개변수 정의에 지정된 규칙에 따라 생성할 수도 있습니다.
예 10.6. 매개 변수 값 생성
parameters: - name: PASSWORD description: "The random user password" generate: expression from: "[a-zA-Z0-9]{12}"
위의 예에서 처리가 완료되면 모든 대문자 및 소문자 영문자와 숫자로 구성된 12자 길이의 임의의 암호가 생성됩니다.
사용 가능한 구문은 완전한 정규식 구문이 아닙니다. 하지만 \w
, \d
및 \a
한정자를 사용할 수 있습니다.
-
[\w]{10}
은 10개의 영문자, 숫자 및 밑줄을 생성합니다. PCRE 표준을 따르며[a-zA-Z0-9_]{10}
과 동일합니다. -
[\D]{10}
은 10개의 숫자를 생성합니다.[0-9]{10}
와 동일합니다. -
[\a]{10}
은 10개의 알파벳 문자를 생성합니다.[a-zA-Z]{10}
와 동일합니다.
다음은 매개변수 정의 및 참조가 포함된 전체 템플릿의 예입니다.
예 10.7. 매개변수 정의 및 참조가 포함된 전체 템플릿
kind: Template apiVersion: v1 metadata: name: my-template objects: - kind: BuildConfig apiVersion: v1 metadata: name: cakephp-mysql-example annotations: description: Defines how to build the application spec: source: type: Git git: uri: "${SOURCE_REPOSITORY_URL}" 1 ref: "${SOURCE_REPOSITORY_REF}" contextDir: "${CONTEXT_DIR}" - kind: DeploymentConfig apiVersion: v1 metadata: name: frontend spec: replicas: "${{REPLICA_COUNT}}" 2 parameters: - name: SOURCE_REPOSITORY_URL 3 displayName: Source Repository URL 4 description: The URL of the repository with your application source code 5 value: https://github.com/sclorg/cakephp-ex.git 6 required: true 7 - name: GITHUB_WEBHOOK_SECRET description: A secret string used to configure the GitHub webhook generate: expression 8 from: "[a-zA-Z0-9]{40}" 9 - name: REPLICA_COUNT description: Number of replicas to run value: "2" required: true message: "... The GitHub webhook secret is ${GITHUB_WEBHOOK_SECRET} ..." 10
- 1
- 이 값은 템플릿이 인스턴스화될 때
SOURCE_REPOSITORY_URL
매개변수 값으로 교체됩니다. - 2
- 이 값은 템플릿이 인스턴스화될 때 인용되지 않은
REPLICA_COUNT
매개변수 값으로 교체됩니다. - 3
- 매개변수의 이름입니다. 이 값은 템플릿 내에서 매개변수를 참조하는 데 사용됩니다.
- 4
- 사용자에게 친숙한 매개변수 이름입니다. 사용자에게 표시됩니다.
- 5
- 매개변수에 대한 설명입니다. 예상 값에 대한 제약 조건을 비롯하여 매개변수의 목적에 대한 자세한 정보를 제공합니다. 설명은 콘솔의 텍스트 표준 을 따르기 위해 완전한 문장을 사용해야 합니다. 표시 이름과 중복되지 않도록 하십시오.
- 6
- 템플릿을 인스턴스화할 때 사용자가 값을 재정의하지 않는 경우 사용되는 매개변수의 기본값입니다. 암호 등에 기본값을 사용하지 말고 생성된 매개변수를 시크릿과 조합하여 사용하십시오.
- 7
- 이 매개변수가 필수임을 나타냅니다. 즉, 사용자가 빈 값으로 이 매개변수를 재정의할 수 없습니다. 매개변수가 기본값 또는 생성된 값을 제공하지 않으면 사용자가 값을 제공해야 합니다.
- 8
- 값이 생성되어 있는 매개변수입니다.
- 9
- 생성기에 대한 입력입니다. 이 경우 생성기는 대문자 및 소문자를 포함하여 40자 길이의 영숫자 값을 생성합니다.
- 10
- 매개변수가 템플릿 메시지에 포함될 수 있습니다. 사용자에게 생성된 값에 대해 알려줍니다.