3장. 파이프라인


3.1. Red Hat OpenShift Pipelines 릴리스 정보

Red Hat OpenShift Pipelines는 다음을 제공하는 Tekton 프로젝트를 기반으로 하는 클라우드 네이티브 CI/CD 환경입니다.

  • 표준 CRD(Kubernetes 네이티브 Pipeline 정의)
  • CI 서버 관리 오버헤드가 없는 서버리스 Pipeline
  • S2I, Buildah, JIB 및 Kaniko와 같은 Kubernetes 도구를 사용하여 이미지를 빌드할 수 있는 확장성
  • 모든 Kubernetes 배포판에서 이식성
  • Pipeline과 상호 작용하기 위한 강력한 CLI
  • OpenShift Container Platform 웹 콘솔의 개발자 화면과 통합된 사용자 경험

Red Hat OpenShift Pipelines 개요는 OpenShift Pipelines 이해를 참조하십시오.

3.1.1. 호환성 및 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.

TP

기술 프리뷰

GA

정식 출시일 (GA)

표 3.1. 호환성 및 지원 매트릭스
Red Hat OpenShift Pipelines Version구성 요소 버전OpenShift Version지원 상태

Operator

파이프라인

Trigger

CLI

카탈로그

체인

hub

코드로 파이프라인

  

1.9

0.41.x

0.22.x

0.28.x

해당 없음

0.13.x (TP)

1.11.x (TP)

0.15.x (GA)

4.11, 4.12, 4.13 (예정)

GA

1.8

0.37.x

0.20.x

0.24.x

해당 없음

0.9.0 (TP)

1.8.x (TP)

0.10.x (TP)

4.10, 4.11, 4.12 (예: 계획)

GA

1.7

0.33.x

0.19.x

0.23.x

0.33

0.8.0 (TP)

1.7.0 (TP)

0.5.x (TP)

4.9, 4.10, 4.11

GA

1.6

0.28.x

0.16.x

0.21.x

0.28

해당 없음

해당 없음

해당 없음

4.9

GA

1.5

0.24.x

0.14.x (TP)

0.19.x

0.24

해당 없음

해당 없음

해당 없음

4.8

GA

1.4

0.22.x

0.12.x (TP)

0.17.x

0.22

해당 없음

해당 없음

해당 없음

4.7

GA

또한 ARM 하드웨어에서 Red Hat OpenShift Pipelines를 실행하는 지원은 기술 프리뷰 에 있습니다.

질문이나 의견이 있으시면 제품팀에 이메일(pipelines-interest@redhat.com)로 보내주시기 바랍니다.

3.1.2. 보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

3.1.3. Red Hat OpenShift Pipelines General Availability 1.9 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.11 이상 버전에서 Red Hat OpenShift Pipelines General Availability (GA) 1.9를 사용할 수 있습니다.

3.1.3.1. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.9의 새로운 기능도 소개합니다.

3.1.3.1.1. 파이프라인
  • 이번 업데이트를 통해 파이프라인 매개변수를 지정하고 배열 및 오브젝트 사전 양식을 생성할 수 있습니다.
  • 이번 업데이트에서는 작업 공간에 대한 CSI(Container Storage Interface) 및 예상 볼륨을 지원합니다.
  • 이번 업데이트를 통해 파이프라인 단계를 정의할 때 stdoutConfigstderrConfig 매개변수를 지정할 수 있습니다. 이러한 매개변수를 정의하면 단계와 관련된 표준 출력 및 표준 오류를 로컬 파일에 캡처하는 데 도움이 됩니다.
  • 이번 업데이트를 통해 steps[].onError 이벤트 처리기에 변수를 추가할 수 있습니다(예: $(params.CONTINUE) ).
  • 이번 업데이트를 통해 PipelineResults 정의의 finally 작업의 출력을 사용할 수 있습니다. 예를 들어 $(finally.<pipelinetask-name>.result.<result-name>). 여기서 < pipelinetask-name >은 파이프라인 작업 이름을 나타내며 < result-name >은 결과 이름을 나타냅니다.
  • 이번 업데이트에서는 작업 실행에 대한 작업 수준 리소스 요구 사항을 지원합니다.
  • 이번 업데이트를 통해 파이프라인과 정의된 작업 간에 이름을 기반으로 공유되는 매개변수를 다시 생성할 필요가 없습니다. 이 업데이트는 개발자 프리뷰 기능의 일부입니다.
  • 이번 업데이트에서는 기본 제공 git, cluster, bundle, hub resolvers와 같은 원격 해결에 대한 지원이 추가되었습니다.
3.1.3.1.2. Trigger
  • 이번 업데이트에서는 Interceptor CRD를 추가하여 NamespacedInterceptor 를 정의합니다. 트리거 또는 EventListener 사양에서 interceptors 참조의 kind 섹션에서 NamespacedInterceptor 를 사용할 수 있습니다.
  • 이번 업데이트에서는 CloudEvents 를 활성화합니다.
  • 이번 업데이트를 통해 트리거를 정의할 때 Webhook 포트 번호를 구성할 수 있습니다.
  • 이번 업데이트에서는 trigger eventIDTriggerBinding 에 대한 입력으로 사용할 수 있습니다.
  • 이번 업데이트에서는 ClusterInterceptor 서버의 인증서 검증 및 교체를 지원합니다. 

    • 트리거는 코어 인터셉터에 대한 인증서 검증을 수행하고 인증서가 만료되면 새 인증서를 ClusterInterceptor 로 바꿉니다.
3.1.3.1.3. CLI 
  • 이번 업데이트에서는 describe 명령에 주석을 표시하는 기능을 지원합니다.
  • 이번 업데이트에서는 pr describe 명령에 파이프라인, 작업 및 시간 초과를 표시할 수 있습니다.
  • 이번 업데이트에서는 pipeline start 명령에서 파이프라인, 작업 및 타임아웃을 제공하는 플래그가 추가되었습니다.
  • 이번 업데이트에서는 작업 및 파이프라인의 describe 명령에 작업 공간(선택 사항 또는 필수)을 표시할 수 있습니다.
  • 이번 업데이트에서는 타임 스탬프 와 함께 로그를 표시하는 타임 스탬프 플래그가 추가되었습니다.
  • 이번 업데이트에서는 PipelineRun 과 연결된 TaskRun 삭제를 무시하는 새로운 플래그 --ignore-running-pipelinerun 이 추가되었습니다.
  • 이번 업데이트에서는 실험적 명령에 대한 지원이 추가되었습니다. 이번 업데이트에서는 tkn CLI 툴에 실험 하위 명령, 서명검증 도 추가되었습니다.
  • 이번 업데이트에서는 파일을 생성하지 않고 Z 쉘(Zsh) 완료 기능을 사용할 수 있습니다.
  • 이번 업데이트에서는 opc 라는 새로운 CLI 툴이 도입되었습니다. 향후 릴리스에서 tkn CLI 툴을 opc 로 교체할 것으로 예상됩니다.

    중요
    • 새로운 CLI 툴 opc 는 기술 프리뷰 기능입니다.
    • OPCtkn 에 적합하지 않은 추가 Red Hat OpenShift Pipelines 특정 기능이 포함된 tkn 을 대체합니다.
3.1.3.1.4. Operator
  • 이번 업데이트를 통해 Pipeline as Code가 기본적으로 설치됩니다. -p 플래그를 사용하여 Pipeline을 코드로 비활성화할 수 있습니다.

    $ oc patch tektonconfig config --type="merge" -p '{"spec": {"platforms": {"openshift":{"pipelinesAsCode": {"enable": false}}}}}'
  • 이번 업데이트를 통해 TektonConfig CRD에서 Pipeline을 코드 구성으로 수정할 수도 있습니다.
  • 이번 업데이트를 통해 개발자 화면을 비활성화하면 Operator에서 개발자 콘솔 관련 사용자 정의 리소스를 설치하지 않습니다.
  • 이번 업데이트에는 Bitbucket Server 및 Bitbucket Cloud에 대한 ClusterTriggerBinding 지원이 포함되며 전체 클러스터에서 TriggerBinding 을 재사용할 수 있습니다.
3.1.3.1.5. 해결 방법
중요

해결자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트를 통해 TektonConfig CRD에서 파이프라인 확인자를 구성할 수 있습니다. 이러한 pipeline resolvers: enable-bundles-resolver,enable-cluster-resolver,enable-git-resolver, enable-hub-resolver.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        enable-bundles-resolver: true
        enable-cluster-resolver: true
        enable-git-resolver: true
        enable-hub-resolver: true
    ...

    TektonConfig 에서 확인자 특정 구성을 제공할 수도 있습니다. 예를 들어 map[string]string 형식으로 다음 필드를 정의하여 개별 확인자에 대한 구성을 설정할 수 있습니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        bundles-resolver-config:
          default-service-account: pipelines
        cluster-resolver-config:
          default-namespace: test
        git-resolver-config:
          server-url: localhost.com
        hub-resolver-config:
          default-tekton-hub-catalog: tekton
    ...
3.1.3.1.6. Tekton Chains
중요

Tekton Chains는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트 이전에는 내부 에이전트에서 TaskRun 의 출력으로 OCI(Open Container Initiative) 이미지만 지원되었습니다. 이번 업데이트에서는 이러한 접미사, ARTIFACT_URIARTIFACT_DIGEST 가 있는 출력으로 in-to provenance 메타데이터를 추가합니다.
  • 이번 업데이트 이전에는 TaskRun attestations만 지원됩니다. 이번 업데이트에서는 PipelineRun 인증도 지원합니다.
  • 이번 업데이트에서는 pod 템플릿에서 imgPullSecret 매개변수를 가져오기 위해 Tekton Chains에 대한 지원이 추가되었습니다. 이번 업데이트를 통해 서비스 계정을 수정하지 않고 각 파이프라인 실행 또는 작업 실행에 따라 리포지토리 인증을 구성할 수 있습니다.
3.1.3.1.7. Tekton Hub
중요

Tekton Hub는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트를 통해 관리자는 기본 Tekton Hub 데이터베이스를 사용하는 대신 Crunchy PostgreSQL with Tekton Hub와 같은 외부 데이터베이스를 사용할 수 있습니다. 이번 업데이트를 통해 다음 작업을 수행할 수 있습니다.

    • Tekton Hub에서 사용할 외부 데이터베이스의 좌표 지정
    • Operator에서 배포한 기본 Tekton Hub 데이터베이스 비활성화
  • 이번 업데이트에서는 외부 Git 리포지토리에서 config.yaml 의 종속성을 제거하고 전체 구성 데이터를 API ConfigMap 으로 이동합니다. 이번 업데이트를 통해 관리자는 다음 작업을 수행할 수 있습니다.

    • Tekton Hub 사용자 정의 리소스에 카테고리, 카탈로그, 범위 및 defaultScope와 같은 구성 데이터를 추가합니다.
    • 클러스터에서 Tekton Hub 구성 데이터를 수정합니다. 모든 수정 사항은 Operator 업그레이드 시 유지됩니다.
    • Tekton Hub의 카탈로그 목록을 업데이트
    • Tekton Hub의 카테고리 변경

      참고

      구성 데이터를 추가하지 않으면 Tekton Hub 구성의 API ConfigMap 에서 기본 데이터를 사용할 수 있습니다.

3.1.3.1.8. 코드로 파이프라인
  • 이번 업데이트에서는 Repository CRD에 동시성 제한에 대한 지원을 추가하여 한 번에 리포지토리에 대해 실행 중인 최대 PipelineRun 수를 정의합니다. 가져오기 요청 또는 내보내기 이벤트 의 PipelineRun 이 알파벳순으로 큐에 추가됩니다.
  • 이번 업데이트에서는 리포지토리에 대한 최신 파이프라인 실행 로그를 표시하는 새 명령 tkn pac logs 가 추가되었습니다.
  • 이번 업데이트에서는 GitHub 및 GitLab에 대한 푸시 및 가져오기 요청을 위해 파일 경로에서 고급 이벤트 일치를 지원합니다. 예를 들어, CEL(Common Expression Language)을 사용하여 docs 디렉터리의 모든 마크다운 파일에 대한 경로가 변경된 경우에만 파이프라인을 실행할 수 있습니다.

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && "docs/*.md".pathChanged()
  • 이번 업데이트를 통해 주석을 사용하여 pipelineRef: 오브젝트의 원격 파이프라인을 참조할 수 있습니다.
  • 이번 업데이트를 통해 Pipeline을 사용하여 새 GitHub 리포지토리를 Code로 자동 구성하여 네임스페이스를 설정하고 GitHub 리포지토리에 대한 Repository CRD를 생성할 수 있습니다.
  • 이번 업데이트를 통해 Pipeline이 공급자 정보를 사용하여 PipelineRuns 에 대한 지표를 생성합니다.
  • 이번 업데이트에서는 tkn-pac 플러그인에 다음과 같은 향상된 기능을 제공합니다.

    • 실행 중인 파이프라인을 올바르게 탐지
    • 실패 완료 시간이 없는 경우 기간을 표시하는 수정
    • 오류 스니펫을 표시하고 tkn-pac describe 명령에서 오류 정규식 패턴을 강조 표시합니다.
    • tkn-pac lstkn-pac describe 명령에 use-real-time 스위치 추가
    • tkn-pac 로그 문서 가져오기
    • tkn-pac lstkn-pac describe 명령에서 pipelineruntimeout 을 실패로 표시합니다.
    • --target-pipelinerun 옵션을 사용하여 특정 파이프라인 실행 실패를 표시합니다.
  • 이번 업데이트를 통해 GitHub 검사의 버전 제어 시스템(VCS) 주석 또는 작은 스니펫으로 파이프라인 실행 오류를 볼 수 있습니다.
  • 이번 업데이트를 통해 Pipeline as Code는 선택적으로 간단한 형식인 경우 작업 내에서 오류를 감지하고 GitHub에서 해당 작업을 주석으로 추가할 수 있습니다. 이 업데이트는 개발자 프리뷰 기능의 일부입니다.
  • 이번 업데이트에서는 다음과 같은 새 명령이 추가되었습니다.

    • tkn-pac webhook add: 리포지토리 설정에 Webhook를 추가하고 리포지토리를 업데이트하지 않고 기존 k8s Secret 오브젝트에서 webhook.secret 키를 업데이트합니다.
    • tkn-pac webhook update-token: 리포지토리를 업데이트하지 않고 기존 k8s Secret 오브젝트에 대한 업데이트 공급자 토큰입니다.
  • 이번 업데이트에서는 리포지토리 생성과 함께 GitHub, GitLab, BitbucketCloud에 대한 Webhook를 생성하고 구성하는 tkn-pac create repo 명령의 기능을 개선합니다.
  • 이번 업데이트를 통해 tkn-pac describe 명령은 최신 50개의 이벤트를 정렬된 순서로 표시합니다.
  • 이번 업데이트에서는 tkn-pac logs 명령에 --last 옵션이 추가되었습니다.
  • 이번 업데이트를 통해 tkn-pac resolve 명령으로 파일 템플릿에서 git_auth_secret 을 감지할 때 토큰을 입력하라는 메시지가 표시됩니다.
  • 이번 업데이트를 통해 Pipelines as Code hides secret from log snippets to avoid exposing secret in the GitHub interface.
  • 이번 업데이트를 통해 git_auth_secret 에 대해 자동으로 생성된 보안은 PipelineRun 이 있는 소유자 참조입니다. 파이프라인 실행 실행 후가 아닌 PipelineRun 을 사용하여 보안을 정리합니다.
  • 이번 업데이트에서는 /cancel 주석을 사용하여 파이프라인 실행을 취소하는 지원이 추가되었습니다.
  • 이번 업데이트 이전에는 GitHub 앱 토큰 범위 지정이 정의되지 않았으며 모든 리포지토리 설치에서 토큰이 사용됩니다. 이번 업데이트를 통해 다음 매개변수를 사용하여 GitHub 앱 토큰의 범위를 대상 리포지토리로 지정할 수 있습니다.

    • secret-github-app-token-scoped: 앱 설치에 액세스할 수 있는 모든 리포지토리가 아닌 대상 리포지토리에 앱 토큰을 범위를 지정합니다.
    • secret-github-app-scope-extra-repos: 추가 소유자 또는 리포지터리로 앱 토큰의 범위를 사용자 지정합니다.
  • 이번 업데이트를 통해 GitLab에서 호스팅되는 자체 Git 리포지토리가 있는 코드로 Pipeline을 사용할 수 있습니다.
  • 이번 업데이트를 통해 네임스페이스의 kubernetes 이벤트 형식으로 파이프라인 실행 세부 정보에 액세스할 수 있습니다. 이러한 세부 정보를 사용하면 관리자 네임스페이스에 액세스할 필요 없이 파이프라인 오류 문제를 해결할 수 있습니다.
  • 이번 업데이트에서는 Git 공급자를 사용하여 Pipeline에서 Code resolver로 URL 인증을 지원합니다.
  • 이번 업데이트를 통해 pipelines-as-code 구성 맵의 설정을 사용하여 hub 카탈로그의 이름을 설정할 수 있습니다.
  • 이번 업데이트를 통해 max-keep-run 매개변수의 최대 및 기본 제한을 설정할 수 있습니다.
  • 이번 업데이트에서는 Pipeline에 사용자 정의 SSL(Secure Sockets Layer) 인증서를 삽입하는 방법에 대한 문서가 추가되어 사용자 정의 인증서로 공급자 인스턴스에 연결할 수 있습니다.
  • 이번 업데이트를 통해 PipelineRun 리소스 정의에는 주석으로 포함된 로그 URL이 있습니다. 예를 들어 tkn-pac describe 명령은 PipelineRun 을 설명할 때 로그 링크를 표시합니다.
  • 이번 업데이트를 통해 tkn-pac logs에는 PipelineRun 이름이 아니라 리포지토리 이름이 표시됩니다.

3.1.3.2. 변경 사항 중단

  • 이번 업데이트를 통해 Conditions CRD(사용자 정의 리소스 정의) 유형이 제거되었습니다. 대신 WhenExpressions 를 사용하십시오.
  • 이번 업데이트를 통해 Pipeline, PipelineRun, Task, Clustertask 및 TaskRun과 같은 tekton.dev/v1alpha1 API 파이프라인 리소스가 제거되었습니다.
  • 이번 업데이트를 통해 tkn-pac setup 명령이 제거되었습니다. 대신 tkn-pac webhook add 명령을 사용하여 기존 Git 리포지토리에 웹 후크를 다시 추가합니다. 또한 tkn-pac webhook update-token 명령을 사용하여 Git 리포지토리의 기존 Secret 오브젝트에 대한 개인 공급자 액세스 토큰을 업데이트합니다.
  • 이번 업데이트를 통해 기본 설정으로 파이프라인을 실행하는 네임스페이스는 pod-security.kubernetes.io/enforce: privileged 라벨을 워크로드에 적용하지 않습니다.

3.1.3.3. 사용되지 않거나 삭제된 기능

  • Red Hat OpenShift Pipelines 1.9.0 릴리스에서 ClusterTasks 는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 또는 Cluster Resolver 를 사용할 수 있습니다.
  • Red Hat OpenShift Pipelines 1.9.0 릴리스에서는 단일 EventListener 사양의 트리거 사용 및 namespaceSelector 필드가 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 다른 EventListener 사양에서 이러한 필드를 성공적으로 사용할 수 있습니다.
  • Red Hat OpenShift Pipelines 1.9.0 릴리스에서 tkn pipelinerun describe 명령은 PipelineRun 리소스에 대한 타임아웃을 표시하지 않습니다.
  • Red Hat OpenShift Pipelines 1.9.0 릴리스에서는 PipelineResource' CR(사용자 정의 리소스)이 더 이상 사용되지 않습니다. PipelineResource CR은 기술 프리뷰 기능이며 tekton.dev/v1alpha1 API의 일부입니다.
  • Red Hat OpenShift Pipelines 1.9.0 릴리스에서는 클러스터 작업의 사용자 정의 이미지 매개변수가 더 이상 사용되지 않습니다. 또는 클러스터 작업을 복사하고 사용자 정의 이미지를 사용할 수 있습니다.

3.1.3.4. 확인된 문제

  • chain-secretchain-config 구성 맵은 Red Hat OpenShift Pipelines Operator를 제거한 후 제거됩니다. 여기에는 사용자 데이터가 포함되어 있으므로 보존해야 하며 삭제되지 않습니다.
  • Windows에서 tkn pac set of commands를 실행할 때 다음 오류 메시지가 표시될 수 있습니다. 명령이 Windows에서 지원되지 않는 오류 메시지가 표시될 수 있습니다.

    해결방법: NO_COLOR 환경 변수를 true 로 설정합니다.

  • tkn pac resolve -f <filename> | oc create -f 명령을 실행하면 tkn pac resolve 명령에서 templated 매개변수 값을 함수에 사용하는 경우 예상 결과를 제공하지 않을 수 있습니다.

    해결방법: 이 문제를 완화하려면 tkn pac resolve -f <filename> -o tempfile.yaml 명령을 실행하여 임시 파일에 tkn pac resolve 의 출력을 저장한 다음 oc create -f tempfile.yaml 명령을 실행합니다. 예를 들어 tkn pac resolve -f <filename> -o /tmp/pull-request-resolved.yaml && oc create -f /tmp/pull-request-resolved.yaml.

3.1.3.5. 해결된 문제

  • 이번 업데이트 이전에는 빈 배열을 교체한 후 원래 배열에서 paramaters 내부의 매개 변수가 유효하지 않은 빈 문자열을 반환했습니다. 이번 업데이트를 통해 이 문제가 해결되고 원래 배열이 빈 상태로 돌아갑니다.
  • 이번 업데이트 이전에는 파이프라인 실행을 위해 서비스 계정에 중복된 보안이 있는 경우 이로 인해 작업 Pod 생성이 실패했습니다. 이번 업데이트를 통해 이 문제가 해결되고 서비스 계정에 중복된 보안이 있더라도 작업 Pod가 성공적으로 생성됩니다.
  • 이번 업데이트 이전에는 TaskRun의 spec.StatusMessage 필드를 확인하여 사용자가 TaskRun 을 취소했는지 아니면 그 일부 PipelineRun 에 의해 취소되었는지 여부를 구분할 수 없었습니다. 이번 업데이트를 통해 이 문제가 해결되어 사용자는 TaskRunspec.StatusMessage 필드를 확인하여 TaskRun의 상태를 구분할 수 있습니다.
  • 이번 업데이트 이전에는 이전 버전의 유효하지 않은 오브젝트를 삭제할 때 Webhook 검증이 제거되었습니다. 이번 업데이트를 통해 이 문제가 해결되었습니다.
  • 이번 업데이트 이전에는 timeouts.pipeline 매개변수를 0 으로 설정하면 timeouts.tasks 매개변수 또는 timeouts.finally 매개변수를 설정할 수 없었습니다. 이번 업데이트에서는 이러한 문제가 해결되었습니다. 이제 timeouts.pipeline 매개변수 값을 설정하면'timeouts.tasks' 매개변수 또는 timeouts.finally 매개변수 값을 설정할 수 있습니다. 예를 들면 다음과 같습니다.

    yaml
    kind: PipelineRun
    spec:
      timeouts:
        pipeline: "0"  # No timeout
        tasks: "0h3m0s"
  • 이번 업데이트 이전에는 PipelineRun 또는 TaskRun에서 다른 툴에서 레이블 또는 주석을 업데이트한 경우 경쟁 조건이 발생할 수 있었습니다. 이번 업데이트를 통해 이 문제가 해결되어 라벨 또는 주석을 병합할 수 있습니다.
  • 이번 업데이트 이전에는 로그 키에 파이프라인 컨트롤러와 동일한 키가 없었습니다. 이번 업데이트를 통해 이 문제가 해결되었으며 파이프라인 컨트롤러의 로그 스트림과 일치하도록 로그 키가 업데이트되었습니다. 로그의 키가 "ts"에서 "timestamp", "level"에서 "severity"로 변경되었으며, "message"에서 "msg"로 변경되었습니다.
  • 이번 업데이트 이전에는 PipelineRun이 알 수 없는 상태로 삭제된 경우 오류 메시지가 생성되지 않았습니다. 이번 업데이트를 통해 이 문제가 해결되어 오류 메시지가 생성됩니다.
  • 이번 업데이트 이전에는 listpush 와 같은 번들 명령에 액세스하려면 kubeconfig 파일을 사용해야 했습니다. 이번 업데이트를 통해 이 문제가 해결되어 kubeconfig 파일이 번들 명령에 액세스할 필요가 없습니다.
  • 이번 업데이트 이전에는 TaskRuns를 삭제하는 동안 상위 PipelineRun이 실행 중이면 TaskRuns가 삭제됩니다. 이번 업데이트에서는 이 문제가 해결되어 상위 PipelineRun이 실행 중인 경우 TaskRuns가 삭제되지 않습니다.
  • 이번 업데이트 이전에는 사용자가 허용된 파이프라인 컨트롤러보다 더 많은 오브젝트가 있는 번들을 빌드하려고 하면 Tekton CLI에 오류 메시지가 표시되지 않았습니다. 이번 업데이트를 통해 이 문제가 해결되고 Tekton CLI에 사용자가 파이프라인 컨트롤러에 허용된 제한보다 더 많은 오브젝트가 있는 번들을 빌드하려고 하면 오류 메시지가 표시됩니다.
  • 이번 업데이트 이전에는 클러스터에서 네임스페이스가 제거된 경우 Operator에서 ClusterInterceptor ClusterRoleBinding 제목에서 네임스페이스를 제거하지 않았습니다. 이번 업데이트를 통해 이 문제가 해결되었으며 Operator는 ClusterInterceptor ClusterRoleBinding 제목에서 네임스페이스를 제거합니다.
  • 이번 업데이트 이전에는 Red Hat OpenShift Pipelines Operator의 기본 설치로 인해 클러스터에 남아 있는 pipelines-scc-rolebinding security context constraint (SCC) 역할 바인딩 리소스가 생성되었습니다. 이번 업데이트를 통해 Red Hat OpenShift Pipelines Operator의 기본 설치로 pipelines-scc-rolebinding security context constraint (SCC) 역할 바인딩 리소스 리소스가 클러스터에서 제거됩니다.
  • 이번 업데이트 이전에는 Code로 Pipeline이 Code ConfigMap 오브젝트로 Pipeline을 업데이트하지 않았습니다. 이번 업데이트를 통해 이 문제가 수정되었으며 Code ConfigMap 오브젝트로서 Pipeline에서 새로운 변경 사항을 찾습니다.
  • 이번 업데이트 이전에는 Code 컨트롤러로서 Pipeline이 tekton.dev/pipeline 레이블이 업데이트될 때까지 기다리지 않고 checkrun id 레이블을 추가하여 경쟁 조건이 발생했습니다. 이번 업데이트를 통해 Pipelines as Code 컨트롤러에서 tekton.dev/pipeline 레이블이 업데이트될 때까지 기다린 다음, 경쟁 조건을 방지하는 데 도움이 되는 checkrun id 레이블을 추가합니다.
  • 이번 업데이트 이전에는 tkn-pac create repo 명령이 git 리포지토리에 이미 존재하는 경우 PipelineRun 을 재정의하지 않았습니다. 이번 업데이트를 통해 tkn-pac create 명령이 git 리포지토리에 있는 경우 PipelineRun 을 재정의하도록 수정되어 문제가 성공적으로 해결됩니다.
  • 이번 업데이트 이전에는 tkn pac describe 명령이 모든 메시지에 대한 이유를 표시하지 않았습니다. 이번 업데이트에서는 이 문제가 해결되어 tkn pac describe 명령을 실행하면 모든 메시지에 대한 이유가 표시됩니다.
  • 이번 업데이트 이전에는 주석의 사용자가 regex 양식을 사용하여 값을 제공한 경우(예: refs/head/rel-* ) 가져오기 요청이 실패했습니다. 기본 분기에 refs/heads 가 누락되어 가져오기 요청이 실패했습니다. 이번 업데이트를 통해 접두사가 추가되고 일치하는지 확인합니다. 이렇게 하면 문제가 해결되고 가져오기 요청이 성공적으로 수행됩니다.

3.1.3.6. Red Hat OpenShift Pipelines General Availability 1.9.1 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.11 이상에서 Red Hat OpenShift Pipelines General Availability (GA) 1.9.1을 사용할 수 있습니다.

3.1.3.7. 해결된 문제

  • 이번 업데이트 이전에는 tkn pac repo list 명령이 Microsoft Windows에서 실행되지 않았습니다. 이번 업데이트에서는 이 문제가 해결되어 이제 Microsoft Windows에서 tkn pac repo list 명령을 실행할 수 있습니다.
  • 이번 업데이트 이전에는 Code watcher로 Pipeline이 모든 구성 변경 이벤트를 수신하지 못했습니다. 이번 업데이트를 통해 Code watcher가 업데이트될 때 Pipeline이 업데이트되고 이제 Code watcher가 구성 변경 이벤트를 누락하지 않습니다.
  • 이번 업데이트 이전에는 TaskRuns 또는 PipelineRuns 와 같이 Pipeline에서 생성한 Pod가 클러스터의 사용자가 노출한 사용자 정의 인증서에 액세스할 수 없었습니다. 이번 업데이트에서는 문제가 해결되어 클러스터의 TaskRuns 또는 PipelineRuns Pod에서 사용자 정의 인증서에 액세스할 수 있습니다.
  • 이번 업데이트 이전에는 FIPS를 사용하여 활성화된 클러스터에서 Trigger 리소스에 사용된 tekton-triggers-core-interceptors 코어 인터셉터가 Pipelines Operator가 버전 1.9로 업그레이드된 후 작동하지 않았습니다. 이번 업데이트에서는 이러한 문제가 해결되었습니다. 이제 OpenShift는 모든 구성 요소에 MInTLS 1.2를 사용합니다. 결과적으로 tekton-triggers-core-interceptors 코어 인터셉터가 TLS 버전 1.2로 업데이트되고 해당 기능이 정확하게 실행됩니다.
  • 이번 업데이트 이전에는 내부 OpenShift 이미지 레지스트리와 함께 파이프라인 실행을 사용할 때 파이프라인 실행 정의에서 이미지의 URL을 하드 코딩해야 했습니다. 예를 들면 다음과 같습니다.

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/<test_namespace>/<test_pipelinerun>'
    ...

    파이프라인의 컨텍스트에서 Code로 파이프라인 실행을 사용하는 경우 이러한 하드 코딩된 값을 사용하면 파이프라인 실행 정의가 다른 클러스터 및 네임스페이스에서 사용되지 않습니다.

    이번 업데이트를 통해 네임스페이스 및 파이프라인 실행 이름을 하드 코딩하여 파이프라인 실행 정의를 일반화하는 대신 동적 템플릿 변수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/{{ target_namespace }}/$(context.pipelineRun.name)'
    ...
  • 이번 업데이트 이전에는 Code로 동일한 GitHub 토큰을 사용하여 기본 GitHub 분기에서만 동일한 호스트에서 사용 가능한 원격 작업을 가져옵니다. 이번 업데이트에서는 이러한 문제가 해결되었습니다. 이제 Code로 Pipeline은 동일한 GitHub 토큰을 사용하여 GitHub 분기에서 원격 작업을 가져옵니다.

3.1.3.8. 확인된 문제

  • Tekton Hub CR에 사용된 Hub API ConfigMap 오브젝트의 필드인 CATALOG_REFRESH_INTERVAL 값은 사용자가 제공하는 사용자 지정 값으로 업데이트되지 않습니다.

    해결방법: 없음. SRVKP-2854 문제를 추적할 수 있습니다.

3.1.3.9. 변경 사항 중단

  • 이번 업데이트를 통해 OLM 잘못된 구성 문제가 도입되어 OpenShift Container Platform 업그레이드가 수행되지 않습니다. 이 문제는 향후 릴리스에서 해결될 예정입니다.

3.1.3.10. Red Hat OpenShift Pipelines General Availability 1.9.2 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.11 이상에서 Red Hat OpenShift Pipelines General Availability (GA) 1.9.2를 사용할 수 있습니다.

3.1.3.11. 해결된 문제

  • 이번 업데이트 이전에는 이전 버전의 릴리스에서 OLM의 잘못된 구성 문제가 도입되어 OpenShift Container Platform이 업그레이드할 수 없었습니다. 이번 업데이트를 통해 이 잘못된 구성 문제가 수정되었습니다.

3.1.4. Red Hat OpenShift Pipelines General Availability 1.8 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.10, 4.11, 4.12에서 Red Hat OpenShift Pipelines General Availability (GA) 1.8을 사용할 수 있습니다.

3.1.4.1. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.8의 새로운 기능도 소개합니다.

3.1.4.1.1. 파이프라인
  • 이번 업데이트를 통해 ARM 하드웨어에서 실행 중인 OpenShift Container Platform 클러스터에서 Red Hat OpenShift Pipelines GA 1.8 이상을 실행할 수 있습니다. 여기에는 ClusterTask 리소스 및 tkn CLI 툴에 대한 지원이 포함됩니다.
중요

ARM 하드웨어에서 Red Hat OpenShift Pipelines를 실행하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트에서는 TaskRun 리소스에 대한 StepSidecar 재정의를 구현합니다.
  • 이번 업데이트에서는 PipelineRun 상태에 최소 TaskRunRun 상태가 추가되었습니다.

    이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.

  • 이번 업데이트를 통해 파이프라인 실행 기능의 정상 종료가 알파 기능에서 안정적인 기능으로 승격됩니다. 결과적으로 이전에 더 이상 사용되지 않는 PipelineRunCancelled 상태는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다.

    이 기능은 기본적으로 사용 가능하므로 더 이상 TektonConfig 사용자 정의 리소스 정의에서 pipeline.enable-api-fields 필드를 alpha 로 설정할 필요가 없습니다.

  • 이번 업데이트를 통해 작업 공간 이름을 사용하여 파이프라인 작업의 작업 공간을 지정할 수 있습니다. 이러한 변경으로 인해 일련의 PipelinePipelineTask 리소스에 대한 공유 작업 공간을 더 쉽게 지정할 수 있습니다. 작업 공간을 명시적으로 매핑할 수도 있습니다.

    이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.

  • 이번 업데이트를 통해 임베디드 사양의 매개 변수가 변경없이 전파됩니다.
  • 이번 업데이트를 통해 주석 및 라벨을 사용하여 PipelineRun 리소스에서 참조하는 Task 리소스의 필수 메타데이터를 지정할 수 있습니다. 이렇게 하면 실행 컨텍스트에 따라 달라지는 Task 메타데이터를 파이프라인 실행 중에 사용할 수 있습니다.
  • 이번 업데이트에서는 paramsresults 값에 개체 또는 사전 유형에 대한 지원이 추가되었습니다. 이러한 변경 사항은 이전 버전과의 호환성에 영향을 미치며, 이후 Red Hat OpenShift Pipelines 버전에서 이전 클라이언트 사용과 같은 정방향 호환성을 중단하는 경우가 있습니다. 이번 업데이트에서는 Go 언어 API를 라이브러리로 사용하는 프로젝트에 영향을 주는 ArrayOrStruct 구조를 변경합니다.
  • 이번 업데이트에서는 PipelineRun status 필드의 SkippedTasks 필드에 SkippingReason 값이 추가되어 사용자가 지정된 PipelineTask를 건너뛰는 이유를 알 수 있습니다.
  • 이번 업데이트에서는 Task 오브젝트에서 결과를 내보내는 데 배열 유형을 사용할 수 있는 알파 기능을 지원합니다. 결과 형식이 문자열에서 ArrayOrString 으로 변경되었습니다. 예를 들어, 작업은 유형을 지정하여 배열 결과를 생성할 수 있습니다.

    kind: Task
    apiVersion: tekton.dev/v1beta1
    metadata:
      name: write-array
      annotations:
        description: |
          A simple task that writes array
    spec:
      results:
        - name: array-results
          type: array
          description: The array results
    ...

    또한 작업 스크립트를 실행하여 결과를 배열로 채울 수 있습니다.

    $ echo -n "[\"hello\",\"world\"]" | tee $(results.array-results.path)

    이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.

    이 기능은 진행 중이며 TEP-0076의 일부입니다.

3.1.4.1.2. Trigger
  • 이번 업데이트에서는 EventListener 사양의 TriggerGroups 필드를 알파 기능의 안정적인 기능으로 전환합니다. 이 필드를 사용하면 트리거 그룹을 선택하고 실행하기 전에 인터셉터 세트를 지정할 수 있습니다.

    이 기능은 기본적으로 사용 가능하므로 더 이상 TektonConfig 사용자 정의 리소스 정의에서 pipeline.enable-api-fields 필드를 alpha 로 설정할 필요가 없습니다.

  • 이번 업데이트를 통해 Trigger 리소스는 HTTPS를 사용하여 ClusterInterceptor 서버를 실행하여 엔드 투 엔드 보안 연결을 지원합니다.
3.1.4.1.3. CLI
  • 이번 업데이트를 통해 tkn taskrun export 명령을 사용하여 클러스터에서 라이브 작업 실행을 다른 클러스터로 가져올 수 있는 YAML 파일로 내보낼 수 있습니다.
  • 이번 업데이트를 통해 tkn pipeline start 명령에 -o name 플래그를 추가하여 시작 직후 파이프라인 실행 이름을 출력할 수 있습니다.
  • 이번 업데이트에서는 tkn --help 명령의 출력에 사용 가능한 플러그인 목록이 추가되었습니다.
  • 이번 업데이트를 통해 파이프라인 실행 또는 작업 실행을 삭제하는 동안 --keep--keep-since 플래그를 함께 사용할 수 있습니다.
  • 이번 업데이트를 통해 더 이상 사용되지 않는 PipelineRunCancelled 값이 아닌 spec.status 필드 값으로 Cancelled 를 사용할 수 있습니다.
3.1.4.1.4. Operator
  • 이번 업데이트를 통해 관리자는 기본 데이터베이스가 아닌 사용자 지정 데이터베이스를 사용하도록 로컬 Tekton Hub 인스턴스를 구성할 수 있습니다.
  • 이번 업데이트를 통해 클러스터 관리자가 로컬 Tekton Hub 인스턴스를 활성화하면 카탈로그의 변경 사항이 Tekton Hub 웹 콘솔에 표시되도록 정기적으로 데이터베이스를 새로 고칩니다. 새로 고침 간격을 조정할 수 있습니다.

    이전 버전에서는 카탈로그의 작업 및 파이프라인을 데이터베이스에 추가하려면 해당 작업을 수동으로 수행했거나 cron 작업을 설정하여 작업을 수행할 수 있었습니다.

  • 이번 업데이트를 통해 최소한의 구성으로 Tekton Hub 인스턴스를 설치 및 실행할 수 있습니다. 이렇게 하면 팀과 협력하여 원하는 추가 사용자 정의를 결정할 수 있습니다.
  • 이번 업데이트에서는 안전한 리포지토리를 복제할 수 있도록 GIT_SSL_CAINFOgit-clone 작업에 추가합니다.
3.1.4.1.5. Tekton Chains
중요

Tekton Chains는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트를 통해 정적 토큰이 아닌 OIDC를 사용하여 자격 증명 모음에 로그인할 수 있습니다. 이러한 변경으로 인해 Spire는 신뢰할 수 있는 워크로드만 자격 증명 모음에 로그인할 수 있도록 OIDC 자격 증명을 생성할 수 있습니다. 또한 환경 변수로 삽입하지 않고 자격 증명 모음 주소를 구성 값으로 전달할 수 있습니다.
  • Red Hat OpenShift Pipelines Operator를 사용하여 설치할 때 구성 맵을 직접 업데이트할 수 없기 때문에 openshift-pipelines 네임스페이스의 Tekton Chains에 대한 chain -config 구성 맵은 Red Hat OpenShift Pipelines Operator를 업그레이드한 후 자동으로 기본값으로 재설정됩니다. 그러나 이번 업데이트를 통해 TektonChain 사용자 정의 리소스를 사용하여 Tekton Chains를 구성할 수 있습니다. 이 기능을 사용하면 업그레이드 중에 덮어쓸 수 있는 chain-config 구성 맵과 달리 업그레이드 후 구성이 유지됩니다.
3.1.4.1.6. Tekton Hub
중요

Tekton Hub는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트를 통해 Operator를 사용하여 Tekton Hub의 새 인스턴스를 설치하면 기본적으로 Tekton Hub 로그인이 비활성화됩니다. 로그인 및 평가 기능을 활성화하려면 Tekton Hub를 설치하는 동안 Hub API 시크릿을 생성해야 합니다.

    참고

    Red Hat OpenShift Pipelines 1.7에서 Tekton Hub 로그인이 기본적으로 활성화되었으므로 Operator를 업그레이드하는 경우 Red Hat OpenShift Pipelines 1.8에서 로그인이 기본적으로 활성화됩니다. 이 로그인 을 비활성화하려면 OpenShift Pipelines 1.7.x -tekton 1.8.x에서 업그레이드한 후 Tekton Hub 로그인 비활성화를 참조하십시오.

  • 이번 업데이트를 통해 관리자는 기본 데이터베이스가 아닌 사용자 지정 PostgreSQL 13 데이터베이스를 사용하도록 로컬 Tekton Hub 인스턴스를 구성할 수 있습니다. 이렇게 하려면 tekton-hub-db 라는 Secret 리소스를 생성합니다. 예를 들면 다음과 같습니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: tekton-hub-db
      labels:
        app: tekton-hub-db
    type: Opaque
    stringData:
      POSTGRES_HOST: <hostname>
      POSTGRES_DB: <database_name>
      POSTGRES_USER: <user_name>
      POSTGRES_PASSWORD: <user_password>
      POSTGRES_PORT: <listening_port_number>
  • 이번 업데이트를 통해 더 이상 Tekton Hub 웹 콘솔에 로그인하여 카탈로그의 리소스를 데이터베이스에 추가할 필요가 없습니다. 이제 Tekton Hub API가 처음 실행을 시작할 때 이러한 리소스가 자동으로 추가됩니다.
  • 이 업데이트는 카탈로그 새로 고침 API 작업을 호출하여 30분마다 카탈로그를 자동으로 새로 고칩니다. 이 간격은 user-configurable입니다.
3.1.4.1.7. 코드로 파이프라인
중요

PAC( Pipeline as Code)는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 이번 업데이트를 통해 개발자는 코드 실행으로 파이프라인에 중복 리포지토리를 추가하려고 하면 tkn-pac CLI 툴에서 알림을 받습니다. tkn pac create repository 를 입력하면 각 리포지토리에 고유한 URL이 있어야 합니다. 이 알림은 또한 hijacking exploits를 방지하는 데 도움이 됩니다.
  • 이번 업데이트를 통해 개발자는 새로운 tkn-pac setup cli 명령을 사용하여 웹 후크 메커니즘을 사용하여 Git 리포지토리를 코드로 Pipeline에 추가할 수 있습니다. 이렇게 하면 GitHub 앱을 사용할 수 없는 경우에도 Pipeline을 코드로 사용할 수 있습니다. 이 기능에는 GitHub, GitLab, BitBucket의 리포지토리 지원이 포함됩니다.
  • 이번 업데이트를 통해 Code로 Pipeline은 다음과 같은 기능과 GitLab 통합을 지원합니다.

    • 프로젝트 또는 그룹의 ACL(액세스 제어 목록)
    • /OK-to-test 지원
    • /retest 지원
  • 이번 업데이트를 통해 CEL(Common Expression Language)을 사용하여 고급 파이프라인 필터링을 수행할 수 있습니다. CEL을 사용하면 PipelineRun 리소스의 주석을 사용하여 파이프라인이 다양한 Git 공급자 이벤트와 일치시킬 수 있습니다. 예를 들면 다음과 같습니다.

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && target_branch == "main" && source_branch == "wip"
  • 이전에는 개발자는 가져오기 요청과 같은 각 Git 이벤트 마다 하나의 파이프라인만 실행할 수 있었습니다. 이번 업데이트를 통해 .tekton 디렉터리에 여러 파이프라인 실행이 있을 수 있습니다. 웹 콘솔에 실행 상태 및 보고서가 표시됩니다. 파이프라인 실행은 병렬로 작동하고 Git 공급자 인터페이스에 다시 보고합니다.
  • 이번 업데이트를 통해 가져오기 요청에서 /test 또는 /retest 를 주석 처리하여 파이프라인 실행을 테스트하거나 다시 테스트할 수 있습니다. 이름별로 파이프라인 실행을 지정할 수도 있습니다. 예를 들어 /test <pipelinerun_name > 또는 /retest <pipelinerun-name>을 입력합니다.
  • 이번 업데이트를 통해 새로운 tkn-pac delete repository 명령을 사용하여 리포지토리 사용자 정의 리소스 및 관련 보안을 삭제할 수 있습니다.

3.1.4.2. 변경 사항 중단

  • 이번 업데이트에서는 TaskRunPipelineRun 리소스의 기본 지표 수준을 다음 값으로 변경합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-observability
      namespace: tekton-pipelines
      labels:
        app.kubernetes.io/instance: default
        app.kubernetes.io/part-of: tekton-pipelines
    data:
      _example: |
      ...
        metrics.taskrun.level: "task"
        metrics.taskrun.duration-type: "histogram"
        metrics.pipelinerun.level: "pipeline"
        metrics.pipelinerun.duration-type: "histogram"
  • 이번 업데이트를 통해 PipelinePipelineRun 리소스에 주석 또는 라벨이 모두 있는 경우 Run 유형의 값이 우선합니다. 주석 또는 레이블이 TaskTaskRun 리소스에 있는 경우도 마찬가지입니다.
  • Red Hat OpenShift Pipelines 1.8에서 이전에 더 이상 사용되지 않는 PipelineRun.Spec.ServiceAccountNames 필드가 제거되었습니다. 대신 PipelineRun.Spec.TaskRunSpecs 필드를 사용합니다.
  • Red Hat OpenShift Pipelines 1.8에서 이전에 더 이상 사용되지 않는 TaskRun.Status.ResourceResults.ResourceRef 필드가 제거되었습니다. 대신 TaskRun.Status.ResourceResults.ResourceName 필드를 사용합니다.
  • Red Hat OpenShift Pipelines 1.8에서 이전에 더 이상 사용되지 않는 Conditions 리소스 유형이 제거되었습니다. 이를 포함하는 Pipeline 리소스 정의에서 Conditions 리소스를 제거합니다. 대신 PipelineRun 정의에서 when 표현식을 사용합니다.
  • Tekton Chains의 경우 이 릴리스에서 tekton-provenance 형식이 제거되었습니다. 대신 TektonChain 사용자 정의 리소스에서 "artifacts.taskrun.format": "in-to"를 설정하여 in-toto 형식을 사용합니다.
  • Red Hat OpenShift Pipelines 1.7.x는 Code 0.5.x로 Pipeline과 함께 제공됩니다. 현재 업데이트는 Pipeline과 Code 0.10.x와 함께 제공됩니다. 이 변경으로 인해 새 컨트롤러의 openshift-pipelines 네임스페이스에 새 경로가 생성됩니다. Pipeline을 코드로 사용하는 GitHub 앱 또는 Webhook에서 이 경로를 업데이트해야 합니다. 경로를 가져오려면 다음 명령을 사용합니다.

    $ oc get route -n openshift-pipelines pipelines-as-code-controller \
      --template='https://{{ .spec.host }}'
  • 이번 업데이트를 통해 Code로 Pipelines는 Repository CRD(사용자 정의 리소스 정의)의 기본 보안 키 이름을 변경합니다. CRD에서 토큰을 provider. token 로 교체하고 secret을 webhook. secret 로 바꿉니다.
  • 이번 업데이트를 통해 Code로 Pipelines는 프라이빗 리포지토리에 대해 여러 파이프라인 실행을 지원하는 특수 템플릿 변수로 대체됩니다. 파이프라인 실행에서 secret: pac-git-basic-auth-{{repo_owner}}-{{repo_name}} -{{repo_name}}을 secret: {{ git_auth_secret }} 로 교체합니다.
  • 이번 업데이트를 통해 Pipeline은 tkn-pac CLI 툴에서 다음 명령을 업데이트합니다.

    • tkn pac repository createtkn pac create repository 로 바꿉니다.
    • tkn pac repository deletetkn pac delete repository 로 바꿉니다.
    • tkn pac 리포지토리 목록을 tkn pac list 로 교체합니다.

3.1.4.3. 사용되지 않거나 삭제된 기능

  • OpenShift Container Platform 4.11부터 Red Hat OpenShift Pipelines Operator 설치 및 업그레이드를 위한 프리뷰안정적인 채널이 제거됩니다. Operator를 설치하고 업그레이드하려면 적절한 pipelines-<version > 채널을 사용하거나 안정적인 최신 버전의 최신 채널을 사용합니다. 예를 들어 Pipelines Operator 버전 1.8.x 를 설치하려면 pipelines-1.8 채널을 사용합니다.

    참고

    OpenShift Container Platform 4.10 및 이전 버전에서는 Operator를 설치 및 업그레이드하기 위해 프리뷰안정적인 채널을 사용할 수 있습니다.

  • Red Hat OpenShift Pipelines GA 1.6에서 더 이상 사용되지 않는 tekton.dev/v1alpha1 API 버전에 대한 지원은 Red Hat OpenShift Pipelines GA 1.9 릴리스에서 제거될 예정입니다.

    이 변경 사항은 TaskRun,PipelineRun,Task,Pipeline 및 유사한 tekton.dev/v1alpha1 리소스를 포함하는 pipeline 구성 요소에 영향을 미칩니다. 또는 Tekton v1alpha1 에서 Tekton v1alpha1로 마이그레이션에 설명된 대로 apiVersion: tekton.dev/v1beta1 을 사용하도록 기존 리소스를 업데이트합니다.

    tekton.dev/v1alpha1 API 버전에 대한 버그 수정 및 지원은 현재 GA 1.8 라이프사이클이 종료될 때만 제공됩니다.

    중요

    Tekton Operator 의 경우 operator.tekton.dev/v1alpha1 API 버전은 더 이상 사용되지 않습니다. 이 값을 변경할 필요가 없습니다.

  • Red Hat OpenShift Pipelines 1.8에서 PipelineResource CR(사용자 정의 리소스)을 사용할 수 있지만 더 이상 지원되지 않습니다. PipelineResource CR은 기술 프리뷰 기능이며 tekton.dev/v1alpha1 API의 일부로, 향후 Red Hat OpenShift Pipelines GA 1.9 릴리스에서 제거될 예정입니다.
  • Red Hat OpenShift Pipelines 1.8에서 Condition 사용자 정의 리소스(CR)가 제거되었습니다. Condition CR은 tekton.dev/v1alpha1 API의 일부였습니다. 이 API는 더 이상 사용되지 않으며 향후 Red Hat OpenShift Pipelines GA 1.9 릴리스에서 제거될 예정입니다.
  • Red Hat OpenShift Pipelines 1.8에서 gsutilgcr.io 이미지가 제거되었습니다. 이러한 제거로 인해 이 이미지에 종속된 Pipeline 리소스가 있는 클러스터가 중단될 수 있습니다. 버그 수정 및 지원은 Red Hat OpenShift Pipelines 1.7 라이프 사이클 종료 시에만 제공됩니다.
  • Red Hat OpenShift Pipelines 1.8에서 PipelineRun.Status.TaskRunsPipelineRun.Status.Runs 필드는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. PipelineRuns의 TEP-0100: optimized TaskRuns 및 Runs Status 를 참조하십시오.
  • Red Hat OpenShift Pipelines 1.8에서 pipelineRunCancelled 상태가 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 이제 PipelineRun 오브젝트의 정상적인 종료가 알파 기능에서 안정적인 기능으로 승격되었습니다. ( TEP-0058: Graceful Pipeline Run Termination 를 참조하십시오.) 또는 pipelineRunCancelled 상태를 대체하는 취소된 상태를 사용할 수 있습니다.

    PipelineTask 리소스를 변경할 필요가 없습니다. 파이프라인 실행을 취소하는 도구가 있는 경우 다음 릴리스에서 툴을 업데이트해야 합니다. 이 변경 사항은 CLI, IDE 확장 등과 같은 툴에도 영향을 미치므로 새로운 PipelineRun 상태를 지원합니다.

    이 기능은 기본적으로 사용 가능하므로 더 이상 TektonConfig 사용자 정의 리소스 정의에서 pipeline.enable-api-fields 필드를 alpha 로 설정할 필요가 없습니다.

  • Red Hat OpenShift Pipelines 1.8에서 PipelineRuntimeout 필드가 더 이상 사용되지 않습니다. 대신 PipelineRun.Timeouts 필드를 사용합니다. 이제 알파 기능에서 안정적인 기능으로 승격됩니다.

    이 기능은 기본적으로 사용 가능하므로 더 이상 TektonConfig 사용자 정의 리소스 정의에서 pipeline.enable-api-fields 필드를 alpha 로 설정할 필요가 없습니다.

  • Red Hat OpenShift Pipelines 1.8에서 init 컨테이너는 LimitRange 오브젝트의 기본 요청 계산에서 생략됩니다.

3.1.4.4. 확인된 문제

  • s2i-nodejs 파이프라인은 nodejs:14-ubi8-minimal 이미지 스트림을 사용하여 S2I(Source-to-Image) 빌드를 수행할 수 없습니다. 해당 이미지 스트림을 사용하면 STEP "RUN /usr/libexec/s2i/assemble": exit status 127 메시지에서 오류 빌드 가 생성됩니다.

    해결방법: nodejs:14-ubi8 대신 nodejs:14-ubi8-minimal 이미지 스트림을 사용합니다.

  • Maven 및 Jib-Maven 클러스터 작업을 실행할 때 기본 컨테이너 이미지는 Intel (x86) 아키텍처에서만 지원됩니다. 따라서 ARM, IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x) 클러스터에서 작업이 실패합니다.

    해결방법: MAVEN_IMAGE 매개변수 값을 maven:3.6.3-adoptopenjdk-11 로 설정하여 사용자 지정 이미지를 지정합니다.

    작은 정보

    tkn hub 를 사용하여 ARM, IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x)의 Tekton Catalog를 기반으로 하는 작업을 설치하기 전에 이러한 플랫폼에서 작업을 실행할 수 있는지 확인합니다. 작업 정보의 "Platforms" 섹션에 ppc64les390x 가 나열되어 있는지 확인하려면 다음 명령을 실행합니다. tkn hub info task <name>

  • ARM, IBM Power Systems, IBM Z 및 LinuxONE에서 s2i-dotnet 클러스터 작업은 지원되지 않습니다.
  • 암시적 매개변수 매핑은 최상위 파이프라인 또는 PipelineRun 정의에서 taskRef 작업으로 매개변수를 잘못 전달합니다. 매핑은 고급 리소스에서 인라인 taskSpec 사양이 있는 작업으로만 발생해야 합니다. 이 문제는 TektonConfig 사용자 정의 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정하여 이 기능이 활성화된 클러스터에만 영향을 미칩니다.

3.1.4.5. 해결된 문제

  • 이번 업데이트 이전에는 웹 콘솔의 개발자 보기에서 파이프라인 실행에 대한 메트릭이 불완전하고 오래되었습니다. 이번 업데이트에서는 메트릭이 정확하도록 문제가 수정되었습니다.
  • 이번 업데이트 이전에는 파이프라인에 실패한 두 개의 병렬 작업이 있고 그 중 하나가 retries=2 인 경우 최종 작업이 실행되지 않고 파이프라인 시간 초과 및 실행되지 못했습니다. 예를 들어 pipelines-operator-subscription 작업이 다음 오류 메시지와 함께 간헐적으로 실패했습니다. 서버에 연결할 수 없습니다: EOF. 이번 업데이트에서는 최종 작업이 항상 실행되도록 문제가 수정되었습니다.
  • 이번 업데이트 이전에는 작업 실행에 실패하여 파이프라인 실행이 중지된 경우 다른 작업 실행이 재시도를 완료하지 못할 수 있습니다. 그 결과 finally 작업이 예약되지 않아 파이프라인이 중단되었습니다. 이번 업데이트에서는 이러한 문제가 해결되었습니다. TaskRunsRun 오브젝트는 정상 중지로 인해 파이프라인 실행이 완료될 수 있도록 파이프라인 실행이 중지되었을 때 재시도할 수 있습니다.
  • 이번 업데이트에서는 TaskRun 오브젝트가 존재하는 네임스페이스에 하나 이상의 LimitRange 오브젝트가 있는 경우 리소스 요구 사항을 계산하는 방법을 변경합니다. 스케줄러는 이제 단계 컨테이너를 고려하고 LimitRange 오브젝트에서 요청을 인수할 때 사이드카 컨테이너와 같은 다른 모든 앱 컨테이너를 제외합니다.
  • 이번 업데이트 이전에는 특정 조건에서 플래그 패키지가 이중 대시 플래그 종료기 바로 뒤에 하위 명령을 잘못 구문 분석할 수 있었습니다. --. 이 경우 실제 명령이 아닌 entrypoint 하위 명령을 실행했습니다. 이번 업데이트에서는 진입점이 올바른 명령을 실행하도록 이 플래그 분리 문제를 해결합니다.
  • 이번 업데이트 이전에는 이미지를 가져오는 경우 컨트롤러가 여러 패닉을 생성할 수 있거나 가져오기 상태가 불완전했습니다. 이번 업데이트에서는 status.TaskSpec 값이 아닌 step.ImageID 값을 확인하여 문제를 해결합니다.
  • 이번 업데이트 이전에는 예약되지 않은 사용자 정의 작업이 포함된 파이프라인 실행을 취소하면 PipelineRunCouldntCancel 오류가 발생했습니다. 이번 업데이트에서는 이 문제가 해결되었습니다. 예약되지 않은 사용자 정의 작업이 포함된 파이프라인 실행을 취소할 수 있습니다.
  • 이번 업데이트 이전에는 $params["< NAME > " 또는 $params[ '<NAME>']의 <NAME>에 점 문자(.)가 포함된 경우 점 문자(. )의 이름이 추출되지 않았습니다. 예를 들어 $params["org.ipsum.lorem"] 에서 org 만 추출되었습니다.

    이번 업데이트에서는 $params 가 전체 값을 가져오도록 이 문제를 해결했습니다. 예를 들어 $params["org.ipsum.lorem"]$params['org.ipsum.lorem'] 은 유효하고 전체 값이 < NAME > , org.ipsum.lorem, 추출됩니다.

    또한 < NAME >이 작은따옴표나 큰따옴표로 묶지 않은 경우에도 오류가 발생합니다. 예를 들어 $params.org.ipsum.lorem 은 유효하지 않으며 검증 오류를 생성합니다.

  • 이번 업데이트를 통해 Trigger 리소스는 사용자 정의 인터셉터를 지원하고 사용자 정의 인터셉터 서비스의 포트가 ClusterInterceptor 정의 파일의 포트와 동일한지 확인합니다.
  • 이번 업데이트 이전에는 Tekton Chains 및 Operator 구성 요소에 대한 tkn version 명령이 제대로 작동하지 않았습니다. 이번 업데이트에서는 명령이 올바르게 작동하고 해당 구성 요소에 대한 버전 정보를 반환하도록 이 문제가 해결되었습니다.
  • 이번 업데이트 이전에는 tkn pr delete --ignore-running 명령을 실행했으며 파이프라인 실행에 status.condition 값이 없으면 tkn CLI 툴에서 null 포인터 오류(NPE)가 생성되었습니다. 이번 업데이트에서는 CLI 툴이 오류를 생성하고 아직 실행 중인 파이프라인 실행을 올바르게 무시하도록 이 문제를 해결합니다.
  • 이번 업데이트 이전에는 tkn pr delete --keep <value > 또는 tkn tr delete --keep <value > 명령을 사용하고 파이프라인 실행 또는 작업 실행 수가 값보다 작으면 명령에서 오류를 예상대로 반환하지 않았습니다. 이번 업데이트에서는 명령이 이러한 조건에서 오류를 올바르게 반환하도록 문제를 해결합니다.
  • 이번 업데이트 이전에는 --ignore-running 플래그와 함께 -p 또는 -t 플래그와 함께 tkn pr delete 또는 tkn tr delete 명령을 사용하면 명령이 실행 중이거나 보류 중인 리소스가 잘못 삭제되었습니다. 이번 업데이트에서는 이러한 명령이 실행 중이거나 보류 중인 리소스를 올바르게 무시하도록 문제를 해결합니다.
  • 이번 업데이트를 통해 TektonChain 사용자 정의 리소스를 사용하여 Tekton Chains를 구성할 수 있습니다. 이 기능을 사용하면 업그레이드 중에 덮어쓸 수 있는 chain-config 구성 맵과 달리 업그레이드 후 구성이 유지됩니다.
  • 이번 업데이트를 통해 ClusterTask 리소스는 buildahs2i 클러스터 작업을 제외하고 기본적으로 root로 실행되지 않습니다.
  • 이번 업데이트 이전에는 init 을 첫 번째 인수로 사용하고 두 개 이상의 인수를 사용할 때 Red Hat OpenShift Pipelines 1.7.1의 작업이 실패했습니다. 이번 업데이트를 통해 플래그가 올바르게 구문 분석되고 작업이 성공적으로 실행됩니다.
  • 이번 업데이트 이전에는 OpenShift Container Platform 4.9에 Red Hat OpenShift Pipelines Operator를 설치하고 invalid 역할 바인딩으로 인해 다음 오류 메시지가 표시되었습니다.

    error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io
    "openshift-operators-prometheus-k8s-read-binding" is invalid:
    roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef

    이번 업데이트에서는 문제가 해결되어 오류가 더 이상 발생하지 않습니다.

  • 이전 버전에서는 Red Hat OpenShift Pipelines Operator를 업그레이드하면 파이프라인 서비스 계정이 다시 생성되므로 서비스 계정에 연결된 시크릿이 손실되었습니다. 이번 업데이트에서는 이 문제가 해결되었습니다. 업그레이드 중에 Operator는 더 이상 pipeline 서비스 계정을 다시 생성하지 않습니다. 결과적으로 업그레이드 후 파이프라인 서비스 계정에 연결된 시크릿은 업그레이드 후에도 유지되며 리소스(tasks 및 파이프라인)는 계속 올바르게 작동합니다.
  • 이번 업데이트를 통해 인프라 노드 설정이 TektonConfig CR(사용자 정의 리소스)에 구성된 경우 Code Pod로 Pipeline을 실행합니다.
  • 이전에는 리소스 정리기를 사용하여 각 네임스페이스 Operator가 별도의 컨테이너에서 실행된 명령을 생성했습니다. 이 설계에서는 네임스페이스가 많은 클러스터에서 너무 많은 리소스를 소비합니다. 예를 들어 단일 명령을 실행하려면 네임스페이스 1000개가 있는 클러스터에서 Pod에 1000개의 컨테이너를 생성합니다.

    이번 업데이트에서는 이 문제가 해결되었습니다. 반복문의 한 컨테이너에서 모든 명령이 실행되도록 네임스페이스 기반 구성을 작업에 전달합니다.

  • Tekton Chains에서 작업 및 이미지에 사용되는 키를 유지하기 위해 signing-secrets 라는 시크릿을 정의해야 합니다. 그러나 이번 업데이트 이전에는 Red Hat OpenShift Pipelines Operator가 재설정되거나 이 시크릿을 과도하게 업데이트하고 키가 손실되었습니다. 이번 업데이트에서는 이 문제가 해결되었습니다. 이제 Operator를 통해 Tekton Chains를 설치한 후 시크릿을 구성한 경우 보안이 유지되고 업그레이드에 의해 덮어쓰지 않습니다.
  • 이번 업데이트 이전에는 모든 S2I 빌드 작업이 다음 메시지와 유사한 오류로 실패했습니다.

    Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted
    time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted"
    time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"

    이번 업데이트를 통해 pipelines-scc SCC(보안 컨텍스트 제약 조건)는 BuildahS2I 클러스터 작업에 필요한 SETFCAP 기능과 호환됩니다. 결과적으로 BuildahS2I 빌드 작업이 성공적으로 실행될 수 있습니다.

    다양한 언어 및 프레임워크로 작성된 애플리케이션에 대해 Buildah 클러스터 작업 및 S2I 빌드 작업을 성공적으로 실행하려면 buildpush 와 같은 적절한 단계 오브젝트에 대해 다음 스니펫을 추가합니다.

    securityContext:
      capabilities:
        add: ["SETFCAP"]
  • 이번 업데이트 이전에는 Red Hat OpenShift Pipelines Operator를 설치하는 데 예상보다 오래 걸렸습니다. 이번 업데이트에서는 설치 프로세스의 속도를 높이기 위해 일부 설정을 최적화합니다.
  • 이번 업데이트를 통해 Buildah 및 S2I 클러스터 작업은 이전 버전보다 적은 단계가 있습니다. 일부 단계는 ResourceQuotaLimitRange 오브젝트와 더 잘 작동하도록 단일 단계로 결합되었으며 필요한 것보다 더 많은 리소스가 필요하지 않습니다.
  • 이번 업데이트에서는 클러스터 작업에서 Buildah, tkn CLI 툴 및 skopeo CLI 툴 버전을 업그레이드합니다.
  • 이번 업데이트 이전에는 네임스페이스가 Terminating 상태인 경우 RBAC 리소스를 생성할 때 Operator에 실패했습니다. 이번 업데이트를 통해 Operator는 종료 상태의 네임스페이스를 무시하고 RBAC 리소스를 생성합니다.
  • 이번 업데이트 이전에는 정리 cronjobs의 Pod가 인프라 노드에 예약되지 않았습니다. 대신 작업자 노드에 예약되었거나 전혀 예약되지 않았습니다. 이번 업데이트를 통해 TektonConfig CR(사용자 정의 리소스)에 구성된 경우 이러한 유형의 Pod를 인프라 노드에 예약할 수 있습니다.

3.1.4.6. Red Hat OpenShift Pipelines General Availability 1.8.1 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.10, 4.11, 4.12에서 Red Hat OpenShift Pipelines General Availability (GA) 1.8.1을 사용할 수 있습니다.

3.1.4.6.1. 확인된 문제
  • 기본적으로 컨테이너는 보안을 강화하기 위해 권한을 제한합니다. 제한된 권한은 Red Hat OpenShift Pipelines Operator의 모든 컨트롤러 Pod 및 일부 클러스터 작업에 적용됩니다. 제한된 권한으로 인해 특정 구성에서 git-clone 클러스터 작업이 실패합니다.

    해결방법: 없음. SRVKP-2634 문제를 추적할 수 있습니다.

  • 설치 프로그램 세트가 failed 상태인 경우 TektonConfig 사용자 지정 리소스의 상태가 False 대신 True 로 잘못 표시됩니다.

    예: 실패한 설치 프로그램 세트

    $ oc get tektoninstallerset
    NAME                                     READY   REASON
    addon-clustertasks-nx5xz                 False   Error
    addon-communityclustertasks-cfb2p        True
    addon-consolecli-ftrb8                   True
    addon-openshift-67dj2                    True
    addon-pac-cf7pz                          True
    addon-pipelines-fvllm                    True
    addon-triggers-b2wtt                     True
    addon-versioned-clustertasks-1-8-hqhnw   False   Error
    pipeline-w75ww                           True
    postpipeline-lrs22                       True
    prepipeline-ldlhw                        True
    rhosp-rbac-4dmgb                         True
    trigger-hfg64                            True
    validating-mutating-webhoook-28rf7       True

    예: In incorrect TektonConfig status

    $ oc get tektonconfig config
    NAME     VERSION   READY   REASON
    config   1.8.1     True

3.1.4.6.2. 해결된 문제
  • 이번 업데이트 이전에는 실행 중인 파이프라인의 정리 작업 실행 작업이 다음 경고를 표시했습니다. 일부 작업은 완료되지 않고 완료된 것으로 표시되었습니다. 이번 업데이트를 통해 정리기에서 파이프라인 실행의 일부인 작업을 유지합니다.
  • 이번 업데이트 이전에는 pipeline-1.8 이 Red Hat OpenShift Pipelines Operator 1.8.x를 설치하기 위한 기본 채널이었습니다. 이번 업데이트를 통해 latest 가 기본 채널입니다.
  • 이번 업데이트 이전에는 Pipeline as Code 컨트롤러 Pod가 사용자가 노출한 인증서에 액세스할 수 없었습니다. 이번 업데이트를 통해 Pipeline as Code는 자체 서명된 또는 사용자 정의 인증서로 보호되는 경로 및 Git 리포지토리에 액세스할 수 있습니다.
  • 이번 업데이트 이전에는 Red Hat OpenShift Pipelines 1.7.2에서 1.8.0으로 업그레이드한 후 RBAC 오류로 인해 작업이 실패했습니다. 이번 업데이트를 통해 RBAC 오류 없이 작업이 성공적으로 실행됩니다.
  • 이번 업데이트 이전에는 tkn CLI 툴을 사용하여 유형이 배열된 결과 오브젝트가 포함된 작업 실행 및 파이프라인 실행을 제거할 수 없었습니다. 이번 업데이트를 통해 tkn CLI 툴을 사용하여 유형이 배열된 결과 오브젝트가 포함된 작업 실행 및 파이프라인 실행을 제거할 수 있습니다.
  • 이번 업데이트 이전에는 파이프라인 사양에 배열 유형의 ENV_VARS 매개변수가 있는 작업이 포함된 경우, pipeline run failed with the following error: invalid input params for task func-buildpacks: param types do not match the user-specified type: [ENV_VARS]. 이번 업데이트를 통해 이러한 파이프라인 및 작업 사양을 사용하여 파이프라인 실행이 실패하지 않습니다.
  • 이번 업데이트 이전에는 클러스터 관리자가 컨테이너 레지스트리에 액세스하기 위한 Buildah 클러스터 작업에 config.json 파일을 제공할 수 없었습니다. 이번 업데이트를 통해 클러스터 관리자는 dockerconfig 작업 공간을 사용하여 Buildah 클러스터 작업을 config.json 파일로 제공할 수 있습니다.

3.1.4.7. Red Hat OpenShift Pipelines General Availability 1.8.2 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.10, 4.11, 4.12에서 Red Hat OpenShift Pipelines General Availability (GA) 1.8.2를 사용할 수 있습니다.

3.1.4.7.1. 해결된 문제
  • 이번 업데이트 이전에는 SSH 키를 사용하여 리포지토리를 복제할 때 git-clone 작업이 실패했습니다. 이번 업데이트를 통해 git-init 작업에서 root가 아닌 사용자의 역할이 제거되고 SSH 프로그램은 $HOME/.ssh/ 디렉터리에서 올바른 키를 찾습니다.

3.1.5. Red Hat OpenShift Pipelines General Availability 1.7 릴리스 정보

이번 업데이트를 통해 Red Hat OpenShift Pipelines General Availability (GA) 1.7은 OpenShift Container Platform 4.9, 4.10 및 4.11에서 사용할 수 있습니다.

3.1.5.1. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.7의 새로운 기능도 소개합니다.

3.1.5.1.1. 파이프라인
  • 이번 업데이트를 통해 pipelines-<version >은 Red Hat OpenShift Pipelines Operator를 설치할 기본 채널입니다. 예를 들어 Pipelines Operator 버전 1.7 을 설치할 기본 채널은 pipelines-1.7 입니다. 클러스터 관리자는 최신 채널을 사용하여 Operator의 최신 안정된 버전을 설치할 수도 있습니다.

    참고

    previewstable 채널은 향후 릴리스에서 더 이상 사용되지 않고 제거됩니다.

  • 사용자 네임스페이스에서 명령을 실행하면 컨테이너가 root (사용자 ID 0)로 실행되지만 호스트에 대한 사용자 권한이 있습니다. 이번 업데이트를 통해 사용자 네임스페이스에서 Pod를 실행하려면 CRI-O 에 필요한 주석을 전달해야 합니다.

    • 모든 사용자에 대해 이러한 주석을 추가하려면 oc edit clustertask buildah 명령을 실행하고 buildah 클러스터 작업을 편집합니다.
    • 특정 네임스페이스에 주석을 추가하려면 클러스터 작업을 작업을 해당 네임스페이스로 내보냅니다.
  • 이번 업데이트 이전에는 특정 조건이 충족되지 않은 경우 when 표현식에서 Task 오브젝트 및 해당 종속 작업을 건너뜁니다. 이번 업데이트를 통해 종속 작업이 아닌 Task 오브젝트만 보호하도록 when 표현식의 범위를 지정할 수 있습니다. 이 업데이트를 활성화하려면 TektonConfig CRD에서 scope-when-expressions-to-task 플래그를 true 로 설정합니다.

    참고

    scope-when-expressions-to-task 플래그는 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. 파이프라인에 대한 모범 사례로, 보호되는 Task 로만 적용되는 when 표현식을 사용합니다.

  • 이번 업데이트를 통해 작업 영역의 subPath 필드에서 변수 대체를 사용할 수 있습니다.
  • 이번 업데이트를 통해 작은따옴표 또는 작은따옴표로 대괄호 표기법을 사용하여 매개변수 및 결과를 참조할 수 있습니다. 이번 업데이트 이전에는 점 표기법만 사용할 수 있었습니다. 예를 들어 다음은 다음과 같습니다.

    • $(param.myparam), $(param['myparam']), and $(param["myparam"]).

      작은따옴표 또는 double quotes를 사용하여 문제가 있는 문자가 포함된 매개 변수 이름을 묶을 수 있습니다(예: "." 예를 들면 $(param['my.param'])$(param["my.param"]) 입니다.

  • 이번 업데이트를 통해 enable-api-fields 플래그를 활성화하지 않고 작업 정의에 단계의 onError 매개변수를 포함할 수 있습니다.
3.1.5.1.2. Trigger
  • 이번 업데이트를 통해 feature-flag-triggers 구성 맵에 새 필드 labels-exclusion-pattern 이 있습니다. 이 필드의 값을 정규 표현식(regex) 패턴으로 설정할 수 있습니다. 컨트롤러는 이벤트 리스너에서 이벤트 리스너에 대해 생성된 리소스로의 전파에서 regex 패턴과 일치하는 레이블을 필터링합니다.
  • 이번 업데이트를 통해 TriggerGroups 필드가 EventListener 사양에 추가됩니다. 이 필드를 사용하면 트리거 그룹을 선택하고 실행하기 전에 실행할 인터셉터 세트를 지정할 수 있습니다. 이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.
  • 이번 업데이트를 통해 Trigger 리소스는 TriggerTemplate 템플릿에 정의된 사용자 정의 실행을 지원합니다.
  • 이번 업데이트를 통해 Triggers는 EventListener Pod에서 Kubernetes 이벤트 내보내기를 지원합니다.
  • 이번 업데이트를 통해 ClusterInteceptor,EventListener,TriggerTemplate,ClusterTriggerBinding, TriggerBinding 등 다음과 같은 오브젝트에 대한 수 메트릭을 사용할 수 있습니다.
  • 이번 업데이트에서는 ServicePort 사양을 Kubernetes 리소스에 추가합니다. 이 사양을 사용하여 이벤트 리스너 서비스를 노출하는 포트를 수정할 수 있습니다. 기본 포트는 8080 입니다.
  • 이번 업데이트를 통해 EventListener 사양의 targetURI 필드를 사용하여 트리거 처리 중에 클라우드 이벤트를 보낼 수 있습니다. 이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.
  • 이번 업데이트를 통해 tekton-triggers-eventlistener-roles 오브젝트에 이미 존재하는 create 동사 외에도 patch 동사가 있습니다.
  • 이번 업데이트를 통해 securityContext.runAsUser 매개변수가 이벤트 리스너 배포에서 제거됩니다.
3.1.5.1.3. CLI
  • 이번 업데이트를 통해 tkn [pipeline | pipelinerun] export 명령에서 파이프라인 또는 파이프라인 실행을 YAML 파일로 내보냅니다. 예를 들면 다음과 같습니다.

    • openshift-pipelines 네임스페이스에서 test_pipeline s라는 파이프라인을 내보냅니다.

      $ tkn pipeline export test_pipeline -n openshift-pipelines
    • openshift-pipelines 네임스페이스에서 test_pipeline_run 이라는 파이프라인 실행을 내보냅니다.

      $ tkn pipelinerun export test_pipeline_run -n openshift-pipelines
  • 이번 업데이트를 통해 tkn pipelinerun cancel--grace 옵션이 추가됩니다. 종료를 강제 적용하는 대신 --grace 옵션을 사용하여 파이프라인 실행을 정상적으로 종료합니다. 이 기능을 활성화하려면 TektonConfig 사용자 지정 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정해야 합니다.
  • 이번 업데이트에서는 tkn version 명령의 출력에 Operator 및 Chains 버전이 추가되었습니다.

    중요

    Tekton Chains는 기술 프리뷰 기능입니다.

  • 이번 업데이트를 통해 파이프라인 실행을 취소할 때 tkn pipelinerun describe 명령이 모두 취소된 작업 실행을 표시합니다. 이번 수정 이전에는 하나의 작업 실행만 표시되었습니다.
  • 이번 업데이트를 통해 tkn [t | p | ct] start 명령을 --skip-optional-workspace 플래그로 건너뛸 때 선택적 작업 공간에 대한 요청 사양을 건너뛸 수 있습니다. 대화형 모드에서 실행할 때 건너뛸 수도 있습니다.
  • 이번 업데이트를 통해 tkn chain 명령을 사용하여 Tekton Chains를 관리할 수 있습니다. --chains-namespace 옵션을 사용하여 Tekton Chains를 설치할 네임스페이스를 지정할 수도 있습니다.

    중요

    Tekton Chains는 기술 프리뷰 기능입니다.

3.1.5.1.4. Operator
  • 이번 업데이트를 통해 Red Hat OpenShift Pipelines Operator를 사용하여 Tekton Hub 및 Tekton 체인을 설치하고 배포할 수 있습니다.

    중요

    Tekton Chains 및 클러스터에서 Tekton Hub의 배포는 기술 프리뷰 기능입니다.

  • 이번 업데이트를 통해 Pipelines asPAC (PAC)를 애드온 옵션으로 찾아 사용할 수 있습니다.

    중요

    코드의 파이프라인은 기술 프리뷰 기능입니다.

  • 이번 업데이트를 통해 community 클러스터 작업 설치를 비활성화할 수 있습니다. communityClusterTasks 매개변수를 false 로 설정합니다. 예를 들면 다음과 같습니다.

    ...
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      addon:
        params:
        - name: clusterTasks
          value: "true"
        - name: pipelineTemplates
          value: "true"
        - name: communityClusterTasks
          value: "false"
    ...
  • 이번 업데이트를 통해 TektonConfig 사용자 정의 리소스에서 enable-devconsole-integration 플래그를 false 로 설정하여 Tekton Hub와 개발자 화면의 통합을 비활성화할 수 있습니다. 예를 들면 다음과 같습니다.

    ...
    hub:
      params:
        - name: enable-devconsole-integration
          value: "true"
    ...
  • 이번 업데이트를 통해 operator-config.yaml 구성 맵을 사용하면 tkn version 명령의 출력이 Operator 버전을 표시할 수 있습니다.
  • 이번 업데이트를 통해 argocd-task-sync-and-wait 작업의 버전이 v0.2 로 수정됩니다.
  • 이번 업데이트를 통해 TektonConfig CRD로 업데이트하면 oc get tektonconfig 명령으로 OPerator 버전이 표시됩니다.
  • 이번 업데이트를 통해 서비스 모니터가 트리거 메트릭에 추가됩니다.
3.1.5.1.5. hub
중요

클러스터에 Tekton Hub를 배포하는 것은 기술 프리뷰 기능입니다.

Tekton Hub를 사용하면 CI/CD 워크플로를 위한 재사용 가능한 작업 및 파이프라인을 검색, 검색 및 공유할 수 있습니다. Tekton Hub의 공용 인스턴스는 hub.tekton.dev 에서 사용할 수 있습니다.

Red Hat OpenShift Pipelines 1.7에서 클러스터 관리자는 엔터프라이즈 클러스터에 Tekton Hub의 사용자 정의 인스턴스를 설치하고 배포할 수도 있습니다. 조직과 관련된 재사용 가능한 작업 및 파이프라인으로 카탈로그를 큐레이팅할 수 있습니다.

3.1.5.1.6. 체인
중요

Tekton Chains는 기술 프리뷰 기능입니다.

Tekton Chains는 Kubernetes CRD(Custom Resource Definition) 컨트롤러입니다. 이를 사용하여 Red Hat OpenShift Pipelines를 사용하여 생성된 작업 및 파이프라인의 공급망 보안을 관리할 수 있습니다.

기본적으로 Tekton Chains는 OpenShift Container Platform 클러스터에서 작업이 실행되는 것을 모니터링합니다. 체인에는 완료된 작업 실행의 스냅샷을 가져와서 하나 이상의 표준 페이로드 형식으로 변환하고 모든 아티팩트를 서명하고 저장합니다.

Tekton Chains는 다음 기능을 지원합니다.

  • cosign 과 같은 암호화 키 유형 및 서비스를 사용하여 작업 실행, 작업 실행 결과 및 OCI 레지스트리 이미지에 서명할 수 있습니다.
  • in-to-to 와 같은 테스트 형식을 사용할 수 있습니다.
  • OCI 리포지토리를 스토리지 백엔드로 사용하여 서명 및 서명된 아티팩트를 안전하게 저장할 수 있습니다.
3.1.5.1.7. 모델 번호 (PAC)
중요

코드의 파이프라인은 기술 프리뷰 기능입니다.

Pipeline을 코드로 사용하면 클러스터 관리자 및 필요한 권한이 있는 사용자는 소스 코드 Git 리포지토리의 일부로 파이프라인 템플릿을 정의할 수 있습니다. 소스 코드 푸시 또는 구성된 Git 리포지토리의 가져오기 요청에 의해 트리거되면 해당 기능은 파이프라인 및 보고서 상태를 실행합니다.

코드 파이프라인은 다음 기능을 지원합니다.

  • 가져오기 요청 상태. 가져오기 요청을 덮어쓸 때 가져오기 요청의 상태 및 제어는 Git 리포지토리를 호스팅하는 플랫폼에서 수행됩니다.
  • GitHub에서 API를 확인하여 재확인을 포함하여 파이프라인 실행 상태를 설정합니다.
  • GitHub 가져오기 요청 및 커밋 이벤트
  • /retest 와 같은 주석에서 요청 작업을 가져옵니다.
  • Git 이벤트 필터링 및 각 이벤트에 대한 별도의 파이프라인.
  • 로컬 작업, Tekton Hub 및 원격 URL을 위한 파이프라인 작업 확인.
  • 구성을 검색하는 데 GitHub Blob 및 오브젝트 API를 사용합니다.
  • GitHub 조직의 ACL(액세스 목록) 또는 Prow 스타일 OWNER 파일을 사용합니다.
  • tkn CLI 툴용 tkn pac 플러그인은 파이프라인을 코드 리포지토리로 관리하고 부트스트랩하는 데 사용할 수 있습니다.
  • GitHub Application, GitHub Webhook, Bitbucket Server 및 Bitbucket Cloud에 대한 지원

3.1.5.2. 더 이상 사용되지 않는 기능

  • 변경 사항 중단: 이 업데이트는 TektonConfig 사용자 정의 리소스(CR)에서 disable-working-directory-overwritedisable-home-env-overwrite 필드를 제거합니다. 결과적으로 TektonConfig CR에서 더 이상 $HOME 환경 변수 및 workingDir 매개변수를 자동으로 설정하지 않습니다. CRD( 작업 사용자 정의 리소스 정의)의 envworkingDir 필드를 사용하여 $HOME 환경 변수 및 workingDir 매개변수를 설정할 수 있습니다.
  • Conditions CRD(사용자 정의 리소스 정의) 유형은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 권장되는 When 표현식을 사용하십시오.
  • 변경 중단: Triggers 리소스는 템플릿을 검증하고 EventListenerTriggerBinding 값을 지정하지 않으면 오류를 생성합니다.

3.1.5.3. 확인된 문제

  • Maven 및 Jib-Maven 클러스터 작업을 실행할 때 기본 컨테이너 이미지는 Intel (x86) 아키텍처에서만 지원됩니다. 따라서 ARM, IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x) 클러스터에서 작업이 실패합니다. 이 문제를 해결하려면 MAVEN_IMAGE 매개변수 값을 maven:3.6.3-adoptopenjdk-11 로 설정하여 사용자 정의 이미지를 지정할 수 있습니다.

    작은 정보

    tkn hub 를 사용하여 ARM, IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x)의 Tekton Catalog를 기반으로 하는 작업을 설치하기 전에 이러한 플랫폼에서 작업을 실행할 수 있는지 확인합니다. 작업 정보의 "Platforms" 섹션에 ppc64les390x 가 나열되어 있는지 확인하려면 다음 명령을 실행합니다. tkn hub info task <name>

  • IBM Power Systems, IBM Z 및 LinuxONE에서 s2i-dotnet 클러스터 작업은 지원되지 않습니다.
  • 다음 오류가 생성되므로 nodejs:14-ubi8-minimal 이미지 스트림을 사용할 수 없습니다.

    STEP 7: RUN /usr/libexec/s2i/assemble
    /bin/sh: /usr/libexec/s2i/assemble: No such file or directory
    subprocess exited with status 127
    subprocess exited with status 127
    error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127
    time="2021-11-04T13:05:26Z" level=error msg="exit status 127"
  • 암시적 매개변수 매핑은 최상위 파이프라인 또는 PipelineRun 정의에서 taskRef 작업으로 매개변수를 잘못 전달합니다. 매핑은 고급 리소스에서 인라인 taskSpec 사양이 있는 작업으로만 발생해야 합니다. 이 문제는 TektonConfig 사용자 정의 리소스 정의의 pipeline 섹션에서 enable-api-fields 필드를 alpha 로 설정하여 이 기능이 활성화된 클러스터에만 영향을 미칩니다.

3.1.5.4. 해결된 문제

  • 이번 업데이트를 통해 PipelinePipelineRun 오브젝트 정의 둘 다에 라벨주석 과 같은 메타데이터가 있는 경우 PipelineRun 유형의 값이 우선합니다. TaskTaskRun 오브젝트에 대한 유사한 동작을 확인할 수 있습니다.
  • 이번 업데이트를 통해 timeouts.tasks 필드 또는 timeouts.finally 필드가 0 으로 설정된 경우 timeouts.pipeline0 으로 설정됩니다.
  • 이번 업데이트를 통해 shebang을 사용하지 않는 스크립트에서 -x set 플래그가 제거됩니다. 수정을 통해 스크립트 실행에서 발생할 수 있는 데이터 누수가 줄어듭니다.
  • 이번 업데이트를 통해 Git 자격 증명의 사용자 이름에 있는 백슬래시 문자가 .gitconfig 파일에서 추가 백슬래시로 이스케이프됩니다.
  • 이번 업데이트를 통해 로깅 및 구성 맵을 정리하는 데 EventListener 오브젝트의 종료 속성이 필요하지 않습니다.
  • 이번 업데이트를 통해 이벤트 리스너 서버와 연결된 기본 HTTP 클라이언트가 제거되고 사용자 지정 HTTP 클라이언트가 추가되었습니다. 결과적으로 시간 제한이 개선되었습니다.
  • 이번 업데이트를 통해 Triggers 클러스터 역할이 소유자 참조와 함께 작동합니다.
  • 이번 업데이트를 통해 여러 인터셉터에서 확장을 반환하는 경우 이벤트 리스너의 경쟁 조건이 발생하지 않습니다.
  • 이번 업데이트를 통해 tkn pr delete 명령에서 ignore-running 플래그를 사용하여 파이프라인 실행을 삭제하지 않습니다.
  • 이번 업데이트를 통해 애드온 매개변수를 수정할 때 Operator Pod가 계속 재시작되지 않습니다.
  • 이번 업데이트를 통해 서브스크립션 및 config 사용자 정의 리소스에 구성되지 않은 경우 tkn service CLI Pod가 인프라 노드에 예약됩니다.
  • 이번 업데이트를 통해 지정된 버전의 클러스터 작업은 업그레이드 중에 삭제되지 않습니다.

3.1.5.5. Red Hat OpenShift Pipelines General Availability 1.7.1 릴리스 정보

이번 업데이트를 통해 Red Hat OpenShift Pipelines General Availability (GA) 1.7.1은 OpenShift Container Platform 4.9, 4.10 및 4.11에서 사용할 수 있습니다.

3.1.5.5.1. 해결된 문제
  • 이번 업데이트 이전에는 Red Hat OpenShift Pipelines Operator가 Tekton Hub와 연결된 데이터베이스에서 데이터를 삭제한 후 새 데이터베이스를 설치했습니다. 이번 업데이트를 통해 Operator 업그레이드에서 데이터를 유지합니다.
  • 이번 업데이트 이전에는 클러스터 관리자만 OpenShift Container Platform 콘솔의 파이프라인 메트릭에 액세스할 수 있었습니다. 이번 업데이트를 통해 다른 클러스터 역할을 가진 사용자도 파이프라인 메트릭에 액세스할 수 있습니다.
  • 이번 업데이트 이전에는 대규모 종료 메시지를 내보내는 작업이 포함된 파이프라인에 대해 파이프라인이 실패했습니다. Pod의 모든 컨테이너의 종료 메시지의 총 크기는 12KB를 초과할 수 없기 때문에 파이프라인이 실패합니다. 이번 업데이트를 통해 동일한 이미지를 사용하는 place-toolsstep-init 초기화 컨테이너가 병합되어 각 작업의 Pod에서 실행되는 컨테이너 수를 줄입니다. 이 솔루션을 사용하면 작업 Pod에서 실행 중인 컨테이너 수를 최소화하여 파이프라인 실행 실패 가능성을 줄일 수 있습니다. 그러나 종료 메시지의 허용되는 최대 크기 제한은 제거되지 않습니다.
  • 이번 업데이트 이전에는 Tekton Hub 웹 콘솔에서 직접 리소스 URL에 액세스하려고 하면 Nginx 404 오류가 발생했습니다. 이번 업데이트를 통해 Tekton Hub 웹 콘솔 이미지가 Tekton Hub 웹 콘솔에서 직접 리소스 URL에 액세스할 수 있도록 수정되었습니다.
  • 이번 업데이트 이전에는 리소스 pruner 작업에서 리소스를 정리하기 위해 별도의 컨테이너를 생성했습니다. 이번 업데이트를 통해 리소스 정리 작업에서는 모든 네임스페이스에 대한 명령을 하나의 컨테이너에서 반복문으로 실행합니다.

3.1.5.6. Red Hat OpenShift Pipelines General Availability 1.7.2 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.9, 4.10 및 향후 버전에서 Red Hat OpenShift Pipelines General Availability (GA) 1.7.2를 사용할 수 있습니다.

3.1.5.6.1. 확인된 문제
  • openshift -pipelines 네임스페이스의 Tekton Chains에 대한 chain-config 구성 맵은 Red Hat OpenShift Pipelines Operator를 업그레이드한 후 자동으로 기본값으로 재설정됩니다. 현재는 이 문제에 대한 해결방법이 없습니다.
3.1.5.6.2. 해결된 문제
  • 이번 업데이트 이전에는 Pipelines 1.7.1의 작업이 첫 번째 인수로 init 을 사용한 다음 두 개 이상의 인수를 사용하지 못했습니다. 이번 업데이트를 통해 플래그가 올바르게 구문 분석되고 작업이 성공적으로 실행됩니다.
  • 이번 업데이트 이전에는 OpenShift Container Platform 4.9에 Red Hat OpenShift Pipelines Operator를 설치하고 invalid 역할 바인딩으로 인해 다음 오류 메시지가 표시되었습니다.

    error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io "openshift-operators-prometheus-k8s-read-binding" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef

    이번 업데이트를 통해 Red Hat OpenShift Pipelines Operator는 다른 Operator 설치와 충돌하지 않도록 별도의 역할 바인딩 네임스페이스와 함께 설치됩니다.

  • 이번 업데이트 이전에는 Operator를 업그레이드하면 Tekton Chains의 signing-secrets 시크릿 키 재설정이 기본값으로 트리거되었습니다. 이번 업데이트를 통해 Operator를 업그레이드한 후 사용자 정의 보안 키가 유지됩니다.

    참고

    Red Hat OpenShift Pipelines 1.7.2로 업그레이드하면 키가 재설정됩니다. 그러나 향후 릴리스로 업그레이드할 때는 키가 유지되어야 합니다.

  • 이번 업데이트 이전에는 모든 S2I 빌드 작업이 다음 메시지와 유사한 오류로 실패했습니다.

    Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted
    time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted"
    time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"

    이번 업데이트를 통해 pipelines-scc SCC(보안 컨텍스트 제약 조건)는 BuildahS2I 클러스터 작업에 필요한 SETFCAP 기능과 호환됩니다. 결과적으로 BuildahS2I 빌드 작업이 성공적으로 실행될 수 있습니다.

    다양한 언어 및 프레임워크로 작성된 애플리케이션에 대해 Buildah 클러스터 작업 및 S2I 빌드 작업을 성공적으로 실행하려면 buildpush 와 같은 적절한 단계 오브젝트에 대해 다음 스니펫을 추가합니다.

    securityContext:
      capabilities:
        add: ["SETFCAP"]

3.1.5.7. Red Hat OpenShift Pipelines General Availability 1.7.3 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.9, 4.10 및 4.11에서 Red Hat OpenShift Pipelines General Availability(GA) 1.7.3을 사용할 수 있습니다.

3.1.5.7.1. 해결된 문제
  • 이번 업데이트 이전에는 네임스페이스가 Terminating 상태인 경우 RBAC 리소스를 생성할 때 Operator에 실패했습니다. 이번 업데이트를 통해 Operator는 종료 상태의 네임스페이스를 무시하고 RBAC 리소스를 생성합니다.
  • 이전 버전에서는 Red Hat OpenShift Pipelines Operator를 업그레이드하면 파이프라인 서비스 계정이 다시 생성되므로 서비스 계정에 연결된 시크릿이 손실되었습니다. 이번 업데이트에서는 이 문제가 해결되었습니다. 업그레이드 중에 Operator는 더 이상 pipeline 서비스 계정을 다시 생성하지 않습니다. 결과적으로 업그레이드 후 파이프라인 서비스 계정에 연결된 시크릿은 업그레이드 후에도 유지되며 리소스(tasks 및 파이프라인)는 계속 올바르게 작동합니다.

3.1.6. Red Hat OpenShift Pipelines General Availability 1.6 릴리스 정보

이번 업데이트를 통해 OpenShift Container Platform 4.9에서 Red Hat OpenShift Pipelines General Availability(GA) 1.6을 사용할 수 있습니다.

3.1.6.1. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.6의 새로운 기능도 소개합니다.

  • 이번 업데이트를 통해 --output <string> , 여기서 <string>은 yaml 또는 json 을 사용하여 YAML 또는 JSON 형식의 문자열 을 반환하도록 pipeline 또는 task start 명령을 구성할 수 있습니다. 그렇지 않으면 --output 옵션이 없으면 start 명령은 다른 프로그램에서 구문 분석하기 어려운 사람 친화적인 메시지를 반환합니다. YAML 또는 JSON 형식의 문자열을 반환하는 것은 CI(Continuous Integration) 환경에 유용합니다. 예를 들어, 리소스가 생성되면 yq 또는 jq 를 사용하여 리소스에 대한 YAML 또는 JSON 형식의 메시지를 구문 분석하고 showlog 옵션을 사용하지 않고 해당 리소스가 종료될 때까지 기다릴 수 있습니다.
  • 이번 업데이트를 통해 Podman의 auth.json 인증 파일을 사용하여 레지스트리에 인증할 수 있습니다. 예를 들어, tkn bundle push 를 사용하여 Docker CLI 대신 Podman을 사용하여 원격 레지스트리로 내보낼 수 있습니다.
  • 이번 업데이트를 통해 tkn [taskrun | pipelinerun] delete --all 명령을 사용하는 경우 새 --keep-since <minutes> 옵션을 사용하여 지정된 수보다 작은 실행을 보존할 수 있습니다. 예를 들어 5분 미만의 실행을 유지하려면 tkn [taskrun | pipelinerun] delete -all --keep-since 5 를 입력합니다.
  • 이번 업데이트를 통해 작업 실행 또는 파이프라인 실행을 삭제할 때 --parent-resource--keep-since 옵션을 함께 사용할 수 있습니다. 예를 들어 tkn pipelinerun delete --pipeline pipelinename --keep-since 5 명령은 상위 리소스가 pipelinename 이라는 이름과 기간이 5분 미만인 파이프라인 실행을 유지합니다. tkn tr delete -t <taskname> --keep-since 5tkn tr delete --clustertask <taskname> --keep-since 5 명령이 작업 실행에 대해 유사하게 작동합니다.
  • 이번 업데이트에서는 v1beta1 리소스와 함께 작동하도록 트리거 리소스에 대한 지원이 추가되었습니다.
  • 이번 업데이트에서는 tkn pipelinerun deletetkn taskrun delete 명령에 ignore-running 옵션이 추가되었습니다.
  • 이번 업데이트에서는 tkn tasktkn clustertask 명령에 create 하위 명령이 추가되었습니다.
  • 이번 업데이트를 통해 tkn pipelinerun delete --all 명령을 사용할 때 새 --label <string > 옵션을 사용하여 라벨로 파이프라인 실행을 필터링할 수 있습니다. 선택적으로 === 를 같음 연산자 또는 != 과 함께 --label 옵션을 inequality 연산자로 사용할 수 있습니다. 예를 들어 tkn pipelinerun delete --all --label delete --dftkn pipelinerun delete --all --label==asdf 명령은 asdf 레이블이 있는 모든 파이프라인 실행을 삭제합니다.
  • 이번 업데이트를 통해 설치된 Tekton 구성 요소 버전을 구성 맵에서 가져오거나 구성 맵이 없으면 배포 컨트롤러에서 설치할 수 있습니다.
  • 이번 업데이트를 통해 트리거는 feature-flagsconfig-defaults 구성 맵을 지원하여 기능 플래그를 구성하고 각각 기본값을 설정합니다.
  • 이번 업데이트에서는 EventListener 리소스에서 수신한 이벤트를 계산하는 데 사용할 수 있는 새 메트릭 eventlistener_event_count 가 추가되었습니다.
  • 이번 업데이트에서는 v1beta1 Go API 유형이 추가되었습니다. 이번 업데이트를 통해 트리거는 이제 v1beta1 API 버전을 지원합니다.

    현재 릴리스에서는 v1alpha1 기능이 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. 대신 v1beta1 기능을 사용합니다.

  • 현재 릴리스에서는 리소스의 자동 실행이 기본적으로 활성화되어 있습니다. 또한 다음 새 주석을 사용하여 각 네임스페이스에 대해 작업 실행 및 파이프라인 실행 자동 실행을 구성할 수 있습니다.

    • operator.tekton.dev/prune.schedule: 이 주석의 값이 TektonConfig 사용자 지정 리소스 정의에 지정된 값과 다른 경우 해당 네임스페이스의 새 cron 작업이 생성됩니다.
    • operator.tekton.dev/prune.skip: true 로 설정하면 구성된 네임스페이스가 표시되지 않습니다.
    • operator.tekton.dev/prune.resources: 이 주석은 쉼표로 구분된 리소스 목록을 허용합니다. 파이프라인 실행과 같은 단일 리소스를 정리하려면 이 주석을 "pipelinerun" 으로 설정합니다. 작업 실행 및 파이프라인 실행과 같은 여러 리소스를 정리하려면 이 주석을 "taskrun, pipelinerun" 로 설정합니다.
    • operator.tekton.dev/prune.keep: 이 주석을 사용하여 prunning 없이 리소스를 유지합니다.
    • operator.tekton.dev/prune.keep-since:이 주석을 사용하여 수명에 따라 리소스를 유지합니다. 이 주석의 값은 리소스 사용 기간(분)과 같아야 합니다. 예를 들어 5일 전에 생성된 리소스를 유지하려면 keep-since7200 으로 설정합니다.

      참고

      keepkeep-since 주석은 상호 배타적입니다. 모든 리소스의 경우 해당 리소스 중 하나만 구성해야 합니다.

    • operator.tekton.dev/prune.strategy: 이 주석의 값을 유지하거나 keep -since 로 설정합니다.
  • 관리자는 전체 클러스터에 대한 파이프라인 서비스 계정 생성을 비활성화하고 관련 SCC를 잘못 사용하여 권한 에스컬레이션을 방지할 수 있습니다. 이 SCC는 anyuid 와 매우 유사합니다.
  • 이제 TektonConfig CR(사용자 정의 리소스)과 TektonPipelineTektonTriggers 와 같은 개별 구성 요소에 대한 CR을 사용하여 기능 플래그 및 구성 요소를 구성할 수 있습니다. 이 세분성 수준은 개별 구성 요소에 대한 Tekton OCI 번들과 같은 알파 기능을 사용자 지정하고 테스트하는 데 도움이 됩니다.
  • PipelineRun 리소스에 대한 선택적 Timeouts 필드를 구성할 수 있습니다. 예를 들어 파이프라인 실행, 각 작업 실행 및 finally 작업에 대해 시간 제한을 별도로 구성할 수 있습니다.
  • TaskRun 리소스에서 생성한 Pod는 이제 Pod의 activeDeadlineSeconds 필드를 설정합니다. 이를 통해 OpenShift는 이를 종료로 간주할 수 있으며 pod에 대해 특별히 범위가 지정된 ResourceQuota 오브젝트를 사용할 수 있습니다.
  • configmaps를 사용하여 작업 실행, 파이프라인 실행, 작업 및 파이프라인에서 메트릭 태그 또는 레이블 유형을 제거할 수 있습니다. 또한 히스토그램, 게이지 또는 마지막 값과 같은 기간 측정을 위해 다양한 유형의 메트릭을 구성할 수 있습니다.
  • Tekton이 이제 Min,Max, Default , Default Request 필드를 고려하여 LimitRange 오브젝트를 완전히 지원하므로 Pod에서 요청 및 제한을 일관되게 정의할 수 있습니다.
  • 다음 알파 기능이 도입되었습니다.

    • 이제 파이프라인 실행이 모든 작업 실행의 실행을 직접 중지한 이전 동작이 아닌 finally 작업을 실행한 후 중지할 수 있습니다. 이번 업데이트에서는 다음 spec.status 값을 추가합니다.

      • StoppedRunFinally 는 완료된 후 현재 실행 중인 작업을 중지한 다음 finally 작업을 실행합니다.
      • CancelledRun finally는 실행 중인 작업을 즉시 취소하고 finally 작업을 실행합니다.
      • 취소 하면 PipelineRunCancelled 상태에서 제공하는 이전 동작이 유지됩니다.

        참고

        취소된 상태는 v1 버전에서 제거될 더 이상 사용되지 않는 PipelineRunCancelled 상태를 대체합니다.

    • 이제 oc debug 명령을 사용하여 작업을 디버그 모드로 설정하여 실행을 일시 중지하고 Pod의 특정 단계를 검사할 수 있습니다.
    • 계속할 단계의 onError 필드를 설정하면 단계 종료 코드가 기록되어 후속 단계로 전달됩니다. 그러나 작업 실행은 실패하지 않으며 작업의 나머지 단계를 계속 실행합니다. 기존 동작을 유지하려면 onError 필드 값을 stopAndFail 로 설정할 수 있습니다.
    • 작업에서 실제로 사용되는 것보다 더 많은 매개변수를 허용할 수 있습니다. 알파 기능 플래그를 활성화하면 매개 변수가 인라인 사양으로 암시적으로 전파될 수 있습니다. 예를 들어 인라인 작업은 작업에 대한 각 매개변수를 명시적으로 정의하지 않고도 상위 파이프라인 실행의 매개변수에 액세스할 수 있습니다.
    • 알파 기능에 대한 플래그를 활성화하면 When 표현식의 조건이 직접 연결된 작업에만 적용되며 작업의 종속 항목은 적용되지 않습니다. 식을 연결된 작업 및 해당 종속 항목에 적용하려면 식을 종속된 각 작업과 별도로 연결해야 합니다. 앞으로 이 동작은 Tekton의 새 API 버전에서 When 표현식의 기본 동작입니다. 이 업데이트 대신 기존 기본 동작이 더 이상 사용되지 않습니다.
  • 현재 릴리스에서는 TektonConfig CR(사용자 정의 리소스)에서 nodeSelector허용 오차 값을 지정하여 노드 선택을 구성할 수 있습니다. Operator는 이러한 값을 생성하는 모든 배포에 추가합니다.

    • Operator의 컨트롤러 및 웹 후크 배포에 대한 노드 선택을 구성하려면 Operator를 설치한 후 Subscription CR 사양에서 config.nodeSelectorconfig.tolerations 필드를 편집합니다.
    • 인프라 노드에 OpenShift Pipelines의 나머지 컨트롤 플레인 Pod를 배포하려면 nodeSelectortolerations 필드를 사용하여 TektonConfig CR을 업데이트합니다. 그런 다음 수정 사항이 Operator에서 생성한 모든 Pod에 적용됩니다.

3.1.6.2. 더 이상 사용되지 않는 기능

  • CLI 0.21.0에서 clustertask, task ,task run, pipelinerun 명령에 대한 모든 v1alpha1 리소스를 지원하지 않습니다. 이러한 리소스는 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
  • Tekton Triggers v0.16.0에서는 EventListener 리소스에 대한 지표에서 중복 상태 레이블이 제거됩니다.

    중요

    변경 중단: eventlistener_http_duration_seconds_* 메트릭에서 상태 레이블이 제거되었습니다. 상태 레이블을 기반으로 하는 쿼리를 제거합니다.

  • 현재 릴리스에서는 v1alpha1 기능이 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. 이번 업데이트를 통해 대신 v1beta1 Go API 유형을 사용할 수 있습니다. Trigger가 이제 v1beta1 API 버전을 지원합니다.
  • 현재 릴리스에서는 EventListener 리소스에서 트리거가 처리를 완료하기 전에 응답을 보냅니다.

    중요

    변경 사항 중단: 이 변경으로 인해 리소스를 생성할 때 EventListener 리소스가 201 Created 상태 코드로 응답하지 않습니다. 대신 202 Accepted 응답 코드로 응답합니다.

  • 현재 릴리스에서는 EventListener 리소스에서 podTemplate 필드를 제거합니다.

    중요

    변경 중단: #1100 의 일부로 더 이상 사용되지 않는 podTemplate 필드가 제거되었습니다.

  • 현재 릴리스에서는 EventListener 리소스의 사양에서 더 이상 사용되지 않는 복제본 필드를 제거합니다.

    중요

    변경 사항 중단: 더 이상 사용되지 않는 복제본 필드가 제거되었습니다.

  • Red Hat OpenShift Pipelines 1.6에서 HOME="/tekton/home"workingDir="/workspace" 의 값은 Step 오브젝트의 사양에서 제거됩니다.

    대신 Red Hat OpenShift Pipelines는 Step 오브젝트를 실행하는 컨테이너에서 정의한 값으로 HOMEworkingDir 을 설정합니다. Step 오브젝트의 사양에 따라 이러한 값을 재정의할 수 있습니다.

    이전 동작을 사용하려면 TektonConfig CR의 disable-working-directory-overwritedisable-home-env-overwrite 필드를 false 로 변경할 수 있습니다.

    apiVersion: operator.tekton.dev/v1alpha1
      kind: TektonConfig
      metadata:
        name: config
      spec:
        pipeline:
          disable-working-directory-overwrite: false
          disable-home-env-overwrite: false
      ...
    중요

    TektonConfig CR의 disable-working-directory-overwritedisable-home-env-overwrite 필드는 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.

3.1.6.3. 확인된 문제

  • Maven 및 Jib-Maven 클러스터 작업을 실행할 때 기본 컨테이너 이미지는 Intel (x86) 아키텍처에서만 지원됩니다. 따라서 IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x) 클러스터에서 작업이 실패합니다. 이 문제를 해결하려면 MAVEN_IMAGE 매개변수 값을 maven:3.6.3-adoptopenjdk-11 로 설정하여 사용자 정의 이미지를 지정할 수 있습니다.
  • IBM Power Systems, IBM Z 및 LinuxONE에서 s2i-dotnet 클러스터 작업은 지원되지 않습니다.
  • tkn hub 를 사용하여 IBM Power Systems(ppc64le), IBM Z 및 LinuxONE(s390x)의 Tekton Catalog를 기반으로 작업을 설치하기 전에 이러한 플랫폼에서 작업을 실행할 수 있는지 확인합니다. 작업 정보의 "Platforms" 섹션에 ppc64les390x 가 나열되어 있는지 확인하려면 다음 명령을 실행합니다. tkn hub info task <name>
  • 다음 오류가 생성되므로 nodejs:14-ubi8-minimal 이미지 스트림을 사용할 수 없습니다.

    STEP 7: RUN /usr/libexec/s2i/assemble
    /bin/sh: /usr/libexec/s2i/assemble: No such file or directory
    subprocess exited with status 127
    subprocess exited with status 127
    error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127
    time="2021-11-04T13:05:26Z" level=error msg="exit status 127"

3.1.6.4. 해결된 문제

  • tkn hub 명령이 IBM Power Systems, IBM Z 및 LinuxONE에서 지원됩니다.
  • 이번 업데이트 이전에는 사용자가 tkn 명령을 실행한 후 터미널을 사용할 수 없어 재시도 횟수 가 지정된 경우에도 파이프라인 실행이 수행되었습니다. 작업 실행 또는 파이프라인 실행에 시간 초과를 지정할 수 없었습니다. 이번 업데이트에서는 명령을 실행한 후 터미널을 사용할 수 있도록 문제를 해결합니다.
  • 이번 업데이트 이전에는 tkn pipelinerun delete --all 을 실행하면 모든 리소스가 삭제됩니다. 이번 업데이트에서는 running 상태의 리소스가 삭제되지 않습니다.
  • 이번 업데이트 이전에는 tkn 버전 --component=<component> 명령을 사용하여 구성 요소 버전을 반환하지 않았습니다. 이번 업데이트에서는 이 명령이 구성 요소 버전을 반환하도록 문제를 해결합니다.
  • 이번 업데이트 이전에는 tkn pr logs 명령을 사용할 때 파이프라인 출력 로그가 잘못된 작업 순서로 표시되었습니다. 이번 업데이트에서는 완료된 PipelineRun 로그가 적절한 TaskRun 실행 순서에 나열되도록 문제를 해결합니다.
  • 이번 업데이트 이전에는 실행 중인 파이프라인의 사양을 편집하면 파이프라인 실행이 완료될 때 중지되지 않을 수 있습니다. 이번 업데이트에서는 정의를 한 번만 가져온 다음 확인을 위해 상태에 저장된 사양을 사용하여 문제를 해결합니다. 이 변경으로 PipelineRun 또는 TaskRun 이 실행되는 동안 변경되는 Pipeline 또는 Task 를 참조할 때 경쟁 조건의 확률을 줄입니다.
  • 이제 값에 [$(params.arrayParam[*])]와 같은 배열 매개 변수 참조가 있을 수 있습니다.

3.1.6.5. Red Hat OpenShift Pipelines General Availability 1.6.1 릴리스 정보

3.1.6.5.1. 확인된 문제
  • 이전 버전에서 Red Hat OpenShift Pipelines 1.6.1로 업그레이드한 후 Pipelines는 Tekton 리소스(tasks 및 Pipeline)에서 작업을 수행할 수 없는 일관성 없는 상태가 될 수 있습니다. 예를 들어 리소스를 삭제하는 동안 다음 오류가 발생할 수 있습니다.

    Error from server (InternalError): Internal error occurred: failed calling webhook "validation.webhook.pipeline.tekton.dev": Post "https://tekton-pipelines-webhook.openshift-pipelines.svc:443/resource-validation?timeout=10s": service "tekton-pipelines-webhook" not found.
3.1.6.5.2. 해결된 문제
  • Red Hat OpenShift Pipelines에서 설정한 SSL_CERT_DIR 환경 변수(/tekton-custom-certs)는 다음과 같은 기본 시스템 디렉터리를 인증서 파일로 재정의하지 않습니다.

    • /etc/pki/tls/certs
    • /etc/ssl/certs
    • /system/etc/security/cacerts
  • Horizontal Pod Autoscaler는 Red Hat OpenShift Pipelines Operator가 제어하는 배포의 복제본 수를 관리할 수 있습니다. 이번 릴리스에서는 최종 사용자 또는 클러스터의 에이전트에서 개수를 변경하면 Red Hat OpenShift Pipelines Operator에서 관리하는 배포의 복제본 수를 재설정하지 않습니다. 그러나 Red Hat OpenShift Pipelines Operator를 업그레이드할 때 복제본이 재설정됩니다.
  • 이제 tkn CLI를 제공하는 Pod가 TektonConfig 사용자 정의 리소스에 지정된 노드 선택기 및 허용 오차 제한에 따라 노드에 예약됩니다.

3.1.6.6. Red Hat OpenShift Pipelines General Availability 1.6.2 릴리스 정보

3.1.6.6.1. 확인된 문제
  • 새 프로젝트를 생성하면 파이프라인 서비스 계정 생성이 지연되며 기존 클러스터 작업 및 파이프라인 템플릿이 제거되는 데 10분 이상 걸립니다.
3.1.6.6.2. 해결된 문제
  • 이번 업데이트 이전에는 이전 버전에서 Red Hat OpenShift Pipelines 1.6.1로 업그레이드한 후 파이프라인에 대해 Tekton 설치 프로그램 세트의 여러 인스턴스가 생성되었습니다. 이번 업데이트를 통해 Operator는 업그레이드 후 각 유형의 TektonInstallerSet 의 인스턴스 하나만 존재하게 합니다.
  • 이번 업데이트 이전에는 Operator의 모든 조정기에서 구성 요소 버전을 사용하여 이전 버전의 Red Hat OpenShift Pipelines 1.6.1로 업그레이드하는 동안 리소스 재조정을 결정했습니다. 결과적으로 해당 리소스는 구성 요소 버전이 업그레이드를 변경하지 않은 다시 생성되지 않았습니다. 이번 업데이트를 통해 Operator는 구성 요소 버전 대신 Operator 버전을 사용하여 업그레이드하는 동안 리소스 재조정을 결정합니다.
  • 이번 업데이트 이전에는 업그레이드 후 클러스터에서 파이프라인 웹 후크 서비스가 누락되었습니다. 이는 구성 맵의 업그레이드 교착 상태 때문이었습니다. 이번 업데이트를 통해 클러스터에 구성 맵이 없는 경우 웹 후크 검증을 비활성화하는 메커니즘이 추가됩니다. 결과적으로 파이프라인 웹 후크 서비스가 업그레이드 후 클러스터에 유지됩니다.
  • 이번 업데이트 이전에는 네임스페이스를 구성한 후 자동 실행을 위한 cron 작업이 다시 생성되었습니다. 이번 업데이트를 통해 네임스페이스에 관련 주석이 변경된 경우에만 자동 실행을 위한 cron 작업이 다시 생성됩니다.
  • Tekton Pipelines의 업스트림 버전은 다음 수정 사항이 있는 v0.28.3 로 수정되었습니다.

    • 라벨 또는 주석 전파를 허용하도록 PipelineRun 또는 TaskRun 오브젝트를 수정합니다.
    • 암시적 매개 변수의 경우:

      • TaskRefs 오브젝트에 PipelineSpec 매개변수를 적용하지 마십시오.
      • Pipeline 오브젝트에 대한 암시적 매개 변수 동작을 비활성화합니다.

3.1.6.7. Red Hat OpenShift Pipelines General Availability 1.6.3 릴리스 정보

3.1.6.7.1. 해결된 문제
  • 이번 업데이트 이전에는 Red Hat OpenShift Pipelines Operator가 Pipeline 및 Trigger와 같은 구성 요소에서 Pod 보안 정책을 설치했습니다. 그러나 구성 요소의 일부로 제공되는 Pod 보안 정책은 이전 릴리스에서 더 이상 사용되지 않았습니다. 이번 업데이트를 통해 Operator는 구성 요소에서 Pod 보안 정책 설치를 중지합니다. 결과적으로 다음과 같은 업그레이드 경로가 영향을 받습니다.

    • Pipelines 1.6.1 또는 1.6.2에서 Pipelines 1.6.3으로 업그레이드하면 Pipeline 및 Triggers 구성 요소의 항목을 포함하여 Pod 보안 정책이 삭제됩니다.
    • Pipelines 1.5.x에서 1.6.3으로 업그레이드하면 구성 요소에서 설치된 Pod 보안 정책이 유지됩니다. 클러스터 관리자는 수동으로 삭제할 수 있습니다.

      참고

      향후 릴리스로 업그레이드할 때 Red Hat OpenShift Pipelines Operator는 더 이상 사용되지 않는 모든 Pod 보안 정책을 자동으로 삭제합니다.

  • 이번 업데이트 이전에는 클러스터 관리자만 OpenShift Container Platform 콘솔의 파이프라인 메트릭에 액세스할 수 있었습니다. 이번 업데이트를 통해 다른 클러스터 역할을 가진 사용자도 파이프라인 메트릭에 액세스할 수 있습니다.
  • 이번 업데이트 이전에는 Pipelines Operator의 RBAC(역할 기반 액세스 제어) 문제로 구성 요소를 업그레이드하거나 설치하는 데 문제가 발생했습니다. 이번 업데이트에서는 다양한 Red Hat OpenShift Pipelines 구성 요소 설치의 안정성과 일관성을 향상시킵니다.
  • 이번 업데이트 이전에는 TektonConfig CR에서 clusterTaskspipelineTemplates 필드를 false 로 설정하면 클러스터 작업 및 파이프라인 템플릿이 제거되는 속도가 느려졌습니다. 이번 업데이트에서는 클러스터 작업 및 파이프라인 템플릿과 같은 Tekton 리소스의 라이프사이클 관리 속도를 향상시킵니다.

3.1.6.8. Red Hat OpenShift Pipelines General Availability 1.6.4 릴리스 노트

3.1.6.8.1. 확인된 문제
  • Red Hat OpenShift Pipelines 1.5.2에서 1.6.4로 업그레이드한 후 이벤트 리스너 경로에 액세스하면 503 오류가 반환됩니다.

    해결방법: 이벤트 리스너의 경로에 대해 YAML 파일의 대상 포트를 수정합니다.

    1. 관련 네임스페이스의 경로 이름을 추출합니다.

      $ oc get route -n <namespace>
    2. 경로를 편집하여 targetPort 필드의 값 수정합니다.

      $ oc edit route -n <namespace> <el-route_name>

      예: 기존 이벤트 리스너 경로

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: 8000
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...

      예: 수정된 이벤트 리스너 경로

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: http-listener
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...

3.1.6.8.2. 해결된 문제
  • 이번 업데이트 이전에는 네임스페이스가 Terminating 상태인 경우 RBAC 리소스를 생성할 때 Operator에 실패했습니다. 이번 업데이트를 통해 Operator는 종료 상태의 네임스페이스를 무시하고 RBAC 리소스를 생성합니다.
  • 이번 업데이트 이전에는 연결된 Tekton 컨트롤러의 릴리스 버전을 지정하는 주석이 없기 때문에 작업이 실패하거나 다시 시작됩니다. 이번 업데이트를 통해 적절한 주석이 포함되어 있으며 작업이 실패 또는 재시작 없이 실행됩니다.

3.1.7. Red Hat OpenShift Pipelines General Availability 1.5 릴리스 정보

Red Hat OpenShift Pipelines General Availability (GA) 1.5는 이제 OpenShift Container Platform 4.8에서 사용할 수 있습니다.

3.1.7.1. 호환성 및 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.

TP

기술 프리뷰

GA

정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 3.2. 호환성 및 지원 매트릭스
기능버전지원 상태

Pipeline

0.24

GA

CLI

0.19

GA

카탈로그

0.24

GA

Trigger

0.14

TP

파이프 라인 리소스

-

TP

질문이나 의견이 있으시면 제품팀에 이메일(pipelines-interest@redhat.com)로 보내주시기 바랍니다.

3.1.7.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 사용자 정의 리소스에서 새 매개변수 clusterTaskspipelinesTemplates 값을 수정하여 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.9/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 병합 및 변수가 제거됩니다. 또한 kustomizeytt와 같은 툴에서 release.yaml 파일을 더 쉽게 사용할 수 있습니다.
  • 리소스 이름에 점 문자(".")가 포함되도록 지원이 추가되었습니다.
  • PodTemplate 사양의 hostAliases 어레이는 호스트 이름 확인의 Pod 수준 재정의에 추가됩니다. 이를 위해 /etc/hosts 파일을 수정합니다.
  • $(tasks.status) 변수가 도입되어 작업의 집계 실행 상태에 액세스합니다.
  • Windows용 진입점 바이너리 빌드가 추가되었습니다.

3.1.7.3. 더 이상 사용되지 않는 기능

  • when 표현식에서 작성된 필드에 대한 지원에서는 PascalCase가 제거되었습니다. when 표현식은 소문자로 작성된 필드만 지원합니다.

    참고

    Tekton Pipelines v0.16(Operator v 1.2.x )에서 when 표현식과 함께 파이프라인을 적용한 경우 다시 적용해야 합니다.

  • Red Hat OpenShift Pipelines Operator를 v1.5로 업그레이드하면 openshift-clientopenshift-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 사용자 정의 리소스가 설치된 프로필 이름이 변경됩니다.

    표 3.3. 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-overwritedisable-working-dir-overwrite 필드는 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. 이번 릴리스에서는 이전 버전과의 호환성을 위해 이러한 플래그의 기본값이 true로 설정됩니다.

    참고

    다음 릴리스에서는 HOME 환경 변수가 자동으로 /tekton/home으로 설정되지 않으며 작업 실행을 위해 기본 작업 디렉터리가 /workspace로 설정되지 않습니다. 이러한 기본값은 단계의 이미지 Dockerfile로 설정된 값과 충돌합니다.

  • ServiceTypepodTemplate 필드는 EventListener 사양에서 제거됩니다.
  • 컨트롤러 서비스 계정은 더 이상 네임스페이스를 나열하고 감시하기 위한 클러스터 전체 권한을 요청하지 않습니다.
  • EventListener 리소스의 상태에는 Ready라는 새로운 조건이 있습니다.

    참고

    나중에 EventListener 리소스의 기타 상태 조건이 더 이상 사용되지 않고 Ready 상태 조건이 사용됩니다.

  • EventListener 응답의 eventListenernamespace 필드는 더 이상 사용되지 않습니다. 대신 eventListenerUID 필드를 사용합니다.
  • replicas 필드는 EventListener 사양에서 더 이상 사용되지 않습니다. 대신 spec.replicas 필드가 KubernetesResource 사양의 spec.resources.kubernetesResource.replicas로 이동됩니다.

    참고

    replicas 필드는 향후 릴리스에서 제거됩니다.

  • 코어 인터셉터를 구성하는 이전 방법은 더 이상 사용되지 않습니다. 그러나 향후 릴리스에서 제거될 때까지 계속 작동합니다. 대신 Trigger 리소스의 인터셉터가 새로운 refparams 기반 구문을 사용하여 구성됩니다. 결과 기본 웹훅은 새 트리거에 대해 이전 구문의 사용법을 새 구문으로 자동 전환합니다.
  • 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에서 더 이상 사용하지 않으며 이 릴리스에서 제외되었습니다.

3.1.7.4. 확인된 문제

  • git-cli 클러스터 작업은 /root가 사용자의 홈 디렉터리로 예상되는 alpine/git 기본 이미지에서 빌드됩니다. 그러나 git-cli 클러스터 작업에는 명시적으로 설정되어 있지 않습니다.

    Tekton에서 달리 지정하지 않는 한, Tekton에서 기본 홈 디렉토리는 작업의 모든 단계에 대해 /tekton/home으로 덮어씁니다. 기본 이미지의 $HOME 환경 변수를 덮어쓰면 git-cli 클러스터 작업이 실패합니다.

    이 문제는 다음 릴리스에서 수정될 예정입니다. Red Hat OpenShift Pipelines 1.5 및 이전 버전의 경우 다음 해결 방법 중 하나를 사용하여 git-cli 클러스터 작업이 실패하지 않도록 할 수 있습니다.

    • 단계에서 $HOME 환경 변수를 설정하여 덮어쓰지 않도록 합니다.

      1. [선택 사항] Operator를 사용하여 Red Hat OpenShift Pipelines를 설치한 경우 git-cli 클러스터 작업을 별도의 작업에 복제합니다. 이 방법을 사용하면 Operator에서 클러스터 작업의 변경 사항을 덮어쓰지 않습니다.
      2. oc edit clustertasks git-cli 명령을 실행합니다.
      3. 예상되는 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 조정 중에 변경 사항을 덮어씁니다.

    • feature-flags 구성 맵에서 HOME 환경 변수 덮어쓰기를 비활성화합니다.

      1. oc edit -n openshift-pipelines configmap feature-flags 명령을 실행합니다.
      2. disable-home-env-overwrite 플래그 값을 true로 설정합니다.

        주의
        • Operator를 사용하여 Red Hat OpenShift Pipelines를 설치한 경우 Operator 조정 중에 변경 사항을 덮어씁니다.
        • disable-home-env-overwrite 플래그의 기본값을 수정하면 모든 작업의 기본 동작을 변경하므로 다른 작업과 클러스터 작업이 중단될 수 있습니다.
    • 파이프라인의 기본 서비스 계정이 사용될 때 HOME 환경 변수의 덮어쓰기가 수행되므로 git-cli 클러스터 작업에 다른 서비스 계정을 사용합니다.

      1. 새로운 서비스 계정을 생성합니다.
      2. 생성한 서비스 계정에 Git 시크릿을 연결합니다.
      3. 작업 또는 파이프라인을 실행하는 동안 서비스 계정을 사용합니다.
  • 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 로 설정하여 사용자 정의 이미지를 지정할 수 있습니다.

3.1.7.5. 해결된 문제

  • dag 작업의 when 표현식은 다른 작업의 실행상태 ($(tasks.<pipelineTask>.status))에 액세스하는 컨텍스트 변수를 지정할 수 없습니다.
  • PipelineRun 리소스가 신속하게 삭제되고 다시 생성되는 경우 volumeClaimTemplate PVC를 삭제하여 생성된 경쟁 조건을 방지할 수 있으므로 소유자 이름 대신 소유자 UID를 사용합니다.
  • 루트가 아닌 사용자가 트리거한 build-base 이미지의 pullrequest-init에 대한 새 Dockerfile이 추가됩니다.
  • 파이프라인 또는 작업을 -f 옵션으로 실행하고 정의의 paramtype이 정의되지 않은 경우 파이프라인 또는 작업 실행이 자동으로 실패하는 대신 유효성 검사 오류가 생성됩니다.
  • tkn start [task | pipeline | clustertask] 명령의 경우 --workspace 플래그에 대한 설명이 일관되게 표시됩니다.
  • 매개 변수를 구문 분석하는 동안 빈 배열이 발생하는 경우 해당 대화형 도움말이 빈 문자열로 표시됩니다.

3.1.8. 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 릴리스에서 제거됩니다.

3.1.8.1. 호환성 및 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.

TP

기술 프리뷰

GA

정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 3.4. 호환성 및 지원 매트릭스
기능버전지원 상태

파이프라인

0.22

GA

CLI

0.17

GA

카탈로그

0.22

GA

Trigger

0.12

TP

파이프 라인 리소스

-

TP

질문이나 의견이 있으시면 제품팀에 이메일(pipelines-interest@redhat.com)로 보내주시기 바랍니다.

3.1.8.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

3.1.8.3. 사용되지 않는 기능

  • 파이프라인 리소스 스토리지의 build-gcs 하위 유형과 gcs-fetcher 이미지는 지원되지 않습니다.
  • 클러스터 작업의 taskRun 필드에서 tekton.dev/task 레이블이 제거됩니다.
  • Webhook의 경우 admissionReviewVersions 필드에 해당하는 v1beta1 값이 제거됩니다.
  • 빌드 및 배포를 위한 creds-init 도우미 이미지가 제거됩니다.
  • 트리거 사양 및 바인딩에서는 template.ref를 사용하도록 더 이상 사용되지 않는 필드 template.name이 제거됩니다. ref 필드를 사용하려면 모든 eventListener 정의를 업데이트해야 합니다.

    참고

    Pipelines 1.3.x 및 이전 버전에서 Pipelines 1.4.0으로 업그레이드하면 template.name 필드의 사용할 수 없으므로 이벤트 리스너가 중단됩니다. 이러한 경우 Pipelines 1.4.1을 사용하여 복원된 template.name 필드를 사용할 수 있습니다.

  • EventListener 사용자 정의 리소스/개체의 경우 Resource가 사용되며 PodTemplateServiceType 필드는 더 이상 사용되지 않습니다.
  • 더 이상 사용되지 않는 사양 스타일 내장 바인딩이 제거됩니다.
  • spec 필드는 triggerSpecBinding에서 제거됩니다.
  • 이벤트 ID 표현은 5자의 임의의 문자열에서 UUID로 변경됩니다.

3.1.8.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"
  • Pipelines 1.3.x에서 1.4.x로 업그레이드하는 경우 경로를 다시 생성해야 합니다.

3.1.8.5. 해결된 문제

  • 이전에는 클러스터 작업의 작업 실행에서 tekton.dev/task 레이블이 제거되었으며 tekton.dev/clusterTask 레이블이 도입되었습니다. 해당 변경으로 인한 문제는 clustertask describedelete 명령을 수정하여 해결됩니다. 또한 작업의 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 명령이 템플릿 없이 충돌하지 않도록 수정되었습니다. 트리거 참조에 대한 세부 정보도 표시합니다.
  • Pipelines 1.3.x 및 이전 버전에서 Pipelines 1.4.0으로 업그레이드하면 template.name이 사용할 수 없으므로 이벤트 리스너가 중단됩니다. Pipelines 1.4.1에서는 트리거에서 이벤트 리스너 중단을 방지하기 위해 template.name이 복원되었습니다.
  • Pipelines 1.4.1에서는 OpenShift Container Platform 4.7 기능 및 동작에 맞게 ConsoleQuickStart 사용자 정의 리소스가 업데이트되었습니다.

3.1.9. Red Hat OpenShift Pipelines Technology Preview 1.3 릴리스 정보

3.1.9.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의 새로운 기능도 소개합니다.

3.1.9.1.1. 파이프라인
  • S2I 및 Buildah 작업과 같은 이미지를 빌드하는 작업에서 이제 이미지 SHA를 포함하는 빌드된 이미지의 URL을 내보냅니다.
  • Conditions CRD(사용자 정의 리소스 정의)가 더 이상 사용되지 않기 때문에 사용자 정의 작업을 참조하는 파이프라인 작업에서 조건이 비활성화되었습니다.
  • spec.steps[].imagePullPolicyspec.sidecar[].imagePullPolicyTask CRD에 변수 확장이 추가되었습니다.
  • disable-creds-init 기능 플래그를 true로 설정하여 Tekton의 기본 제공 자격 증명 메커니즘을 비활성화할 수 있습니다.
  • 해결된 When 표현식이 PipelineRun 구성의 Status 필드에 있는 Skipped TasksTask 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 템플릿에서 지정한 유사성을 유사성 도우미에서 덮어쓰는 경우 작업 실행 컨트롤러에서 경고 이벤트를 내보냅니다.
  • 작업 실행이 완료되면 작업 실행 조정기에서 내보낸 클라우드 이벤트에 대한 지표를 기록합니다. 여기에는 재시도 횟수가 포함됩니다.
3.1.9.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 플래그가 추가되었습니다.
3.1.9.1.3. Trigger
  • EventListener 템플릿에 리소스 정보를 지정할 수 있습니다.
  • EventListener 서비스 계정에 모든 트리거 리소스에 대한 get 동사 외에 listwatch 동사도 있어야 합니다. 따라서 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 인터셉터의 새 기능이 추가되었습니다.
  • 트리거의 namevalue 필드를 사용하거나 이벤트 리스너를 사용하여 TriggerBinding 리소스를 포함할 수 있습니다.
  • PodSecurityPolicy 구성이 제한된 환경에서 실행되도록 업데이트되었습니다. 따라서 컨테이너를 루트로 실행해서는 안 됩니다. 또한 Pod 보안 정책 사용을 위한 역할 기반 액세스 제어가 클러스터 범위에서 네임스페이스 범위로 이동했습니다. 그 결과 트리거에서 네임스페이스와 관련이 없는 다른 Pod 보안 정책을 사용할 수 없습니다.
  • 포함된 트리거 템플릿에 대한 지원이 추가되었습니다. name 필드를 사용하여 포함된 템플릿을 참조하거나 템플릿을 spec 필드 내에 포함할 수 있습니다.

3.1.9.2. 사용되지 않는 기능

  • PipelineResources CRD를 사용하는 파이프라인 템플릿이 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
  • template.name 필드가 더 이상 template.ref 필드 대신 사용되지 않으며 향후 릴리스에서 제거됩니다.
  • --check 명령에 대한 -c 약어가 제거되었습니다. 또한 전역 tkn 플래그가 version 명령에 추가되었습니다.

3.1.9.3. 확인된 문제

  • CEL 오버레이는 들어오는 이벤트 본문을 수정하는 대신 새로운 최상위 extensions 함수에 필드를 추가합니다. TriggerBinding 리소스는 $(extensions.<key>) 구문을 사용하여 이 새로운 extensions 함수 내의 값에 액세스할 수 있습니다. $(body.<overlay-key>) 구문 대신 $(extensions.<key>) 구문을 사용하도록 바인딩을 업데이트합니다.
  • "\"로 교체하여 이스케이프 매개변수 동작이 제거되었습니다. 이전 이스케이프 매개변수 동작을 유지해야 하는 경우 TriggerTemplate 사양에 tekton.dev/old-escape-quotes: true" 주석을 추가합니다.
  • 트리거 내부의 namevalue 필드를 사용하거나 이벤트 리스너를 사용하여 TriggerBinding 리소스를 포함할 수 있습니다. 그러나 단일 바인딩에 nameref 필드를 둘 다 지정할 수는 없습니다. ref 필드를 사용하여 포함된 바인딩의 TriggerBinding 리소스 및 name 필드를 참조합니다.
  • 인터셉터는 EventListener 리소스의 네임스페이스 외부에 있는 secret을 참조할 수 없습니다. ‘EventListener’ 리소스의 네임스페이스에 보안을 포함해야 합니다.
  • Triggers 0.9.0 이상에서는 본문 또는 헤더 기반 TriggerBinding 매개변수가 이벤트 페이로드에서 누락되거나 잘못된 형식으로 되어 있는 경우 오류를 표시하는 대신 기본값을 사용합니다.
  • Tekton Pipelines 0.16.x를 사용하여 WhenExpressions 개체로 생성된 작업 및 파이프라인을 다시 적용하여 JSON 주석을 수정해야 합니다.
  • 파이프라인에서 선택적 작업 영역을 수락하고 이를 작업에 제공할 때 작업 영역을 제공하지 않으면 파이프라인 실행이 중단됩니다.
  • 연결이 끊긴 환경에서 Buildah 클러스터 작업을 사용하려면 Dockerfile에서 내부 이미지 스트림을 기본 이미지로 사용하는지 확인한 다음 모든 S2I 클러스터 작업과 동일한 방식으로 사용합니다.

3.1.9.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로 설정합니다.
  • 동일한 영구 볼륨 클레임이 여러 작업 공간에 사용되지만 하위 경로가 다른 경우 유사성 도우미와의 호환성을 검증하는 기능이 지원됩니다.

3.1.10. Red Hat OpenShift Pipelines Technology Preview 1.2 릴리스 정보

3.1.10.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의 새로운 기능도 소개합니다.

3.1.10.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에서 비활성화되어 있으므로 이 도우미를 사용하려면 활성화해야 합니다.
3.1.10.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 명령에 대화형 모드가 지원됩니다.
  • TaskRunPipelineRun 오브젝트에 대한 로컬 또는 원격 파일 정의를 사용하여 파이프라인에서 지원하는 PodTemplate 속성을 지정할 수 있습니다.
  • tkn clustertask start 명령에 --use-params-defaults 옵션을 사용하여 ClusterTask 구성에 설정된 기본값을 사용하고 작업 실행을 생성할 수 있습니다.
  • 일부 매개변수에 기본값이 지정되지 않은 경우 tkn pipeline start 명령의 --use-param-defaults 플래그는 대화형 모드를 표시합니다.
3.1.10.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 오브젝트에 검증을 수행하고 기본값을 사용할 수 있습니다.

3.1.10.2. 사용되지 않는 기능

  • 이제 resourcetemplatetriggertemplate 리소스 매개변수를 혼동하지 않도록 $(params) 매개변수가 triggertemplate 리소스에서 제거되고 $(tt.params)로 대체되었습니다.
  • 선택적 EventListenerTrigger 기반 인증 수준의 ServiceAccount 참조가 오브젝트 참조에서 ServiceAccountName 문자열로 변경되었습니다. 이로 인해 ServiceAccount 참조가 EventListenerTrigger 오브젝트와 동일한 네임스페이스에 있습니다.
  • Conditions CRD(사용자 정의 리소스 정의)가 더 이상 사용되지 않습니다. 대신 WhenExpressions CRD를 사용합니다.
  • PipelineRun.Spec.ServiceAccountNames 오브젝트가 더 이상 사용되지 않고 PipelineRun.Spec.TaskRunSpec[].ServiceAccountName 오브젝트로 교체됩니다.

3.1.10.3. 확인된 문제

  • 이 Red Hat OpenShift Pipelines 릴리스에서는 오프라인 설치를 지원합니다. 그러나 클러스터 작업에서 사용하는 일부 이미지는 연결이 끊긴 클러스터에서 작업하려면 미러링해야 합니다.
  • openshift 네임스페이스의 파이프라인은 Red Hat OpenShift Pipelines Operator를 설치 제거한 후에도 삭제되지 않습니다. 이 파이프라인을 삭제하려면 oc delete pipelines -n openshift --all 명령을 사용합니다.
  • Red Hat OpenShift Pipelines Operator를 설치 제거해도 이벤트 리스너는 제거되지 않습니다.

    해결 방법은 EventListenerPod CRD를 제거하는 것입니다.

    1. 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
    2. 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'

3.1.10.4. 해결된 문제

  • CEL 필터, Webhook 유효성 검증기의 오버레이, 인터셉터의 표현식을 확인하는 간단한 구문 검증 기능이 추가되었습니다.
  • Trigger가 더 이상 기본 배포 및 서비스 오브젝트에 설정된 주석을 덮어쓰지 않습니다.
  • 이전에는 이벤트 리스너에서 이벤트 수락을 중지했습니다. 이 수정에서는 이 문제를 해결하기 위해 EventListener 싱크에 120초의 유휴 상태 타임아웃이 추가되었습니다.
  • 이전에는 Failed(Canceled) 상태로 파이프라인 실행을 취소하면 성공 메시지가 표시되었습니다. 이제 오류 메시지를 표시하도록 수정되었습니다.
  • tkn eventlistener list 명령에서 나열된 이벤트 리스너의 상태를 제공하므로 사용 가능한 리스너를 쉽게 확인할 수 있습니다.
  • 트리거가 설치되지 않았거나 리소스가 없는 경우 triggers listtriggers describe 명령에 대한 오류 메시지가 일관되게 표시됩니다.
  • 이전에는 클라우드 이벤트를 제공하는 동안 다수의 유휴 연결이 빌드되었습니다. 이 문제를 해결하기 위해 cloudeventclient 구성에 DisableKeepAlives: true 매개변수가 추가되었습니다. 따라서 모든 클라우드 이벤트에 대해 새로운 연결이 설정됩니다.
  • 이전에는 지정된 유형의 자격 증명이 제공되지 않은 경우에도 creds-init 코드에서 디스크에 빈 파일을 작성했습니다. 이번 수정에서는 올바른 주석이 있는 보안에서 실제로 마운트된 자격 증명이 있는 경우에만 파일을 작성하도록 creds-init 코드를 수정했습니다.

3.1.11. Red Hat OpenShift Pipelines Technology Preview 1.1 릴리스 정보

3.1.11.1. 새로운 기능

이제 OpenShift Container Platform 4.5에서 Red Hat OpenShift Pipelines TP(Technology Preview) 1.1을 사용할 수 있습니다. 다음을 지원하도록 Red Hat OpenShift Pipelines TP 1.1이 업데이트되었습니다.

  • Tekton Pipelines 0.14.3
  • Tekton tkn CLI 0.11.0
  • Tekton Triggers 0.6.1
  • Tekton Catalog 0.14 기반 클러스터 작업

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.1의 새로운 기능도 소개합니다.

3.1.11.1.1. 파이프라인
  • 이제 파이프라인 리소스 대신 작업 공간을 사용할 수 있습니다. 파이프라인 리소스는 디버그하기 어렵고 범위가 제한되며 작업의 재사용 가능성을 낮추기 때문에 OpenShift Pipelines에서 작업 공간을 사용할 것을 권장합니다. 작업 공간에 대한 자세한 내용은 OpenShift Pipelines 이해 섹션을 참조하십시오.
  • 볼륨 클레임 템플릿에 대한 작업 공간 지원이 추가되었습니다.

    • 이제 파이프 라인 실행 및 작업 실행에 대한 볼륨 클레임 템플릿을 작업 공간의 볼륨 소스로서 추가할 수 있습니다. 그런 다음 tekton-controller가 파이프라인의 모든 작업 실행에 대해 PVC로 표시되는 템플릿을 사용하여 PVC(PersistentVolumeClaim)를 생성합니다. 따라서 여러 Task에 걸쳐 있는 작업 공간을 바인드할 때마다 PVC 구성을 정의해야 합니다.
    • 볼륨 클레임 템플릿이 볼륨 소스로 사용될 때 PVC의 이름 검색 지원에서 이제 변수 대체를 사용할 수 있습니다.
  • 감사 개선 지원:

    • 이제 PipelineRun.Status 필드에 파이프라인의 모든 작업 실행 상태와 파이프라인 실행의 진행 상황을 모니터링하기 위해 파이프라인 실행을 인스턴스화하는 데 사용되는 파이프라인 사양이 포함됩니다.
    • Pipeline 결과가 Pipeline 사양 및 PipelineRun 상태에 추가되었습니다.
    • 이제 TaskRun.Status 필드에 TaskRun 리소스를 인스턴스화하는 데 사용되는 정확한 작업 사양이 포함됩니다.
  • 조건에 기본 매개변수 적용을 지원합니다.
  • 클러스터 작업을 참조하여 생성된 작업 실행이 이제 tekton.dev/task 레이블 대신 tekton.dev/clusterTask 레이블을 추가합니다.
  • 이제 kubeconfigwriter가 리소스 구조에 ClientKeyDataClientCertificateData 구성을 추가하여 파이프라인 리소스 유형 클러스터를 kubeconfig-creator 작업으로 교체할 수 있습니다.
  • 이제 feature-flagsconfig-defaults 구성 맵의 이름을 이제 사용자 지정할 수 있습니다.
  • 작업 실행에서 사용하는 pod 템플릿에서 호스트 네트워크에 대한 지원을 사용할 수 있습니다.
  • 이제 Affinity Assistant를 사용하여 작업 공간 볼륨을 공유하는 작업 실행에서 노드 선호도를 지원할 수 있습니다. OpenShift Pipelines에서는 기본적으로 노드 선호도가 비활성화됩니다.
  • Pod 템플릿이 imagePullSecrets를 지정하도록 업데이트되어 Pod를 시작할 때 컨테이너 런타임에서 컨테이너 이미지 가져오기를 승인하는 데 사용할 보안을 확인합니다.
  • 컨트롤러가 작업 실행을 업데이트하지 못하는 경우 작업 실행 컨트롤러에서 경고 이벤트를 발송하도록 지원합니다.
  • 애플리케이션 또는 구성 요소에 속하는 리소스를 식별하도록 표준 또는 권장 k8s 레이블이 모든 리소스에 추가되었습니다.
  • 이제 Entrypoint 프로세스에 신호 알림이 전송되며, 이러한 신호는 Entrypoint 프로세스의 전용 PID Group을 사용하여 전파됩니다.
  • 이제 작업 실행 사양을 사용하여 런타임에 작업 수준에서 pod 템플릿을 설정할 수 있습니다.
  • Kubernetes 이벤트 발송 지원 :

    • 이제 컨트롤러가 추가 작업 실행 수명 주기 이벤트(taskrun startedtaskrun running)에 대한 이벤트를 발송합니다.
    • 이제 파이프라인 실행 컨트롤러가 파이프라인이 시작될 때마다 이벤트를 발송합니다.
  • 이제 기본 Kubernetes 이벤트 외에 작업 실행에 대한 클라우드 이벤트 지원도 제공됩니다. 생성, 시작 및 실패와 같은 작업 실행 이벤트를 클라우드 이벤트로서 발송하도록 컨트롤러를 구성할 수 있습니다.
  • 파이프라인 실행 및 작업 실행에서 적절한 이름을 참조하도록 $context.<task|taskRun|pipeline|pipelineRun>.name 변수 사용을 지원합니다.
  • 이제 파이프라인 실행 매개변수에 대한 유효성 검사를 사용하여 파이프라인 실행에서 파이프라인에 필요한 모든 매개변수가 제공되는지 확인할 수 있습니다. 이를 통해 파이프라인 실행에서 필수 매개변수 외에 추가 매개변수도 제공할 수 있습니다.
  • 이제 파이프라인 YAML 파일의 finally 필드를 사용하여 모든 작업을 성공적으로 완료한 후 또는 파이프라인의 작업 중 하나가 실패한 후 파이프라인이 종료되기 전에 항상 실행될 파이프라인 내 작업을 지정할 수 있습니다.
  • 이제 git-clone 클러스터 작업을 사용할 수 있습니다.
3.1.11.1.2. Pipeline CLI
  • 이제 포함된 트리거 바인딩 지원을 tkn evenlistener describe 명령에 사용할 수 있습니다.
  • 하위 명령을 권장하고 잘못된 하위 명령을 사용할 때 의견을 제시하는 기능을 지원합니다.
  • 이제 파이프라인에 작업이 한 개뿐인 경우 tkn task describe 명령에 의해 작업이 자동으로 선택됩니다.
  • 이제 tkn task start 명령에 --use-param-defaults 플래그를 지정하여 기본 매개변수 값으로 작업을 시작할 수 있습니다.
  • 이제 tkn pipeline start 또는 tkn task start 명령과 함께 --workspace 옵션을 사용하여 파이프라인 실행 또는 작업 실행에 대한 볼륨 클레임 템플릿을 지정할 수 있습니다.
  • 이제 tkn pipelinerun logs 명령으로 finally 섹션에 나열된 최종 Task에 대한 로그를 표시할 수 있습니다.
  • 이제 tkn task start 명령과 함께 pipeline, pipelinerun, task, taskrun, clustertask, pipelineresource와 같은 tkn 리소스에 대한 describe 하위 명령에 대화형 모드가 지원됩니다.
  • 이제 tkn version 명령으로 클러스터에 설치된 트리거의 버전을 표시할 수 있습니다.
  • 이제 tkn pipeline describe 명령으로 파이프라인에 사용된 작업에 대해 지정된 매개변수 값과 시간초과 사항을 표시할 수 있습니다.
  • tkn pipelinerun describetkn taskrun describe 명령에 가장 최근 파이프라인 실행 또는 작업 실행을 각각 설명하는 --last 옵션에 대한 지원이 추가되었습니다.
  • 이제 tkn pipeline describe 명령으로 파이프라인의 작업에 적용 가능한 조건을 표시할 수 있습니다.
  • 이제 tkn resource list 명령과 함께 --no-headers--all-namespaces 플래그를 사용할 수 있습니다.
3.1.11.1.3. Trigger
  • 이제 다음과 같은 CEL(Common Expression Language) 기능을 사용할 수 있습니다.

    • URL의 일부를 구문 분석하고 추출하기 위한 parseURL
    • deployment WebHook의 payload 필드에 있는 문자열에 포함된 JSON 값 유형을 구문 분석하는 parseJSON
  • Bitbucket의 WebHook에 대한 새로운 인터셉터가 추가되었습니다.
  • 이제 이벤트 리스너가 kubectl get 명령으로 나열될 때 추가 필드로 Address URLAvailable status를 표시합니다.
  • 트리거 템플릿과 리소스 템플릿 매개변수 간의 혼동을 줄이기 위해 이제 트리거 템플릿 매개변수에 $(params.<paramName>) 대신 $(tt.params.<paramName>) 구문을 사용합니다.
  • 보안 또는 관리 문제로 인해 모든 노드가 오염된 경우에도 이벤트 리스너가 동일한 구성으로 배포되도록 EventListener CRD에 tolerations를 추가할 수 있습니다.
  • 이제 URL/live에서 이벤트 리스너 배포에 대한 준비 프로브를 추가할 수 있습니다.
  • 이벤트 리스너 트리거에 TriggerBinding 사양을 포함하기 위한 지원이 추가되었습니다.
  • 이제 권장 app.kubernetes.io 레이블을 사용하여 Trigger 리소스에 주석을 삽입할 수 있습니다.

3.1.11.2. 사용되지 않는 기능

이 릴리스에서는 더 이상 사용되지 않은 기능은 다음과 같습니다.

  • clustertaskclustertriggerbinding 명령을 포함하여 모든 클러스터 단위 명령에 --namespace 또는 -n 플래그는 더 이상 사용되지 않습니다. 향후 릴리스에서 제거됩니다.
  • 이벤트 리스너 내 triggers.bindingsname 필드가 더 이상 사용되지 않고 향후 릴리스에서 제거될 것이며 ref 필드 사용을 권장합니다.
  • 파이프라인 변수 보간 구문과 혼동을 줄이기 위해 $(params)를 사용한 트리거 템플릿의 변수 보간은 더 이상 사용되지 않고, $(tt.params) 사용을 권장합니다. $(params.<paramName>) 구문은 향후 릴리스에서 제거됩니다.
  • 클러스터 작업에서 tekton.dev/task 레이블이 더 이상 사용되지 않습니다.
  • TaskRun.Status.ResourceResults.ResourceRef 필드가 더 이상 사용되지 않으며 제거됩니다.
  • tkn pipeline create, tkn task createtkn resource create -f 하위 명령이 제거되었습니다.
  • tkn 명령에서 네임스페이스 유효성 검사가 제거되었습니다.
  • 기본 시간 초과 1htkn ct start 명령에 대한 -t 플래그가 제거되었습니다.
  • s2i 클러스터 작업이 더 이상 사용되지 않습니다.

3.1.11.3. 확인된 문제

  • 조건에서 작업 공간을 지원하지 않습니다.
  • tkn clustertask start 명령에 --workspace 옵션과 대화형 모드가 지원되지 않습니다.
  • $(params.<paramName>) 구문의 역호환성 지원에 따라 파이프라인 특정 매개변수와 함께 트리거 템플릿을 사용하도록 수정되었습니다. 이는 트리거 WebHook에서 트리거 매개변수를 파이프라인 매개변수와 구별할 수 없기 때문입니다.
  • tekton_taskrun_counttekton_taskrun_duration_seconds_count에 대한 promQL 쿼리를 실행할 때 Pipeline 메트릭이 잘못된 값을 보고합니다.
  • 작업 공간에 제공된 기존 PVC 이름이 없는 경우에도 파이프라인 실행 및 작업 실행이 RunningRunning(Pending) 상태를 각각 유지합니다.

3.1.11.4. 해결된 문제

  • 이전에는 작업과 클러스터 작업 이름이 동일할 때 tkn task delete<name>--trs 명령으로 작업과 클러스터 작업이 모두 삭제되었습니다. 이번 수정에서는 이 명령으로 작업 <name>에 의해 생성된 작업 실행만 삭제됩니다.
  • 이전에는 tkn pr delete -p<name>--keep 2 명령을 --keep 플래그와 함께 사용할 때 -p 플래그가 무시되고 최근 두 개를 제외한 모든 파이프라인 실행이 삭제되었습니다. 이번 수정에서는 이 명령으로 최근 두 개를 제외하고 파이프라인 <name>에 의해 생성된 파이프라인 실행만 삭제됩니다.
  • 이제 tkn triggertemplate describe 출력에 YAML 형식 대신 테이블 형식으로 리소스 템플릿이 표시됩니다.
  • 전에는 컨테이너에 새 사용자를 추가할 때 buildah 클러스터 작업이 실패했습니다. 수정판에서는 이러한 문제가 해결되었습니다.

3.1.12. Red Hat OpenShift Pipelines Technology Preview 1.0 릴리스 정보

3.1.12.1. 새로운 기능

이제 OpenShift Container Platform 4.4에서 Red Hat OpenShift Pipelines TP(Technology Preview) 1.0을 사용할 수 있습니다. 다음을 지원하도록 Red Hat OpenShift Pipelines TP 1.0이 업데이트되었습니다.

  • Tekton Pipelines 0.11.3
  • Tekton tkn CLI 0.9.0
  • Tekton Triggers 0.4.0
  • Tekton Catalog 0.11 기반 클러스터 작업

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift Pipelines 1.0의 새로운 기능도 소개합니다.

3.1.12.1.1. 파이프라인
  • v1beta1 API 버전을 지원합니다.
  • 개선된 제한 범위를 지원합니다. 이전에는 작업 실행 및 파이프라인 실행에 대해서만 제한 범위를 지정했습니다. 이제 제한 범위를 명시적으로 지정할 필요가 없습니다. 네임스페이스의 최소 제한 범위가 사용됩니다.
  • 작업 결과 및 작업 매개 변수를 사용하여 작업 간 데이터 공유를 지원합니다.
  • 이제 HOME 환경 변수와 단계의 작업 디렉토리를 덮어쓰지 않도록 파이프라인을 구성할 수 있습니다.
  • 작업 단계와 유사하게 sidecars가 이제 스크립트 모드를 지원합니다.
  • 이제 작업 실행 podTemplate 리소스에서 다른 스케줄러 이름을 지정할 수 있습니다.
  • Star Array Notation을 사용한 변수 대체를 지원합니다.
  • 이제 개별 네임스페이스를 모니터링하도록 Tekton 컨트롤러를 구성할 수 있습니다.
  • 이제 새로운 설명 필드가 파이프라인, 작업, 클러스터 작업, 리소스 및 조건의 사양에 추가되었습니다.
  • Git 파이프라인 리소스에 프록시 매개변수를 추가합니다.
3.1.12.1.2. Pipeline CLI
  • 이제 EventListener, Condition, TriggerTemplate, ClusterTask, TriggerSBinding와 같은 tkn 리소스에 describe 하위 명령이 추가됩니다.
  • v1alpha1에 대한 이전 버전과의 호환성과 함께 ClusterTask, Task, Pipeline, PipelineRun, TaskRun 리소스에 v1beta1 지원이 추가되었습니다.
  • 이제 tkn task list,tkn pipeline list,tkn taskrun list,tkn pipelinerun list와 같은 --all-namespaces 플래그 옵션을 사용하여 모든 네임스페이스의 출력을 나열할 수 있습니다.

    --no-headers 플래그 옵션을 사용하면 명령의 출력에 헤더 없이 정보가 표시되도록 향상되었습니다.

  • 이제 tkn pipelines start 명령에서 --use-param-defaults 플래그를 지정하여 기본 매개변수 값을 사용하여 파이프라인을 시작할 수 있습니다.
  • 이제 tkn pipeline starttkn task start 명령에 작업 공간에 대한 지원이 추가되었습니다.
  • describe, delete, list 하위 명령과 함께 이제 새로운 clustertriggerbinding 명령이 추가되었습니다.
  • 이제 로컬 또는 원격 yaml 파일을 사용하여 Pipeline Run을 직접 시작할 수 있습니다.
  • 이제 describe 하위 명령이 이제 보강되고 상세한 출력을 표시합니다. description, timeout, param descriptionsidecar status와 같은 새로운 필드가 추가되면서 특정 tkn 리소스에 대한 자세한 정보가 명령 출력에 제공됩니다.
  • 네임스페이스에 있는 작업이 한 개뿐인 경우 tkn task log 명령으로 바로 로그를 표시할 수 있습니다.
3.1.12.1.3. Trigger
  • 트리거 (Trigger)가 이제 v1alpha1v1beta1 파이프라인 리소스를 모두 생성할 수 있습니다.
  • 새로운 CEL(Common Expression Language) 인터셉터 기능 -compareSecret 지원 이 기능은 보안을 유지하면서 문자열을 CEL 표현식의 보안과 비교합니다.
  • 이벤트 리스너 트리거 수준에서 인증 및 승인을 지원합니다.

3.1.12.2. 사용되지 않는 기능

이 릴리스에서는 더 이상 사용되지 않은 기능은 다음과 같습니다.

  • Steps 사양의 환경 변수 $HOME 및 변수 workingDir은 더 이상 사용되지 않으며 향후 릴리스에서 변경될 수 있습니다. 현재 Step 컨테이너의 HOMEworkingDir 매개 변수가 /tekton/home/workspace을 각각 덮어씁니다.

    향후 릴리스에서 이 두 필드는 수정되지 않으며, 컨테이너 이미지 및 Task YAML에 정의된 값으로 설정될 것입니다. 이번 릴리스에서는 disable-home-env-overwritedisable-working-directory-overwrite 플래그를 사용하여 HOMEworkingDir 변수의 덮어쓰기 기능을 비활성화하십시오.

  • 다음 명령은 더 이상 사용되지 않는 명령들이며 향후 릴리스에서 제거될 수 있습니다: tkn pipeline create, tkn task create
  • tkn resource create 명령과 함께 -f 플래그가 더 이상 사용되지 않습니다. 향후 릴리스에서 제거될 수 있습니다.
  • tkn clustertask create 명령에서 -t 플래그와 --timeout 플래그(초 형식)가 더 이상 사용되지 않습니다. 이제 지속 시간 초과 형식만 지원됩니다(예: 1h30s). 더 이상 사용되지 않는 이러한 플래그는 향후 릴리스에서 제거될 수 있습니다.

3.1.12.3. 확인된 문제

  • 이전 버전의 Red Hat OpenShift Pipelines에서 업그레이드하는 경우 Red Hat OpenShift Pipelines 버전 1.0으로 업그레이드하기 전에 기존 배포를 삭제해야 합니다. 기존 배포를 삭제하려면 먼저 사용자 정의 리소스를 삭제한 다음 Red Hat OpenShift Pipelines Operator를 설치 제거해야 합니다. 자세한 내용은 Red Hat OpenShift Pipeline 설치 제거 섹션을 참조하십시오.
  • 동일한 v1alpha1 작업을 두 번 이상 제출하면 오류가 발생합니다. v1alpha1 작업을 다시 제출할 때 oc apply 대신 oc replace 명령을 사용하십시오.
  • 컨테이너에 사용자가 새로 추가되면 buildah 클러스터 작업이 작동하지 않습니다.

    Operator가 설치되면 buildah 클러스터 작업에 대한 --storage-driver 플래그가 지정되지 않으므로 플래그가 기본값으로 설정됩니다. 스토리지 드라이버가 잘못 설정되는 경우도 발생할 수 있습니다. 사용자가 새로 추가되면 잘못된 스토리지 드라이버로 인해 다음 오류가 발생되면서 buildah 클러스터 작업이 실패합니다.

    useradd: /etc/passwd.8: lock file already used
    useradd: cannot lock /etc/passwd; try again later.

    이 문제를 해결하려면 buildah-task.yaml 파일에서 --storage-driver 플래그 값을 overlay로 직접 설정하십시오.

    1. cluster-admin 권한으로 클러스터에 로그인합니다.

      $ oc login -u <login> -p <password> https://openshift.example.com:6443
    2. oc edit 명령을 사용하여 buildah 클러스터 작업을 편집합니다.

      $ oc edit clustertask buildah

      buildah clustertask YAML 파일의 현재 버전이 EDITOR 환경 변수에 의해 설정된 편집기에서 열립니다.

    3. Steps 필드에서 다음 command 필드를 찾습니다.

       command: ['buildah', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--layers', '-f', '$(params.DOCKERFILE)', '-t', '$(resources.outputs.image.url)', '$(params.CONTEXT)']
    4. command 필드를 다음으로 변경합니다.

       command: ['buildah', '--storage-driver=overlay', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--no-cache', '-f', '$(params.DOCKERFILE)', '-t', '$(params.IMAGE)', '$(params.CONTEXT)']
    5. 파일을 저장하고 종료합니다.

    또는 Pipelines Cluster Tasks buildah로 이동하여 웹 콘솔에서 직접 buildah 클러스터 작업 YAML 파일을 수정할 수도 있습니다. Actions 메뉴에서 Edit Cluster Task를 선택하고 이전 프로시저에서 안내한 대로 command 필드를 변경합니다.

3.1.12.4. 해결된 문제

  • 이전에는 이미지 빌드가 이미 진행 중인 경우에도 DeploymentConfig 작업이 새 배포 빌드를 트리거했습니다. 이로 인해 파이프라인 배포가 실패로 끝납니다. 수정판에서는 진행 중인 배포를 마칠 때까지 대기하는 oc rollout status 명령으로 이제 deploy task 명령을 대체합니다.
  • APP_NAME 매개변수에 대한 지원이 이제 파이프라인 템플릿에 추가됩니다.
  • 전에는 Java S2I용 파이프라인 템플릿이 레지스트리에서 이미지를 찾지 못했습니다. 수정판에서는 사용자가 제공한 IMAGE_NAME 매개변수 대신 기존 이미지 파이프라인 리소스를 사용하여 이미지를 검색합니다.
  • 이제 모든 OpenShift Pipelines 이미지가 Red Hat UBI(Universal Base Images, 범용 기본 이미지)를 기반으로 합니다.
  • 전에는 tekton-pipelines 이외 네임스페이스에 파이프라인을 설치했을 때 tkn version 명령에서 파이프라인 버전을 unknown으로 표시했습니다. 수정판에서는 tkn version 명령으로 이제 모든 네임스페이스에 올바른 파이프라인 버전을 표시할 수 있습니다.
  • tkn version 명령에 더 이상 -c 플래그가 지원되지 않습니다.
  • 관리자 권한이 없는 사용자도 이제 클러스터 트리거 비인딩 목록을 볼 수 있습니다.
  • CEL 인터셉터에 대한 이벤트 리스너 CompareSecret 기능이 수정되었습니다.
  • 작업과 클러스터 작업의 이름이 같은 경우 작업 및 클러스터 작업에 대한 list, describestart 하위 명령의 출력이 이제 올바르게 표시됩니다.
  • 이전에는 OpenShift Pipelines Operator에서 권한이 필요한 SCC(보안 컨텍스트 제약 조건)를 수정하여 클러스터 업그레이드 도중 오류가 발생했습니다. 이 오류는 이제 수정되었습니다.
  • tekton-pipelines 네임스페이스에서 모든 작업 실행 및 파이프라인 실행의 시간 초과 값이 이제 구성 맵을 사용하여 default-timeout-minutes 필드 값으로 설정됩니다.
  • 전에는 관리자 권한이 없는 사용자에게는 웹 콘솔의 파이프라인 섹션이 표시되지 않았습니다. 이 문제는 이제 해결되었습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.