1.5. opc 명령줄 유틸리티를 사용하여 Tekton 결과 쿼리


opc 명령줄 유틸리티를 사용하여 결과 및 레코드에 대한 Tekton 결과를 쿼리할 수 있습니다. opc 명령줄 유틸리티를 설치하려면 tkn 명령줄 유틸리티에 대한 패키지를 설치합니다. 이 패키지 설치에 대한 자세한 내용은 tkn 설치를 참조하십시오.

레코드 이름과 결과를 사용하여 해당 레코드에서 데이터를 검색할 수 있습니다.

CEL(Common Expression Language) 쿼리를 사용하여 결과 및 레코드를 검색할 수 있습니다. 이러한 검색에는 결과 또는 레코드의 UUID가 표시됩니다. 제공된 예제를 사용하여 공통 검색 유형에 대한 쿼리를 생성할 수 있습니다. 참조 정보를 사용하여 다른 쿼리를 생성할 수도 있습니다.

1.5.1. Tekton 결과 쿼리를 위한 opc 유틸리티 환경 준비

Tekton Results를 쿼리하려면 먼저 opc 유틸리티에 대한 환경을 준비해야 합니다.

사전 요구 사항

  • Tekton 결과가 설치되어 있어야 합니다.
  • opc 유틸리티를 설치했습니다.

프로세스

  1. 다음 명령을 입력하여 RESULTS_API 환경 변수를 Tekton Results API의 경로로 설정합니다.

    $ export RESULTS_API=$(oc get route tekton-results-api-service -n openshift-pipelines --no-headers -o custom-columns=":spec.host"):443
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 입력하여 Tekton Results API에 대한 인증 토큰을 생성합니다.

    $ oc create token <service_account>
    Copy to Clipboard Toggle word wrap

    이 명령이 출력하는 문자열을 저장합니다.

  3. 선택 사항: Tekton Results API를 사용하여 자동 인증을 위해 ~/.config/tkn/results.yaml 파일을 생성합니다. 파일에는 다음 내용이 포함되어야 합니다.

    address: <tekton_results_route> 
    1
    
    token: <authentication_token> 
    2
    
    ssl:
       roots_file_path: /home/example/cert.pem 
    3
    
       server_name_override: tekton-results-api-service.openshift-pipelines.svc.cluster.local 
    4
    
     service_account:
       namespace: service_acc_1 
    5
    
       name: service_acc_1 
    6
    Copy to Clipboard Toggle word wrap
    1
    Tekton Results API의 경로입니다. RESULTS_API 에 설정한 것과 동일한 값을 사용합니다.
    2
    oc create token 명령으로 생성된 인증 토큰입니다. 이 토큰을 제공하는 경우 service_account 설정을 재정의하고 opc 는 이 토큰을 사용하여 인증합니다.
    3
    API 엔드포인트에 대해 구성한 SSL 인증서가 있는 파일의 위치입니다.
    4
    OpenShift Pipelines에 대한 사용자 정의 대상 네임스페이스를 구성한 경우 openshift-pipelines 를 이 네임스페이스의 이름으로 교체합니다.
    5 6
    Tekton Results API를 사용하여 인증하는 서비스 계정의 이름입니다. 인증 토큰을 제공한 경우 service_account 매개변수를 제공할 필요가 없습니다.

    또는 ~/.config/tkn/results.yaml 파일을 생성하지 않으면 --authtoken 옵션을 사용하여 각 opc 명령에 토큰을 전달할 수 있습니다.

1.5.2. 이름으로 결과 및 레코드 쿼리

해당 이름을 사용하여 결과 및 레코드를 나열하고 쿼리할 수 있습니다.

사전 요구 사항

  • Tekton 결과가 설치되어 있어야 합니다.
  • opc 유틸리티를 설치하고 Tekton 결과를 쿼리할 수 있는 환경을 준비합니다.
  • jq CLI를 설치하셨습니다.

프로세스

  1. 네임스페이스에서 생성된 파이프라인 실행 및 작업 실행에 해당하는 모든 결과의 이름을 나열합니다. 다음 명령을 실행합니다.

    $ opc results list --addr ${RESULTS_API} <namespace_name>
    Copy to Clipboard Toggle word wrap

    명령 예

    $ opc results list --addr ${RESULTS_API} results-testing
    Copy to Clipboard Toggle word wrap

    출력 예

    Name                                                          Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed  2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/ad7eb937-90cc-4510-8380-defe51ad793f  2023-06-29 02:49:38 +0530 IST           2023-06-29 02:50:06 +0530 IST
    results-testing/results/d064ce6e-d851-4b4e-8db4-7605a23671e4  2023-06-29 02:49:45 +0530 IST           2023-06-29 02:49:56 +0530 IST
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 입력하여 결과에서 모든 레코드 이름을 나열합니다.

    $ opc results records list --addr ${RESULTS_API} <result_name>
    Copy to Clipboard Toggle word wrap

    명령 예

    $ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed
    Copy to Clipboard Toggle word wrap

    출력 예

    Name                                                                                                   Type                                    Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621  tekton.dev/v1.TaskRun              2023-06-29 02:49:53 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/5de23a76-a12b-3a72-8a6a-4f15a3110a3e  results.tekton.dev/v1alpha2.Log         2023-06-29 02:49:57 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/57ce92f9-9bf8-3a0a-aefb-dc20c3e2862d  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9a0c21a-f826-42ab-a9d7-a03bcefed4fd  tekton.dev/v1.TaskRun              2023-06-29 02:49:57 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/04e2fbf2-8653-405f-bc42-a262bcf02bed  tekton.dev/v1.PipelineRun          2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e6eea2f9-ec80-388c-9982-74a018a548e4  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 입력하여 레코드에서 파이프라인 실행 또는 작업 실행에 대한 YAML 매니페스트를 검색합니다.

    $ opc results records get --addr ${RESULTS_API} <record_name> \
      | jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

    명령 예

    $ opc results records get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

  4. 선택 사항: 로그 레코드 이름을 사용하여 레코드에서 실행되는 작업의 로깅 정보를 검색합니다. 로그 레코드 이름을 가져오려면 레코드를 레코드 이름에 로그 로 바꿉니다. 다음 명령을 실행합니다.

    $ opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

    명령 예

    $ opc results logs get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/logs/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

1.5.3. 결과 검색

CEL(Common Expression Language) 쿼리를 사용하여 결과를 검색할 수 있습니다. 예를 들어 성공하지 못한 파이프라인 실행에 대한 결과를 찾을 수 있습니다. 그러나 관련 정보의 대부분은 결과 개체에 포함되지 않습니다; 이름, 완료 시간 및 기타 데이터로 검색하고 레코드를 검색합니다.

사전 요구 사항

  • Tekton 결과가 설치되어 있어야 합니다.
  • opc 유틸리티를 설치하고 Tekton 결과를 쿼리할 수 있는 환경을 준비합니다.

프로세스

  • 다음 명령을 입력하여 CEL 쿼리를 사용하여 결과를 검색합니다.

    $ opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>
    Copy to Clipboard Toggle word wrap

& lt;namespace_name >을 파이프라인 실행 또는 작업 실행이 생성된 네임스페이스로 바꿉니다.

Expand
표 1.1. 결과에 대한 CEL 쿼리 예
목적CEL 쿼리

실패한 모든 실행의 결과

!(summary.status == SUCCESS)

모든 파이프라인이 주석 ann1ann2가 포함된 결과

summary.annotations.contains('ann1') && summary.annotations.contains('ann2') && summary.type=='PIPELINE_RUN'

1.5.4. 레코드 검색

CEL(Common Expression Language) 쿼리를 사용하여 레코드를 검색할 수 있습니다. 각 레코드에는 파이프라인 실행 또는 작업 실행에 대한 전체 YAML 정보가 포함되어 있으므로 다양한 기준으로 레코드를 찾을 수 있습니다.

사전 요구 사항

  • Tekton 결과가 설치되어 있어야 합니다.
  • opc 유틸리티를 설치하고 Tekton 결과를 쿼리할 수 있는 환경을 준비합니다.

프로세스

  • 다음 명령을 입력하여 CEL 쿼리를 사용하여 레코드를 검색합니다.

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-
    Copy to Clipboard Toggle word wrap

    & lt;namespace_name >을 파이프라인 실행 또는 작업 실행이 생성된 네임스페이스로 바꿉니다. 또는 다음 명령을 입력하여 단일 결과 내에서 레코드를 검색합니다.

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>
    Copy to Clipboard Toggle word wrap

    & lt;result_name >을 결과의 전체 이름으로 바꿉니다.

Expand
표 1.2. 레코드에 대한 CEL 쿼리의 예
목적CEL 쿼리

실패한 모든 작업 실행 또는 파이프라인 실행 기록

!(data.status.conditions[0].status == 'True')

TaskRun 또는 PipelineRun CR(사용자 정의 리소스)의 이름이 run1인 레코드

data.metadata.name == 'run1'

run1이라는 PipelineRun CR에 의해 시작된 모든 작업 실행에 대한 레코드

data_type == 'TASK_RUN' && data.metadata.labels['tekton.dev/pipelineRun'] == 'run1'

pipeline1이라는 Pipeline CR에서 생성된 모든 파이프라인 실행 및 작업 실행 기록

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1'

pipeline1이라는 Pipeline CR에서 생성된 모든 파이프라인 실행 레코드

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1' && data_type == 'PIPELINE_RUN'

TaskRun CR 이름이 hello로 표시된 모든 작업 실행 레코드

data.metadata.name.startsWith('hello') && data_type=='TASK_RUN'

완료하는 데 5분 이상 걸리는 모든 파이프라인 실행 레코드

data.status.completionTime - data.status.startTime > duration('5m') && data_type == 'PIPELINE_RUN'

2023년 10월 7일에 완료된 모든 파이프라인 실행 및 작업 실행 기록

data.status.completionTime.getDate() == 7 && data.status.completionTime.getMonth() == 10 && data.status.completionTime.getFullYear() == 2023

세 개 이상의 작업을 포함하는 모든 파이프라인 실행 레코드

size(data.status.pipelineSpec.tasks) >= 3 && data_type == 'PIPELINE_RUN'

ann1이 포함된 주석이 있는 모든 파이프라인 실행 레코드

data.metadata.annotations.contains('ann1') && data_type == 'PIPELINE_RUN'

ann1 이 포함된 주석과 PipelineRun CR의 이름이 hello로 시작된 모든 파이프라인 실행 레코드

data.metadata.annotations.contains('ann1') && data.metadata.name.startsWith('hello') && data_type == 'PIPELINE_RUN'

1.5.5. 결과 검색에 대한 참조 정보

결과를 위해 CEL(Common Expression Language) 쿼리에서 다음 필드를 사용할 수 있습니다.

Expand
표 1.3. 결과에 대해 CEL 쿼리에서 사용할 수 있는 필드
EL 필드설명

상위

PipelineRun 또는 TaskRun CR(사용자 정의 리소스)이 생성된 네임스페이스입니다.

uid

결과에 대한 고유 식별자입니다.

annotations

PipelineRun 또는 TaskRun CR에 추가된 주석입니다.

summary

결과에 대한 요약입니다.

create_time

결과 생성 시간입니다.

update_time

결과 마지막 업데이트 시간입니다.

summary.status 필드를 사용하여 파이프라인 실행이 성공했는지 확인할 수 있습니다. 이 필드에는 다음과 같은 값이 있을 수 있습니다.

  • 알 수 없음
  • SUCCESS
  • 실패
  • TIMEOUT
  • CANCELLED
참고

이 필드의 값을 제공하기 위해 " 또는 ' 와 같은 인용 문자를 사용하지 마십시오.

1.5.6. 레코드 검색에 대한 참조 정보

CEL(Common Expression Language) 쿼리에서 다음 필드를 사용할 수 있습니다.

Expand
표 1.4. CEL 쿼리에서 레코드에 사용할 수 있는 필드
EL 필드설명

name

레코드 이름

 

data_type

레코드 유형 식별자

Tekton .dev/v1.TaskRun 또는 TASK_RUNtekton.dev/v1.PipelineRun 또는 PIPELINE_RUNresults.tekton.dev/v1alpha2.Log

data

작업 실행 또는 파이프라인 실행에 대한 YAML 데이터입니다. 로그 레코드에서 이 필드에는 로깅 출력이 포함됩니다.

 

data 필드에 작업 실행 또는 파이프라인 실행에 대한 전체 YAML 데이터가 포함되어 있으므로 CEL 쿼리에서 이 데이터의 모든 요소를 사용할 수 있습니다. 예를 들어 data.status.completionTime 에는 작업 실행 또는 파이프라인 실행의 완료 시간이 포함됩니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동