1.13. Red Hat OpenShift Pipelines Technology Preview 1.3 릴리스 정보
1.13.1. 새로운 기능
이제 OpenShift Container Platform 4.7에서 Red Hat OpenShift Pipelines TP(Technology Preview) 1.3을 사용할 수 있습니다. 다음을 지원하도록 Red Hat OpenShift Pipelines TP 1.3이 업데이트되었습니다.
- Tekton Pipelines 0.19.0
-
Tekton
tkn
CLI 0.15.0 - Tekton Triggers 0.10.2
- Tekton Catalog 0.19.0 기반 클러스터 작업
- OpenShift Container Platform 4.7의 IBM Power Systems
- OpenShift Container Platform 4.7의 IBM Z 및 LinuxONE
다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.3의 새로운 기능도 소개합니다.
1.13.1.1. 파이프라인
- S2I 및 Buildah 작업과 같은 이미지를 빌드하는 작업에서 이제 이미지 SHA를 포함하는 빌드된 이미지의 URL을 내보냅니다.
-
Conditions
CRD(사용자 정의 리소스 정의)가 더 이상 사용되지 않기 때문에 사용자 정의 작업을 참조하는 파이프라인 작업에서 조건이 비활성화되었습니다. -
spec.steps[].imagePullPolicy
및spec.sidecar[].imagePullPolicy
의Task
CRD에 변수 확장이 추가되었습니다. -
disable-creds-init
기능 플래그를true
로 설정하여 Tekton의 기본 제공 자격 증명 메커니즘을 비활성화할 수 있습니다. -
해결된 When 표현식이
PipelineRun
구성의Status
필드에 있는Skipped Tasks
및Task Runs
섹션에 나열됩니다. -
git init
명령으로 재귀 하위 모듈을 복제할 수 있습니다. -
Task
CR 작성자가Task
사양에 있는 단계의 타임아웃을 지정할 수 있습니다. -
진입점 이미지의 기반을
distroless/static:nonroot
이미지로 하여 기본 이미지에 있는cp
명령에 의존하지 않고도 대상에 자체 복사 모드를 제공할 수 있습니다. -
구성 플래그
require-git-ssh-secret-known-hosts
를 사용하여 Git SSH 보안에서 알려진 호스트를 생략하지 않도록 할 수 있습니다. 플래그 값이true
로 설정된 경우 Git SSH 보안에known_host
필드를 포함해야 합니다. 플래그 기본값은false
입니다. - 선택적 작업 공간의 개념이 도입되었습니다. 작업 또는 파이프라인에서 작업 공간을 선택적으로 선언하고 작업 공간 존재 여부에 따라 조건부로 동작을 변경할 수 있습니다. 작업 실행 또는 파이프라인 실행에서도 해당 작업 공간을 생략하여 작업 또는 파이프라인 동작을 수정할 수 있습니다. 기본 작업 실행 작업 공간은 생략된 선택적 작업 공간 대신 추가되지 않습니다.
- Tekton의 자격 증명 초기화 과정에서 SSH가 아닌 URL과 함께 사용되는 SSH 자격 증명을 감지하고 Git 파이프라인 리소스에서 그 반대의 경우도 마찬가지이며, 단계 컨테이너에 경고를 기록합니다.
- Pod 템플릿에서 지정한 유사성을 유사성 도우미에서 덮어쓰는 경우 작업 실행 컨트롤러에서 경고 이벤트를 내보냅니다.
- 작업 실행이 완료되면 작업 실행 조정기에서 내보낸 클라우드 이벤트에 대한 지표를 기록합니다. 여기에는 재시도 횟수가 포함됩니다.
1.13.1.2. Pipeline CLI
-
tkn condition list
,tkn triggerbinding list
,tkn eventlistener list
,tkn clustertask list
,tkn clustertriggerbinding list
명령에--no-headers flag
에 대한 지원이 추가되었습니다. -
--last
또는--use
옵션은 함께 사용 시--prefix-name
및--timeout
옵션을 덮어씁니다. -
EventListener
로그를 볼 수 있도록tkn eventlistener logs
명령이 추가되었습니다. -
tekton hub
명령이tkn
CLI에 통합되었습니다. -
--nocolour
옵션이--no-color
로 변경되었습니다. -
tkn triggertemplate list
,tkn condition list
,tkn triggerbinding list
,tkn eventlistener list
명령에--all-namespaces
플래그가 추가되었습니다.
1.13.1.3. Trigger
-
EventListener
템플릿에 리소스 정보를 지정할 수 있습니다. -
EventListener
서비스 계정에 모든 트리거 리소스에 대한get
동사 외에list
및watch
동사도 있어야 합니다. 따라서Listers
를 사용하여EventListener
,Trigger
,TriggerBinding
,TriggerTemplate
,ClusterTriggerBinding
리소스에서 데이터를 가져올 수 있습니다. 이 기능을 사용하여 여러 정보원을 지정하지 않고Sink
오브젝트를 생성하고 API 서버에 직접 호출할 수 있습니다. -
변경 불가능한 입력 이벤트 본문을 지원하기 위해 새로운
Interceptor
인터페이스가 추가되었습니다. 인터셉터에서 새extensions
필드에 데이터 또는 필드를 추가할 수는 있지만 입력 본문을 수정하여 변경 불가능으로 설정할 수는 없습니다. CEL 인터셉터는 이 새로운Interceptor
인터페이스를 사용합니다. -
namespaceSelector
필드가EventListener
리소스에 추가되었습니다. 이 필드는EventListener
리소스에서 이벤트 처리를 위해Trigger
오브젝트를 가져올 수 있는 네임스페이스를 지정하는 데 사용합니다.namespaceSelector
필드를 사용하려면EventListener
서비스 계정에 클러스터 역할이 있어야 합니다. -
트리거
EventListener
리소스에서eventlistener
Pod에 대한 종단 간 보안 연결을 지원합니다. -
"
를\"
로 교체하여TriggerTemplates
리소스의 이스케이프 매개변수 동작이 제거되었습니다. -
Kubernetes 리소스를 지원하는 새로운
resources
필드가EventListener
사양의 일부로 도입되었습니다. - ASCII 문자열의 대문자 및 소문자를 지원하는 CEL 인터셉터의 새 기능이 추가되었습니다.
-
트리거의
name
및value
필드를 사용하거나 이벤트 리스너를 사용하여TriggerBinding
리소스를 포함할 수 있습니다. -
PodSecurityPolicy
구성이 제한된 환경에서 실행되도록 업데이트되었습니다. 따라서 컨테이너를 루트로 실행해서는 안 됩니다. 또한 Pod 보안 정책 사용을 위한 역할 기반 액세스 제어가 클러스터 범위에서 네임스페이스 범위로 이동했습니다. 그 결과 트리거에서 네임스페이스와 관련이 없는 다른 Pod 보안 정책을 사용할 수 없습니다. -
포함된 트리거 템플릿에 대한 지원이 추가되었습니다.
name
필드를 사용하여 포함된 템플릿을 참조하거나 템플릿을spec
필드 내에 포함할 수 있습니다.
1.13.2. 사용되지 않는 기능
-
PipelineResources
CRD를 사용하는 파이프라인 템플릿이 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. -
template.name
필드가 더 이상template.ref
필드 대신 사용되지 않으며 향후 릴리스에서 제거됩니다. -
--check
명령에 대한-c
약어가 제거되었습니다. 또한 전역tkn
플래그가version
명령에 추가되었습니다.
1.13.3. 확인된 문제
-
CEL 오버레이는 들어오는 이벤트 본문을 수정하는 대신 새로운 최상위
extensions
함수에 필드를 추가합니다.TriggerBinding
리소스는$(extensions.<key>)
구문을 사용하여 이 새로운extensions
함수 내의 값에 액세스할 수 있습니다.$(body.<overlay-key>)
구문 대신$(extensions.<key>)
구문을 사용하도록 바인딩을 업데이트합니다. -
"
를\"
로 교체하여 이스케이프 매개변수 동작이 제거되었습니다. 이전 이스케이프 매개변수 동작을 유지해야 하는 경우TriggerTemplate
사양에tekton.dev/old-escape-quotes: true"
주석을 추가합니다. -
트리거 내부의
name
및value
필드를 사용하거나 이벤트 리스너를 사용하여TriggerBinding
리소스를 포함할 수 있습니다. 그러나 단일 바인딩에name
및ref
필드를 둘 다 지정할 수는 없습니다.ref
필드를 사용하여 포함된 바인딩의TriggerBinding
리소스 및name
필드를 참조합니다. -
인터셉터는
EventListener
리소스의 네임스페이스 외부에 있는secret
을 참조할 수 없습니다. ‘EventListener’ 리소스의 네임스페이스에 보안을 포함해야 합니다. -
Triggers 0.9.0 이상에서는 본문 또는 헤더 기반
TriggerBinding
매개변수가 이벤트 페이로드에서 누락되거나 잘못된 형식으로 되어 있는 경우 오류를 표시하는 대신 기본값을 사용합니다. -
Tekton Pipelines 0.16.x를 사용하여
WhenExpressions
개체로 생성된 작업 및 파이프라인을 다시 적용하여 JSON 주석을 수정해야 합니다. - 파이프라인에서 선택적 작업 영역을 수락하고 이를 작업에 제공할 때 작업 영역을 제공하지 않으면 파이프라인 실행이 중단됩니다.
- 연결이 끊긴 환경에서 Buildah 클러스터 작업을 사용하려면 Dockerfile에서 내부 이미지 스트림을 기본 이미지로 사용하는지 확인한 다음 모든 S2I 클러스터 작업과 동일한 방식으로 사용합니다.
1.13.4. 해결된 문제
-
이벤트 본문에
Extensions
필드를 추가하면 CEL 인터셉터에서 추가한 확장이 Webhook 인터셉터에 전달됩니다. -
LogOptions
필드를 사용하여 로그 리더에 대한 활동 타임아웃을 구성할 수 있습니다. 그러나 10초 내의 기본 타임아웃 동작은 유지됩니다. -
log
명령은 작업 실행 또는 파이프라인 실행이 완료되면--follow
플래그를 무시하고 라이브 로그 대신 사용 가능한 로그를 읽습니다. -
Tekton 리소스(
EventListener
,TriggerBinding
,ClusterTriggerBinding
,Condition
,TriggerTemplate
)에 대한 참조가 표준화되어tkn
명령의 모든 사용자 대상 메시지에 일관되게 표시됩니다. -
이전에는
--use-taskrun <canceled-task-run-name>
,--use-pipelinerun <canceled-pipeline-run-name>
또는--last
플래그를 사용하여 취소된 작업 실행 또는 파이프라인 실행을 시작하면 새 실행이 취소되었습니다. 이 버그가 해결되었습니다. -
파이프라인이 조건에 따라 실행되는 경우 실패하지 않도록
tkn pr desc
명령이 향상되었습니다. -
tkn tr delete
명령을--task
옵션과 함께 사용하여 작업을 삭제하고 이름이 동일한 클러스터 작업이 있는 경우 클러스터 작업의 작업 실행도 삭제됩니다. 이 문제를 해결하려면TaskRefKind
필드를 사용하여 작업을 필터링합니다. -
tkn triggertemplate describe
명령을 실행하면 출력에apiVersion
값의 일부만 표시됩니다. 예를 들어triggers.tekton.dev/v1alpha1
대신triggers.tekton.dev
만 표시되었습니다. 이 버그가 해결되었습니다. - Webhook는 특정 조건에서 리스를 가져오지 못하고 제대로 작동하지 않습니다. 이 버그가 해결되었습니다.
- v0.16.3에서 생성된 When 표현식이 있는 파이프라인을 v0.17.1 이상에서 실행할 수 있습니다. 주석의 첫 글자로 대문자와 소문자가 모두 지원되므로 업그레이드 후 이전 버전에서 생성한 파이프라인 정의를 다시 적용할 필요가 없습니다.
-
기본적으로 고가용성을 위해
leader-election-ha
필드가 활성화됩니다.disable-ha
컨트롤러 플래그를true
로 설정하면 고가용성 지원이 비활성화됩니다. - 중복된 클라우드 이벤트 문제가 수정되었습니다. 조건으로 인해 상태, 이유 또는 메시지가 변경될 때만 클라우드 이벤트가 전송됩니다.
-
PipelineRun
또는TaskRun
사양에 서비스 계정 이름이 없는 경우 컨트롤러는config-defaults
구성 맵의 서비스 계정 이름을 사용합니다.config-defaults
구성 맵에도 서비스 계정 이름이 없으면 컨트롤러에서 사양에 서비스 계정 이름을default
로 설정합니다. - 동일한 영구 볼륨 클레임이 여러 작업 공간에 사용되지만 하위 경로가 다른 경우 유사성 도우미와의 호환성을 검증하는 기능이 지원됩니다.