1.12. Red Hat OpenShift Pipelines General Availability 1.4 릴리스 정보
Red Hat OpenShift Pipelines General Availability (GA)는 이제 OpenShift Container Platform 4.7에서 사용할 수 있습니다.
안정적인 프리뷰 Operator 채널 외에도 Red Hat OpenShift Pipelines Operator 1.4.0에는 ocp-4.6, ocp-4.5 및 ocp-4.4 사용 중단 채널이 함께 제공됩니다. 이러한 더 이상 사용되지 않는 채널과 이에 대한 지원은 다음 Red Hat OpenShift Pipelines 릴리스에서 제거됩니다.
1.12.1. 호환성 및 지원 매트릭스
이 릴리스의 일부 기능은 현재 기술 프리뷰 상태입니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.
아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.
TP | 기술 프리뷰 |
GA | 정식 출시일 (GA) |
해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.
기능 | 버전 | 지원 상태 |
---|---|---|
파이프라인 | 0.22 | GA |
CLI | 0.17 | GA |
카탈로그 | 0.22 | GA |
Trigger | 0.12 | TP |
파이프 라인 리소스 | - | TP |
질문이나 의견이 있으시면 제품팀에 이메일(pipelines-interest@redhat.com)로 보내주시기 바랍니다.
1.12.2. 새로운 기능
다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.4의 새로운 기능도 소개합니다.
사용자 지정 작업에는 다음과 같은 향상된 기능이 있습니다.
- 파이프라인 결과는 사용자 지정 작업에서 생성된 결과를 참조할 수 있습니다.
- 사용자 지정 작업에서는 작업 영역, 서비스 계정 및 Pod 템플릿을 사용하여 더 복잡한 사용자 지정 작업을 빌드할 수 있습니다.
finally
작업에는 다음과 같은 향상된 기능이 있습니다.-
finally
작업에서when
표현식이 지원되므로 효율적으로 보호되는 실행 및 작업 재사용성을 개선할 수 있습니다. finally
작업에서는 동일한 파이프라인 내의 모든 작업 결과를 사용하도록 구성할 수 있습니다.참고OpenShift Container Platform 4.7 웹 콘솔에서
when
표현식 및finally
작업을 지원하지 않습니다.
-
-
dockercfg
또는dockerconfigjson
유형의 여러 보안에 대한 지원이 런타임 시 인증에 추가되었습니다. -
git-clone
작업을 사용하여 스파스-체크아웃을 지원하는 기능이 추가되었습니다. 이를 통해 리포지토리의 하위 집합만 로컬 복사본으로 복제할 수 있으며 복제된 리포지토리의 크기를 제한할 수 있습니다. - 실제로 시작하지 않고 보류 중인 상태에서 파이프라인 실행을 생성할 수 있습니다. 로드가 많은 클러스터에서 Operator는 파이프라인 실행 시작 시간을 제어할 수 있습니다.
-
컨트롤러에 대해
SYSTEM_NAMESPACE
환경 변수를 수동으로 설정했는지 확인합니다. 이전에는 기본적으로 설정되었습니다. -
이제 루트가 아닌 사용자가 파이프라인의 빌드-기반 이미지에 추가되어
git-init
가 루트가 아닌 사용자로 리포지토리를 복제할 수 있습니다. - 파이프라인 실행이 시작되기 전에 해결된 리소스 간 종속성을 확인하는 지원이 추가되어 있습니다. 파이프라인의 모든 결과 변수가 유효해야 하며 파이프라인의 선택적 작업 공간을 파이프라인 실행을 시작하기 위해 필요한 작업으로만 전달할 수 있습니다.
- 컨트롤러 및 Webhook는 루트가 아닌 그룹으로 실행되며, 보안을 강화하기 위해 해당 기능이 제거되었습니다.
-
tkn pr logs
명령을 사용하여 재시도된 작업 실행에 대한 로그 스트림을 확인할 수 있습니다. -
tkn tr delete
명령에서--clustertask
옵션을 사용하여 특정 클러스터 작업과 연관된 모든 작업을 삭제할 수 있습니다. -
새
customResource
필드를 도입하여EventListener
리소스와 함께 Knative 서비스 사용에 대한 지원이 추가되었습니다. - 이벤트 페이로드에서 JSON 형식을 사용하지 않으면 오류 메시지가 표시됩니다.
-
GitLab, BitBucket 및 GitHub와 같은 소스 제어 인터셉터는 이제 새로운
InterceptorRequest
또는InterceptorResponse
유형 인터페이스를 사용합니다. -
JSON 개체 또는 배열을 문자열에 인코딩할 수 있도록 새로운 CEL 함수
marshalJSON
이 구현됩니다. -
CEL 및 소스 제어 코어 인터셉터를 제공하는 HTTP 처리기가 추가되었습니다.
tekton-pipelines
네임스페이스에 배포된 단일 HTTP 서버에 4개의 코어 인터셉터를 패키징합니다.EventListener
오브젝트는 HTTP 서버를 통해 이벤트를 인터셉터로 전달합니다. 각 인터셉터는 다른 경로에서 사용할 수 있습니다. 예를 들어/cel
경로에서 CEL 인터셉터를 사용할 수 있습니다. pipelines-scc
SCC(Security Context Constraint)는 파이프라인의 기본pipeline
서비스 계정과 함께 사용됩니다. 이 새 서비스 계정은anyuid
와 유사하지만 OpenShift Container Platform 4.7의 SCC에 대해 YAML에 정의된 것과 약간의 차이점이 있습니다.fsGroup: type: MustRunAs
1.12.3. 사용되지 않는 기능
-
파이프라인 리소스 스토리지의
build-gcs
하위 유형과gcs-fetcher
이미지는 지원되지 않습니다. -
클러스터 작업의
taskRun
필드에서tekton.dev/task
레이블이 제거됩니다. -
Webhook의 경우
admissionReviewVersions
필드에 해당하는v1beta1
값이 제거됩니다. -
빌드 및 배포를 위한
creds-init
도우미 이미지가 제거됩니다. 트리거 사양 및 바인딩에서는
template.ref
를 사용하도록 더 이상 사용되지 않는 필드template.name
이 제거됩니다.ref
필드를 사용하려면 모든eventListener
정의를 업데이트해야 합니다.참고OpenShift Pipelines 1.3.x 및 이전 버전에서 OpenShift Pipelines 1.4.0으로 업그레이드하면
template.name
필드의 사용할 수 없기 때문에 이벤트 리스너가 중단됩니다. 이러한 경우 OpenShift Pipelines 1.4.1을 사용하여 복원된template.name
필드를 사용할 수 있습니다.-
EventListener
사용자 정의 리소스/개체의 경우Resource
가 사용되며PodTemplate
및ServiceType
필드는 더 이상 사용되지 않습니다. - 더 이상 사용되지 않는 사양 스타일 내장 바인딩이 제거됩니다.
-
spec
필드는triggerSpecBinding
에서 제거됩니다. - 이벤트 ID 표현은 5자의 임의의 문자열에서 UUID로 변경됩니다.
1.12.4. 확인된 문제
- 개발자 화면에서 파이프라인 지표 및 트리거 기능은 OpenShift Container Platform 4.7.6 이상 버전에서만 사용할 수 있습니다.
-
IBM Power Systems, IBM Z 및 LinuxONE에서는
tkn hub
명령이 지원되지 않습니다. -
IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x) 클러스터에서 Maven 및 Jib Maven 클러스터 작업을 실행하는 경우
MAVEN_IMAGE
매개변수 값을maven:3.6.3-adoptopenjdk-11
으로 설정합니다. 트리거 바인딩에 다음 구성이 있는 경우 JSON 형식이 잘못 처리되어 발생하는 오류를 트리거합니다.
params: - name: github_json value: $(body)
문제를 해결하려면 다음을 수행합니다.
-
트리거 v0.11.0 이상을 사용하는 경우
marshalJSON
CEL 함수를 사용하여 JSON 개체 또는 배열을 가져와 해당 오브젝트 또는 배열의 JSON 인코딩을 문자열로 반환합니다. 이전 트리거 버전을 사용하는 경우 트리거 템플릿에 다음 주석을 추가합니다.
annotations: triggers.tekton.dev/old-escape-quotes: "true"
-
트리거 v0.11.0 이상을 사용하는 경우
- OpenShift Pipelines 1.3.x에서 1.4.x로 업그레이드할 때 경로를 다시 생성해야 합니다.
1.12.5. 해결된 문제
-
이전에는 클러스터 작업의 작업 실행에서
tekton.dev/task
레이블이 제거되었으며tekton.dev/clusterTask
레이블이 도입되었습니다. 해당 변경으로 인한 문제는clustertask describe
및delete
명령을 수정하여 해결됩니다. 또한 작업의lastrun
기능이 수정되어 이전 버전의 파이프라인의 작업 실행에 적용되는tekton.dev/task
레이블의 문제를 해결합니다. -
대화형
tkn pipeline start pipelinename
을 수행할 때PipelineResource
가 대화형으로 생성됩니다. 리소스 상태가nil
이 아닌 경우tkn p start
명령은 리소스 상태를 출력합니다. -
이전에는
tekton.dev/task=name
레이블이 클러스터 작업에서 생성된 작업 실행에서 제거되었습니다. 이번 수정에서는tkn clustertask start
명령을--last
플래그로 수정하여 생성된 작업 실행에서tekton.dev/task=name
라벨을 확인합니다. -
작업에서 인라인 작업 사양을 사용하는 경우 이제
tkn pipeline describe
명령을 실행할 때 해당 작업 실행이 파이프라인에 포함되고, 작업 이름이 포함된 것으로 반환됩니다. -
tkn version
명령은 구성된kubeConfiguration namespace
또는 클러스터에 대한 액세스없이 설치된 Tekton CLI 툴 버전을 표시하도록 수정되었습니다. -
인수가 예기치 않은 것이거나 두 개 이상의 인수가 사용되는 경우
tkn completion
명령에서 오류가 발생합니다. -
이전에는 파이프라인 사양에 중첩된
finally
작업으로 인해v1alpha1
버전으로 변환되고v1beta1
버전으로 복원된finally
작업이 손실되었습니다. 변환 중에 발생하는 이 오류는 잠재적인 데이터 손실을 방지하기 위해 수정되었습니다. 파이프라인은 이제 파이프라인 사양에 중첩된finally
작업에서 실행되며 알파 버전에 저장되지만 나중에 역직렬화됩니다. -
이전에는 서비스 계정에
{}
로secret
필드가 있는 경우 Pod 생성에 오류가 발생했습니다. 빈 시크릿 이름을 가진 GET 요청이 오리소스 이름을 비워 둘 수 없다는 오류를 반환했기 때문에 이 작업은CouldntGetTask
로 실패합니다. 이 문제는kubeclient
GET 요청에서 시크릿 이름이 비어 있지 않도록 방지하여 해결되었습니다. -
이제
v1beta1
API 버전이 있는 파이프라인은finally
작업을 손실하지 않고v1alpha1
버전과 함께 요청할 수 있습니다. 반환된v1alpha1
버전을 적용하면 리소스가v1beta1
로 저장되고finally
섹션은 원래 상태로 복원됩니다. -
이전에는 컨트롤러의 설정되지 않은
selfLink
필드로 인해 Kubernetes v1.20 클러스터에서 오류가 발생했습니다. 임시 수정으로CloudEvent
소스 필드는 자동으로 채워진selfLink
필드의 값이 없이 현재 소스 URI와 일치하는 값으로 설정됩니다. -
이전에는
gcr.io
와 같은 점이 있는 시크릿 이름으로 인해 작업 실행 생성에 실패했습니다. 이는 내부적으로 볼륨 마운트 이름의 일부로 사용되는 시크릿 이름 때문에 발생했습니다. 볼륨 마운트 이름은 RFC1123 DNS 레이블을 준수하고, 이름의 일부로 점을 허용하지 않습니다. 이 문제는 점을 대시로 대체하여 읽을 수 있는 이름을 만들어 해결되었습니다. -
이제
finally
작업에서 컨텍스트 변수의 유효성을 검사합니다. -
이전 버전에서는 작업 실행 조정기에서 생성된 Pod 이름을 포함하는 이전 상태 업데이트가 없는 작업 실행을 통과하면 작업 실행 조정기는 작업 실행과 연결된 Pod를 나열했습니다. 작업 실행 조정기에서는 Pod에 전파된 작업 실행 레이블을 사용하여 Pod를 찾았습니다. 작업 실행 중에 이러한 레이블을 변경하면 코드에서 기존 pod를 찾지 못했습니다. 결과적으로 중복된 pod가 생성되었습니다. 이 문제는 Pod를 찾을 때 작업 실행 조정기를
tekton.dev/taskRun
Tekton- controlled 라벨만 사용하도록 변경하여 해결되었습니다. - 이전 버전에서는 파이프라인에서 선택적 작업 영역을 수락하여 파이프라인 작업으로 전달하면 누락된 작업 공간 바인딩이 선택적 작업 공간에 유효한 상태인 경우에도 작업 영역을 제공하지 않은 경우 실행 조정기가 중지되어 오류가 발생했습니다. 이 문제는 선택적 작업 영역을 제공하지 않아도 파이프라인 실행 조정기에서 작업 실행을 생성하지 못하도록 하여 해결되었습니다.
- 단계 상태의 정렬 순서는 단계 컨테이너의 순서와 일치합니다.
-
이전에는 Pod에
CreateContainerConfigError
가 발생할 때 작업 실행 상태가unknown
으로 설정되어 이로 인해 Pod가 시간 초과될 때까지 작업 및 파이프라인이 실행되었습니다. 이 문제는 Pod에CreateContainerConfigError
이유가 발생할 때 작업이 실패로 설정되도록 작업 실행 상태를false
로 설정하여 해결되었습니다. -
이전에는 파이프라인 실행이 완료된 후 첫 번째 조정 시 파이프라인 결과가 해결되었습니다. 이로 인해 해결에 실패하여 파이프라인 실행의
Succeeded
조건을 덮어쓸 수 있습니다. 결과적으로 최종 상태 정보가 손실되어 파이프라인의 작동 조건을 모니터링하는 모든 서비스에 혼란을 줄 수 있습니다. 이 문제는 파이프라인 실행이Succeeded
또는True
조건이 될 때 파이프라인 결과의 해결을 조정의 끝으로 이동하여 해결됩니다. - 이제 실행 상태 변수가 확인됩니다. 이렇게 하면 실행 상태에 액세스하기 위해 컨텍스트 변수를 검증하는 동안 작업 결과를 확인하는 것을 방지할 수 있습니다.
- 이전 버전에서는 잘못된 변수가 포함된 파이프라인 결과가 변수의 리터럴 표현식을 그대로 사용하여 파이프라인 실행에 추가되었습니다. 따라서 결과가 올바르게 설정되어 있는지를 평가하는 것은 쉽지 않았습니다. 이 문제는 실패한 작업 실행을 참조하는 파이프 라인 실행 결과 필터링하여 해결되었습니다. 이제 잘못된 변수가 포함된 파이프라인 결과는 파이프라인 실행에서 전혀 배출되지 않습니다.
-
tkn eventlistener describe
명령이 템플릿 없이 충돌하지 않도록 수정되었습니다. 트리거 참조에 대한 세부 정보도 표시합니다. -
OpenShift Pipelines 1.3.x 및 이전 버전에서 OpenShift Pipelines 1.4.0으로 업그레이드하면
template.name
을 사용할 수 없기 때문에 이벤트 리스너가 중단됩니다. OpenShift Pipelines 1.4.1에서는 트리거에서 이벤트 리스너 중단을 방지하기 위해template.name
이 복원되었습니다. -
OpenShift Pipelines 1.4.1에서는 OpenShift Container Platform 4.7 기능 및 동작에 맞게
ConsoleQuickStart
사용자 정의 리소스가 업데이트되었습니다.