텍톤 파이프라인 환경 속성 및 리소스
다음 정보 및 리소스는 기본적으로 IBM Cloud® Continuous Delivery 텍톤 PipelineRun
에서 사용할 수 있습니다.
PipelineRun
주석(Annotation)
표 1에서는 Tekton PipelineRun
에 포함된 어노테이션에 대해 설명합니다.
어노테이션 실행 | 설명 |
---|---|
devops.cloud.ibm.com/build-number |
파이프라인의 빌드 번호입니다. 이 숫자는 모든 트리거의 파이프라인 실행의 누적 총계입니다. |
devops.cloud.ibm.com/listener |
이 파이프라인 실행을 시작한 트리거에 매핑된 Tekton eventlistener . |
devops.cloud.ibm.com/pipeline-id |
이 실행에 사용된 파이프라인의 고유 ID입니다. |
devops.cloud.ibm.com/trigger-name |
이 파이프라인 실행을 시작한 트리거의 이름입니다. |
devops.cloud.ibm.com/trigger-type |
이 파이프라인 실행을 시작한 트리거의 유형입니다. 유형은 manual , timer , scm 또는 generic 일 수 있습니다. |
devops.cloud.ibm.com/triggered-by |
트리거를 시작한 사용자입니다. 이 값은 manual 트리거의 경우 실행을 누른 사용자, timer 트리거의 경우 트리거를 마지막으로 저장한 사용자, scm 트리거의 경우 Git 작업을 수행한 사용자의 IBMId입니다. generic 트리거의 경우 이 값은 공백입니다. |
devops.cloud.ibm.com/pipeline-run-url |
이 파이프라인 실행을 위한 세부사항 페이지의 URL입니다. |
devops.cloud.ibm.com/tekton-pipeline |
이 파이프라인 실행의 고유 ID입니다. |
어노테이션에 액세스
파이프라인 정의 yaml 파일 내의 태스크에서 어노테이션에 액세스할 수 있습니다. 다음 예제는 devops.cloud.ibm.com/build-number
어노테이션에 액세스하는 방법을 보여줍니다. 해당 어노테이션을 환경 변수로 제공하려면 표 1의 실행 어노테이션 중 하나로 바꾸세요. PipelineRun
어노테이션.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: simple-task
spec:
steps:
- name: simple-step
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: BUILD_NUMBER
valueFrom:
fieldRef:
fieldPath: metadata.annotations['devops.cloud.ibm.com/build-number']
command: ["bash", "-c"]
args:
- echo $BUILD_NUMBER;
echo "COMPLETED"
PipelineRun ConfigMap
및 Secret
Continuous Delivery Tekton PipelineRun
리소스는 환경 속성에 대한 특정 ConfigMap
및 Secret
을 생성합니다. 보안 특성은 선택한 필드에 보안 값이 포함된 secure-properties
특성을 포함하여 Secret
Kubernetes Tool integration
에서
사용 가능합니다. 비보안 속성은 environment-properties
Kubernetes ConfigMap
에서 확인할 수 있습니다. 키는 파이프라인 작성 사용자 인터페이스에서 제공되는 필드의 이름입니다.
ConfigMap
또는 Secret
에 액세스하는 경우에는 파이프라인이 성공적으로 완료될 수 있도록 반드시 올바른 오브젝트 이름과 참조를 찾으십시오.
개별 값에 액세스
Task
내에서 개별 키-값에 액세스할 수 있습니다. 다음 코드 스니펫은 샘플 apikey
속성 이름(보안 속성 포함)과 environment
속성 이름(텍스트 속성 포함)을 사용합니다. 이러한 속성 이름은 배달 파이프라인 속성 페이지에서 설정할 수 있습니다.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-echo-props
spec:
steps:
- name: cm-show-props
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: SECURE_VALUE
valueFrom:
secretKeyRef:
name: secure-properties
key: apikey
- name: ENVIRONMENT
valueFrom:
configMapKeyRef:
name: environment-properties
key: environment
command: ["/bin/bash", "-c"]
args:
- echo -e "environment from ConfigMap is >>";
echo $ENVIRONMENT;
echo "";
echo -e "apikey from Secrets is >>";
echo $SECURE_VALUE
모든 값에 액세스
ConfigMap
및 Secret
의 모든 키-값 쌍을 사용자의 Task
환경에 추가할 수 있습니다.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-secrets-props
spec:
steps:
- name: cm-show-full-env
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
envFrom:
- configMapRef:
name: environment-properties
- secretRef:
name: secure-properties
command: ["/bin/bash", "-c"]
args:
- echo -e "The environment for this Step is ";
env
관리형 워커 가상 머신 크기 조정
IBM 관리 작업자 풀을 사용하여 파이프라인을 실행할 때 특정 기본 메모리가 있는 VM이 할당됩니다. 대부분의 작업이 제공된 메모리를 사용하여 성공적으로 실행될 수 있지만 특정 파이프라인에는 집중적인 태스크를 위한 추가 메모리가 필요합니다.
사용자는 태스크에 특정 태스크에 대해 더 많은 (또는 적은) 메모리가 필요한지 여부를 표시하기 위해 태스크에 레이블을 지정할 수 있습니다. 필요한 자원의 특정 양을 식별하는 이 기능은 자원 사용 및 궁극적인 비용 절감에 도움이 됩니다.
Tekton 파이프라인 내의 특정 태스크에 적용할 VM 프로파일을 표시하려면 다음 VM값 중 하나를 사용하여 태스크에 runtimeClassName
레이블을 추가하십시오. 레이블이 제공되지 않으면 기본 VM 프로파일이 사용됩니다.
small
: 2Gimedium
: 4Gi (기본값)large
: 8Gi
예를 들어, 다음과 같습니다.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
labels:
runtimeClassName: medium
and so on.
PipelineRun
에서 TriggerTemplate
의 일부로 동일한 구성을 지정할 수도 있습니다. PipelineRun
에서 runtimeClassName
를 지정하여 사용자는 태스크 정의를 변경하지 않고 사용할 VM 프로파일을 선택할 수 있습니다.
예를 들어, 다음과 같습니다.
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: pipeline-run-
spec:
pipelineRef:
name: pipeline
taskRunSpecs:
- pipelineTaskName: task1
taskPodTemplate:
runtimeClassName: medium
로그 형식
이 섹션에서는 PipelineRun 세부정보 페이지에서 제공하는 로그 뷰어의 특징과 기능, 그리고 이러한 기능을 활용하기 위해 지원되는 로그 형식에 대해 설명합니다.
기본 기능
로그 뷰어는 ANSI 색상 코드와 텍스트 스타일을 지원하며, 로그 콘텐츠의 URL을 자동으로 감지하여 클릭 가능한 링크가 새 창에서 열리는 형태로 렌더링합니다.
도구 모음
로그 뷰어에 표시되는 툴바에는 다음과 같은 여러 가지 추가 기능이 포함되어 있습니다:
- 최대화: 작업 목록과 실행 헤더를 숨겨서 로그 뷰어에서 사용할 수 있는 영역을 늘립니다. 이를 통해 사용자는 앱의 다른 부분에서 방해 요소를 제거하고 로그 콘텐츠에 집중할 수 있습니다.
- 사용자 환경설정: 브라우저에 로컬로 유지되며 앱의 모든 로그에 적용됩니다. 세부사항은 다음 절을 참조하십시오.
시간소인
IBM-관리형 워커와 에이전트 버전이 0.20.5 이상인 개인 워커는 기본적으로 타임스탬프가 접두사로 붙은 로그 행을 생성합니다. 사용자는 로그 뷰어 상단의 툴바에 있는 설정 메뉴에서 옵션을 토글하여 로그 뷰어에서 이러한 타임스탬프를 표시하거나 숨길 수 있습니다.
표시되는 타임스탬프는 사용자의 브라우저 설정에 따라 현지화되며, 마우스오버 시 툴팁으로 워커로부터 받은 원시 타임스탬프 값이 제공됩니다.
로그 레벨
로그 뷰어는 로그 줄을 구문 분석하여 연관된 로그 수준을 감지하고 그에 따라 로그 소모성을 돕기 위해 로그 줄을 장식합니다. 지원되는 형식은 아래에 설명되어 있습니다.
<timestamp> ::<level>::<message>
timestamp
작업자가 제공level
error
,warning
,notice
,info
중 하나입니다,debug
debug
로그는 기본적으로 숨겨집니다- 명시적인
level
이 없는 모든 로그 행은info
으로 간주되지만 사용자가 지원되는 로그 형식을 사용하지 않는 UI에서 중복을 피하기 위해 로그 수준 배지를 표시하지 않습니다
message
는 줄에 있는 다른 콘텐츠이며 서식 지정 등을 위한 ANSI 코드를 포함할 수 있습니다.
예를 들어 다음 스니펫은 warning
수준의 로그 행을 출력합니다:
echo '::warning::Something that may require attention but is non-blocking…'
표시되는 로그 수준은 로그 뷰어 상단의 도구 모음에 있는 설정 메뉴를 통해 변경할 수 있습니다.
로그 그룹
로그 뷰어는 로그 수준 외에도 로그 내에서 접을 수 있는 그룹도 지원합니다. 지원되는 형식은 아래에 설명되어 있습니다.
<timestamp> ::group::<message>
…
<timestamp> ::endgroup::
group
명령은 그룹의 시작을 표시합니다. message
의 콘텐츠는 그룹의 현재 상태(예: 확장 또는 축소)를 나타내는 지표와 함께 그룹의 제목/요약으로 표시됩니다. 요약을 클릭하면 그룹 상태가 전환됩니다.
그룹은 로그를 볼 때 단계가 아직 진행 중이 아닌 한 기본적으로 접힌 상태로 렌더링됩니다. 사용자는 원하는 대로 그룹을 펼치거나 접을 수 있으며, 사용자가 다른 보기로 이동할 때까지 그룹 상태가 유지됩니다.
로그 그룹은 같은 줄에 로그 수준과 혼합할 수 없으며, group
, endgroup
및 로그 수준 명령은 상호 배타적입니다. 그러나 그룹 내에 포함된 로그는 로그 수준을 정상적으로 사용할 수 있습니다.
그룹 중첩은 지원되지 않습니다. group
명령은 이전에 종료되지 않은 모든 그룹을 암시적으로 종료합니다.
예를 들어 다음 코드조각은 info
수준의 여러 메시지가 포함된 요약 '추가 구성'이 있는 로그 그룹을 출력합니다:
echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'
Tekton Delivery Pipeline에 대해 자세히 알아보기
Tekton및 Continuous Delivery에 대해 자세히 알아보려면 Tekton: A Modern Approach to Continuous Delivery를 참조하십시오.