1.13. Red Hat OpenShift Pipelines General Availability 1.5 릴리스 정보
Red Hat OpenShift Pipelines General Availability (GA) 1.5는 이제 OpenShift Container Platform 4.8에서 사용할 수 있습니다.
1.13.1. 호환성 및 지원 매트릭스
이 릴리스의 일부 기능은 현재 기술 프리뷰 상태입니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.
아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.
TP | 기술 프리뷰 |
GA | 정식 출시일 (GA) |
해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.
기능 | 버전 | 지원 상태 |
---|---|---|
Pipeline | 0.24 | GA |
CLI | 0.19 | GA |
카탈로그 | 0.24 | GA |
Trigger | 0.14 | TP |
파이프 라인 리소스 | - | TP |
질문이나 의견이 있으시면 제품팀에 이메일(pipelines-interest@redhat.com)로 보내주시기 바랍니다.
1.13.2. 새로운 기능
다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.5의 새로운 기능도 소개합니다.
대상 네임스페이스의 cron 작업으로 파이프라인 실행 및 작업 실행이 자동으로 제거됩니다. cron 작업에서는
IMAGE_JOB_PRUNER_TKN
환경 변수를 사용하여tkn image
값을 가져옵니다. 이번 개선된 기능을 통해TektonConfig
사용자 정의 리소스에 다음 필드가 도입되었습니다.... pruner: resources: - pipelinerun - taskrun schedule: "*/5 * * * *" # cron schedule keep: 2 # delete all keeping n ...
OpenShift Container Platform에서는
TektonConfig
사용자 정의 리소스의 새 매개변수clusterTasks
및pipelinesTemplates
값을 수정하여 Tekton 애드온 구성 요소의 설치를 사용자 지정할 수 있습니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: profile: all targetNamespace: openshift-pipelines addon: params: - name: clusterTasks value: "true" - name: pipelineTemplates value: "true" ...
사용자 지정은
TektonConfig
를 사용하여 애드온을 만들거나 Techton 애드온을 사용하여 직접 만드는 경우에 허용됩니다. 그러나 매개 변수가 전달되지 않으면 컨트롤러는 기본값을 사용하여 매개 변수를 추가합니다.참고-
TektonConfig
사용자 지정 리소스를 사용하여 추가 기능이 생성되고Addon
사용자 정의 리소스의 뒷부분에서 매개변수 값을 변경하면TektonConfig
사용자 지정 리소스의 값이 변경 사항을 덮어씁니다. -
clusterTasks
매개변수 값이true
인 경우에만pipelinesTemplates
매개변수의 값을true
로 설정할 수 있습니다.
-
enableMetrics
매개변수는TektonConfig
사용자 지정 리소스에 추가됩니다. 이를 사용하여 OpenShift Container Platform용 Tekton Pipelines의 일부인 서비스 모니터를 비활성화할 수 있습니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: profile: all targetNamespace: openshift-pipelines pipeline: params: - name: enableMetrics value: "true" ...
- 프로세스 수준에서 메트릭을 캡처하는 EventListener OpenCensus 메트릭이 추가되었습니다.
- 트리거에 레이블 선택기가 있습니다. 레이블을 사용하여 이벤트 리스너에 대한 트리거를 구성할 수 있습니다.
인터셉터 등록에 대한
ClusterInterceptor
사용자 정의 리소스 정의가 추가되어 연결할 수 있는 새로운Interceptor
유형을 등록할 수 있습니다. 또한 다음과 같은 관련 변경 사항이 적용됩니다.-
트리거 사양에서는 클러스터 인터셉터를 참조하기 위해
ref
필드를 포함하는 새 API를 사용하여 인터셉터를 구성할 수 있습니다. 또한params
필드를 사용하여 처리를 위해 인터셉터에 전달되는 매개변수를 추가할 수 있습니다. -
번들 인터셉터 CEL, GitHub, GitLab, BitBucket이 마이그레이션되었습니다. 새
ClusterInterceptor
사용자 정의 리소스 정의를 사용하여 구현됩니다. -
코어 인터셉터는 새 형식으로 마이그레이션되고 이전 구문을 사용하여 생성된 새 트리거가 새
ref
또는params
기반 구문으로 자동 전환됩니다.
-
트리거 사양에서는 클러스터 인터셉터를 참조하기 위해
-
로그를 표시하는 동안 작업 이름 또는 단계의 접두사를 비활성화하려면
log
명령에--prefix
옵션을 사용합니다. -
특정 구성 요소의 버전을 표시하려면
tkn version
명령에서 새--component
플래그를 사용합니다. -
tkn hub check-upgrade
명령이 추가되고 파이프라인 버전을 기반으로 다른 명령이 수정되었습니다. 또한search
명령 출력에 카탈로그 이름이 표시됩니다. -
선택적 작업 공간에 대한 지원이
start
명령에 추가됩니다. -
plugins
디렉토리에 플러그인이 없으면 현재 경로에서 검색됩니다. tkn start [task | clustertask | pipeline]
명령은 대화식으로 시작하고 기본 매개변수를 지정하는 경우에도params
값을 요청합니다. 대화식 프롬프트를 중지하려면 명령을 호출할 때--use-param-defaults
플래그를 전달합니다. 예를 들면 다음과 같습니다.$ tkn pipeline start build-and-deploy \ -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.15/01_pipeline/03_persistent_volume_claim.yaml \ -p deployment-name=pipelines-vote-api \ -p git-url=https://github.com/openshift/pipelines-vote-api.git \ -p IMAGE=image-registry.openshift-image-registry.svc:5000/pipelines-tutorial/pipelines-vote-api \ --use-param-defaults
-
version
필드는tkn task describe
명령에 추가됩니다. -
TriggerTemplate
또는TriggerBinding
또는ClusterTriggerBinding
또는Eventlistener
와 같은 리소스를 자동으로 선택하는 옵션은 하나만 있는 경우describe
명령에 추가됩니다. -
tkn pr describe
명령에 건너뛰는 작업의 섹션이 추가됩니다. -
tkn clustertask logs
에 대한 지원이 추가되었습니다. -
config.yaml
에서 YAML 병합 및 변수가 제거됩니다. 또한kustomize
및ytt
와 같은 툴에서release.yaml
파일을 더 쉽게 사용할 수 있습니다. - 리소스 이름에 점 문자(".")가 포함되도록 지원이 추가되었습니다.
-
PodTemplate
사양의hostAliases
어레이는 호스트 이름 확인의 Pod 수준 재정의에 추가됩니다. 이를 위해/etc/hosts
파일을 수정합니다. -
$(tasks.status)
변수가 도입되어 작업의 집계 실행 상태에 액세스합니다. - Windows용 진입점 바이너리 빌드가 추가되었습니다.
1.13.3. 더 이상 사용되지 않는 기능
when
표현식에서 작성된 필드에 대한 지원에서는 PascalCase가 제거되었습니다.when
표현식은 소문자로 작성된 필드만 지원합니다.참고Tekton Pipelines
v0.16(Operator v
)에서1.2.x
when
표현식과 함께 파이프라인을 적용한 경우 다시 적용해야 합니다.Red Hat OpenShift Pipelines Operator를
v1.5
로 업그레이드하면openshift-client
및openshift-client-v-1-5-0
클러스터 작업에SCRIPT
매개변수가 있습니다. 그러나ARGS
매개변수와git
리소스는openshift-client
클러스터 작업의 사양에서 제거됩니다. 이는 중단된 변경 사항이며ClusterTask
리소스의name
필드에 특정 버전이 없는 클러스터 작업만 원활하게 업그레이드됩니다.파이프라인 실행이 중단되지 않도록 하려면 업그레이드 후
ARGS
매개변수에 지정된 값을 클러스터 작업의SCRIPT
매개변수로 이동하기 때문에SCRIPT
매개변수를 사용합니다. 예를 들면 다음과 같습니다.... - name: deploy params: - name: SCRIPT value: oc rollout status <deployment-name> runAfter: - build taskRef: kind: ClusterTask name: openshift-client ...
Red Hat OpenShift Pipelines Operator
v1.4
에서v1.5
로 업그레이드하면TektonConfig
사용자 정의 리소스가 설치된 프로필 이름이 변경됩니다.표 1.5. TektonConfig 사용자 정의 리소스의 프로필 Pipeline 1.5의 프로필 Pipelines 1.4의 해당 프로필 설치된 Tekton 구성 요소 모두(기본 프로필)
모두(기본 프로필)
파이프라인, 트리거, 애드온
Basic
Default
파이프라인, 트리거
Lite
Basic
파이프라인
참고TektonConfig
사용자 정의 리소스의config
인스턴스에서profile: all
을 사용한 경우 리소스 사양을 변경할 필요가 없습니다.그러나 설치된 Operator가 업그레이드 전에 Default 또는 Basic 프로필에 있는 경우 업그레이드 후
TektonConfig
사용자 정의 리소스의config
인스턴스를 편집해야 합니다. 예를 들어 구성이 업그레이드 전에profile: basic
인 경우 Pipelines 1.5로 업그레이드한 후profile: lite
인지 확인합니다.disable-home-env-overwrite
및disable-working-dir-overwrite
필드는 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. 이번 릴리스에서는 이전 버전과의 호환성을 위해 이러한 플래그의 기본값이true
로 설정됩니다.참고다음 릴리스에서는
HOME
환경 변수가 자동으로/tekton/home
으로 설정되지 않으며 작업 실행을 위해 기본 작업 디렉터리가/workspace
로 설정되지 않습니다. 이러한 기본값은 단계의 이미지 Dockerfile로 설정된 값과 충돌합니다.-
ServiceType
및podTemplate
필드는EventListener
사양에서 제거됩니다. - 컨트롤러 서비스 계정은 더 이상 네임스페이스를 나열하고 감시하기 위한 클러스터 전체 권한을 요청하지 않습니다.
EventListener
리소스의 상태에는Ready
라는 새로운 조건이 있습니다.참고나중에
EventListener
리소스의 기타 상태 조건이 더 이상 사용되지 않고Ready
상태 조건이 사용됩니다.-
EventListener
응답의eventListener
및namespace
필드는 더 이상 사용되지 않습니다. 대신eventListenerUID
필드를 사용합니다. replicas
필드는EventListener
사양에서 더 이상 사용되지 않습니다. 대신spec.replicas
필드가KubernetesResource
사양의spec.resources.kubernetesResource.replicas
로 이동됩니다.참고replicas
필드는 향후 릴리스에서 제거됩니다.-
코어 인터셉터를 구성하는 이전 방법은 더 이상 사용되지 않습니다. 그러나 향후 릴리스에서 제거될 때까지 계속 작동합니다. 대신
Trigger
리소스의 인터셉터가 새로운ref
및params
기반 구문을 사용하여 구성됩니다. 결과 기본 웹훅은 새 트리거에 대해 이전 구문의 사용법을 새 구문으로 자동 전환합니다. -
ClusterRoleBinding
리소스에 대해 더 이상 사용되지않는rbac.authorization.k8s.io/v1beta1
대신rbac.authorization.k8s.io/v1
을 사용합니다. -
클러스터 역할에서는
serviceaccounts
,secrets
,configmaps
,limitranges
와 같은 리소스에 대한 클러스터 전체 쓰기 권한이 제거됩니다. 또한deployments
,statefulsets
,deployment/finalizers
와 같은 리소스에 대한 클러스터 전체 액세스도 제거됩니다. -
caching.internal.knative.dev
그룹의image
사용자 지정 리소스 정의는 Tekton에서 더 이상 사용하지 않으며 이 릴리스에서 제외되었습니다.
1.13.4. 확인된 문제
git-cli 클러스터 작업은
/root
가 사용자의 홈 디렉터리로 예상되는 alpine/git 기본 이미지에서 빌드됩니다. 그러나git-cli
클러스터 작업에는 명시적으로 설정되어 있지 않습니다.Tekton에서 달리 지정하지 않는 한, Tekton에서 기본 홈 디렉토리는 작업의 모든 단계에 대해
/tekton/home
으로 덮어씁니다. 기본 이미지의$HOME
환경 변수를 덮어쓰면git-cli
클러스터 작업이 실패합니다.이 문제는 다음 릴리스에서 수정될 예정입니다. Red Hat OpenShift Pipelines 1.5 및 이전 버전의 경우 다음 해결 방법 중 하나를 사용하여
git-cli
클러스터 작업이 실패하지 않도록 할 수 있습니다.단계에서
$HOME
환경 변수를 설정하여 덮어쓰지 않도록 합니다.-
[선택 사항] Operator를 사용하여 Red Hat OpenShift Pipelines를 설치한 경우
git-cli
클러스터 작업을 별도의 작업에 복제합니다. 이 방법을 사용하면 Operator에서 클러스터 작업의 변경 사항을 덮어쓰지 않습니다. -
oc edit clustertasks git-cli
명령을 실행합니다. 예상되는
HOME
환경 변수를 단계 YAML에 추가합니다.... steps: - name: git env: - name: HOME value: /root image: $(params.BASE_IMAGE) workingDir: $(workspaces.source.path) ...
주의Operator가 설치한 Red Hat OpenShift Pipelines의 경우
HOME
환경 변수를 변경하기 전에git-cli
클러스터 작업을 별도의 작업으로 복제하지 않으면 Operator 조정 중에 변경 사항을 덮어씁니다.
-
[선택 사항] Operator를 사용하여 Red Hat OpenShift Pipelines를 설치한 경우
feature-flags
구성 맵에서HOME
환경 변수 덮어쓰기를 비활성화합니다.-
oc edit -n openshift-pipelines configmap feature-flags
명령을 실행합니다. disable-home-env-overwrite
플래그 값을true
로 설정합니다.주의- Operator를 사용하여 Red Hat OpenShift Pipelines를 설치한 경우 Operator 조정 중에 변경 사항을 덮어씁니다.
-
disable-home-env-overwrite
플래그의 기본값을 수정하면 모든 작업의 기본 동작을 변경하므로 다른 작업과 클러스터 작업이 중단될 수 있습니다.
-
파이프라인의 기본 서비스 계정이 사용될 때
HOME
환경 변수의 덮어쓰기가 수행되므로git-cli
클러스터 작업에 다른 서비스 계정을 사용합니다.- 새로운 서비스 계정을 생성합니다.
- 생성한 서비스 계정에 Git 시크릿을 연결합니다.
- 작업 또는 파이프라인을 실행하는 동안 서비스 계정을 사용합니다.
-
IBM Power Systems, IBM Z 및 LinuxONE에서
s2i-dotnet
클러스터 작업 및tkn hub
명령은 지원되지 않습니다. -
Maven 및 Jib-Maven 클러스터 작업을 실행하면 기본 컨테이너 이미지가 Intel(x86) 아키텍처에서만 지원됩니다. 따라서 IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x) 클러스터에서 작업이 실패합니다. 이 문제를 해결하려면
MAVEN_IMAGE
매개변수 값을maven:3.6.3-adoptopenjdk-11
으로 설정하여 사용자 지정 이미지를 지정할 수 있습니다.
1.13.5. 해결된 문제
-
dag
작업의when
표현식은 다른 작업의 실행상태 ($(tasks.<pipelineTask>.status)
)에 액세스하는 컨텍스트 변수를 지정할 수 없습니다. -
PipelineRun
리소스가 신속하게 삭제되고 다시 생성되는 경우volumeClaimTemplate
PVC를 삭제하여 생성된 경쟁 조건을 방지할 수 있으므로 소유자 이름 대신 소유자 UID를 사용합니다. -
루트가 아닌 사용자가 트리거한
build-base
이미지의pullrequest-init
에 대한 새 Dockerfile이 추가됩니다. -
파이프라인 또는 작업을
-f
옵션으로 실행하고 정의의param
에type
이 정의되지 않은 경우 파이프라인 또는 작업 실행이 자동으로 실패하는 대신 유효성 검사 오류가 생성됩니다. -
tkn start [task | pipeline | clustertask]
명령의 경우--workspace
플래그에 대한 설명이 일관되게 표시됩니다. - 매개 변수를 구문 분석하는 동안 빈 배열이 발생하는 경우 해당 대화형 도움말이 빈 문자열로 표시됩니다.