1.16. Red Hat OpenShift Pipelines Technology Preview 1.2 릴리스 정보
1.16.1. 새로운 기능
이제 OpenShift Container Platform 4.6에서 Red Hat OpenShift Pipelines TP(Technology Preview) 1.2를 사용할 수 있습니다. 다음을 지원하도록 Red Hat OpenShift Pipelines TP 1.2가 업데이트되었습니다.
- Tekton Pipelines 0.16.3
-
Tekton
tkn
CLI 0.13.1 - Tekton Triggers 0.8.1
- Tekton Catalog 0.16 기반 클러스터 작업
- OpenShift Container Platform 4.6의 IBM Power Systems
- OpenShift Container Platform 4.6의 IBM Z 및 LinuxONE
다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.2의 새로운 기능도 소개합니다.
1.16.1.1. 파이프라인
이 Red Hat OpenShift Pipelines 릴리스에서는 오프라인 설치를 지원합니다.
참고제한된 환경에서의 설치는 현재 IBM Power Systems, IBM Z, LinuxONE에서 지원되지 않습니다.
-
이제
conditions
리소스 대신when
필드를 사용하여 특정 기준이 충족될 때만 작업을 실행할 수 있습니다.WhenExpression
리소스의 주요 구성 요소는Input
,Operator
,Values
입니다. 모든 표현식이True
로 평가되면 작업이 실행됩니다. When 표현식이False
로 평가되면 작업을 건너뜁니다. - 작업 실행이 취소되거나 타임아웃되는 경우 단계 상태가 업데이트됩니다.
-
git-init
에서 사용하는 기본 이미지를 빌드하는 데 Git LFS(Large File Storage) 지원이 제공됩니다. -
taskSpec
필드를 사용하여 작업이 파이프라인에 포함된 경우 라벨 및 주석과 같은 메타데이터를 지정할 수 있습니다. -
파이프라인 실행에서 클라우드 이벤트를 지원합니다. 클라우드 이벤트 파이프라인 리소스에서 보내는 클라우드 이벤트에
backoff
를 통해 재시도할 수 있습니다. -
Task
리소스에서 선언해도TaskRun
리소스에서 명시적으로 제공하지 않는 모든 작업 공간에 기본Workspace
구성을 설정할 수 있습니다. -
PipelineRun
네임스페이스 및TaskRun
네임스페이스에 대한 네임스페이스 변수 보간을 지원합니다. -
TaskRun
리소스가 유사성 도우미와 연결되어 있을 때 여러 개의 영구 볼륨 클레임 작업 공간이 사용되지 않는지 확인하기 위해TaskRun
오브젝트에 대한 검증 작업이 추가되었습니다. 영구 볼륨 클레임 작업 공간이 두 개 이상 사용되면TaskRunValidationFailed
조건이 포함된 작업 실행이 실패합니다. 기본적으로 유사성 도우미는 Red Hat OpenShift Pipelines에서 비활성화되어 있으므로 이 도우미를 사용하려면 활성화해야 합니다.
1.16.1.2. Pipeline CLI
tkn task describe
,tkn taskrun describe
,tkn clustertask describe
,tkn pipeline describe
,tkn pipelinerun describe
명령에서 다음을 수행합니다.-
Task
,TaskRun
,ClusterTask
,Pipeline
,PipelineRun
리소스 중 하나만 있는 경우 각 리소스를 자동으로 선택합니다. -
Task
,TaskRun
,ClusterTask
,Pipeline
,PipelineRun
리소스의 결과를 출력에 각각 표시합니다. -
Task
,TaskRun
,ClusterTask
,Pipeline
,PipelineRun
리소스에 선언된 작업 공간을 각각 표시합니다.
-
-
tkn clustertask start
명령에--prefix-name
옵션을 사용하여 작업 실행 이름에 접두사를 지정할 수 있습니다. -
tkn clustertask start
명령에 대화형 모드가 지원됩니다. -
TaskRun
및PipelineRun
오브젝트에 대한 로컬 또는 원격 파일 정의를 사용하여 파이프라인에서 지원하는PodTemplate
속성을 지정할 수 있습니다. -
tkn clustertask start
명령에--use-params-defaults
옵션을 사용하여ClusterTask
구성에 설정된 기본값을 사용하고 작업 실행을 생성할 수 있습니다. -
일부 매개변수에 기본값이 지정되지 않은 경우
tkn pipeline start
명령의--use-param-defaults
플래그는 대화형 모드를 표시합니다.
1.16.1.3. Trigger
-
parseYAML
이라는 CEL(Common Expression Language) 함수가 추가되어 YAML 문자열을 문자열 맵으로 구문 분석합니다. - CEL 표현식 구문 분석에 대한 오류 메시지가 개선되어 표현식을 평가하는 동안 그리고 평가 환경을 생성하기 위해 후크 본문을 구문 분석할 때 더 세부적인 내용이 표시됩니다.
- 부울 값 및 맵이 CEL 오버레이 메커니즘에서 표현식 값으로 사용되는 경우 부울 값 및 맵 마샬링이 지원됩니다.
다음 필드가
EventListener
오브젝트에 추가되었습니다.-
replicas
필드를 사용하면 YAML 파일의 복제본 수를 지정하여 이벤트 리스너에서 여러 개의 Pod를 실행할 수 있습니다. -
NodeSelector
필드를 사용하면EventListener
오브젝트에서 이벤트 리스너 Pod를 특정 노드에 예약할 수 있습니다.
-
-
Webhook 인터셉터에서
EventListener-Request-URL
헤더를 구문 분석하여 이벤트 리스너로 처리 중인 원래 요청 URL에서 매개변수를 추출할 수 있습니다. - 이벤트 리스너에 있는 주석을 배포 Pod, 서비스 Pod 및 기타 Pod로 전파할 수 있습니다. 서비스 또는 배포에 대한 사용자 정의 주석을 덮어쓰므로 해당 주석을 전파하려면 이벤트 리스너 주석에 추가해야 합니다.
-
사용자가
spec.replicas
값을negative
또는zero
로 지정하는 경우에도EventListener
사양의 복제본을 올바르게 검증할 수 있습니다. -
TriggerRef
필드를 통해EventListener
사양 내의TriggerCRD
오브젝트를 참조로 지정하여TriggerCRD
오브젝트를 별도로 생성한 다음EventListener
사양 내에서 바인딩할 수 있습니다. -
TriggerCRD
오브젝트에 검증을 수행하고 기본값을 사용할 수 있습니다.
1.16.2. 사용되지 않는 기능
-
이제
resourcetemplate
과triggertemplate
리소스 매개변수를 혼동하지 않도록$(params)
매개변수가triggertemplate
리소스에서 제거되고$(tt.params)
로 대체되었습니다. -
선택적
EventListenerTrigger
기반 인증 수준의ServiceAccount
참조가 오브젝트 참조에서ServiceAccountName
문자열로 변경되었습니다. 이로 인해ServiceAccount
참조가EventListenerTrigger
오브젝트와 동일한 네임스페이스에 있습니다. -
Conditions
CRD(사용자 정의 리소스 정의)가 더 이상 사용되지 않습니다. 대신WhenExpressions
CRD를 사용합니다. -
PipelineRun.Spec.ServiceAccountNames
오브젝트가 더 이상 사용되지 않고PipelineRun.Spec.TaskRunSpec[].ServiceAccountName
오브젝트로 교체됩니다.
1.16.3. 확인된 문제
- 이 Red Hat OpenShift Pipelines 릴리스에서는 오프라인 설치를 지원합니다. 그러나 클러스터 작업에서 사용하는 일부 이미지는 연결이 끊긴 클러스터에서 작업하려면 미러링해야 합니다.
-
openshift
네임스페이스의 파이프라인은 Red Hat OpenShift Pipelines Operator를 설치 제거한 후에도 삭제되지 않습니다. 이 파이프라인을 삭제하려면oc delete pipelines -n openshift --all
명령을 사용합니다. Red Hat OpenShift Pipelines Operator를 설치 제거해도 이벤트 리스너는 제거되지 않습니다.
해결 방법은
EventListener
및Pod
CRD를 제거하는 것입니다.foregroundDeletion
종료자를 사용하여EventListener
오브젝트를 다음과 같이 편집합니다.$ oc patch el/<eventlistener_name> -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
예를 들면 다음과 같습니다.
$ oc patch el/github-listener-interceptor -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
EventListener
CRD를 삭제합니다.$ oc patch crd/eventlisteners.triggers.tekton.dev -p '{"metadata":{"finalizers":[]}}' --type=merge
IBM Power Systems(ppc64le) 또는 IBM Z(s390x) 클러스터에서 명령 사양 없이 다중 아키텍처 컨테이너 이미지 작업을 실행하면
TaskRun
리소스가 실패하고 다음 오류 메시지가 표시됩니다.Error executing command: fork/exec /bin/bash: exec format error
해결 방법은 아키텍처별 컨테이너 이미지를 사용하거나 sha256 다이제스트를 지정하여 올바른 아키텍처를 가리키는 것입니다. sha256 다이제스트를 가져오려면 다음을 입력합니다.
$ skopeo inspect --raw <image_name>| jq '.manifests[] | select(.platform.architecture == "<architecture>") | .digest'
1.16.4. 해결된 문제
- CEL 필터, Webhook 유효성 검증기의 오버레이, 인터셉터의 표현식을 확인하는 간단한 구문 검증 기능이 추가되었습니다.
- Trigger가 더 이상 기본 배포 및 서비스 오브젝트에 설정된 주석을 덮어쓰지 않습니다.
-
이전에는 이벤트 리스너에서 이벤트 수락을 중지했습니다. 이 수정에서는 이 문제를 해결하기 위해
EventListener
싱크에 120초의 유휴 상태 타임아웃이 추가되었습니다. -
이전에는
Failed(Canceled)
상태로 파이프라인 실행을 취소하면 성공 메시지가 표시되었습니다. 이제 오류 메시지를 표시하도록 수정되었습니다. -
tkn eventlistener list
명령에서 나열된 이벤트 리스너의 상태를 제공하므로 사용 가능한 리스너를 쉽게 확인할 수 있습니다. -
트리거가 설치되지 않았거나 리소스가 없는 경우
triggers list
및triggers describe
명령에 대한 오류 메시지가 일관되게 표시됩니다. -
이전에는 클라우드 이벤트를 제공하는 동안 다수의 유휴 연결이 빌드되었습니다. 이 문제를 해결하기 위해
cloudeventclient
구성에DisableKeepAlives: true
매개변수가 추가되었습니다. 따라서 모든 클라우드 이벤트에 대해 새로운 연결이 설정됩니다. -
이전에는 지정된 유형의 자격 증명이 제공되지 않은 경우에도
creds-init
코드에서 디스크에 빈 파일을 작성했습니다. 이번 수정에서는 올바른 주석이 있는 보안에서 실제로 마운트된 자격 증명이 있는 경우에만 파일을 작성하도록creds-init
코드를 수정했습니다.