1.5. opc 명령줄 유틸리티를 사용하여 Tekton 결과 쿼리
opc 명령줄 유틸리티를 사용하여 결과 및 레코드에 대한 Tekton 결과를 쿼리할 수 있습니다. opc 명령줄 유틸리티를 설치하려면 tkn 명령줄 유틸리티에 대한 패키지를 설치합니다. 이 패키지 설치에 대한 자세한 내용은 tkn 설치를 참조하십시오.
레코드 이름과 결과를 사용하여 해당 레코드에서 데이터를 검색할 수 있습니다.
CEL(Common Expression Language) 쿼리를 사용하여 결과 및 레코드를 검색할 수 있습니다. 이러한 검색에는 결과 또는 레코드의 UUID가 표시됩니다. 제공된 예제를 사용하여 공통 검색 유형에 대한 쿼리를 생성할 수 있습니다. 참조 정보를 사용하여 다른 쿼리를 생성할 수도 있습니다.
1.5.1. Tekton 결과 쿼리를 위한 opc 유틸리티 환경 준비 링크 복사링크가 클립보드에 복사되었습니다!
Tekton Results를 쿼리하려면 먼저 opc 유틸리티에 대한 환경을 준비해야 합니다.
사전 요구 사항
- Tekton 결과가 설치되어 있어야 합니다.
-
opc유틸리티를 설치했습니다.
프로세스
다음 명령을 입력하여
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
$ export RESULTS_API=$(oc get route tekton-results-api-service -n openshift-pipelines --no-headers -o custom-columns=":spec.host"):443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 Tekton Results API에 대한 인증 토큰을 생성합니다.
oc create token <service_account>
$ oc create token <service_account>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령이 출력하는 문자열을 저장합니다.
선택 사항: Tekton Results API를 사용하여 자동 인증을 위해
~/.config/tkn/results.yaml파일을 생성합니다. 파일에는 다음 내용이 포함되어야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 결과를 쿼리할 수 있는 환경을 준비합니다. -
jqCLI를 설치하셨습니다.
프로세스
네임스페이스에서 생성된 파이프라인 실행 및 작업 실행에 해당하는 모든 결과의 이름을 나열합니다. 다음 명령을 실행합니다.
opc results list --addr ${RESULTS_API} <namespace_name>$ opc results list --addr ${RESULTS_API} <namespace_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
opc results list --addr ${RESULTS_API} results-testing$ opc results list --addr ${RESULTS_API} results-testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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 ISTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 결과에서 모든 레코드 이름을 나열합니다.
opc results records list --addr ${RESULTS_API} <result_name>$ opc results records list --addr ${RESULTS_API} <result_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed$ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 레코드에서 파이프라인 실행 또는 작업 실행에 대한 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))'$ 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 Copied! Toggle word wrap Toggle overflow 명령 예
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))'$ 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 Copied! Toggle word wrap Toggle overflow 선택 사항: 로그 레코드 이름을 사용하여 레코드에서 실행되는 작업의 로깅 정보를 검색합니다. 로그 레코드 이름을 가져오려면
레코드를 레코드이름에로그로 바꿉니다. 다음 명령을 실행합니다.opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -d$ opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
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$ 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 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.3. 결과 검색 링크 복사링크가 클립보드에 복사되었습니다!
CEL(Common Expression Language) 쿼리를 사용하여 결과를 검색할 수 있습니다. 예를 들어 성공하지 못한 파이프라인 실행에 대한 결과를 찾을 수 있습니다. 그러나 관련 정보의 대부분은 결과 개체에 포함되지 않습니다; 이름, 완료 시간 및 기타 데이터로 검색하고 레코드를 검색합니다.
사전 요구 사항
- Tekton 결과가 설치되어 있어야 합니다.
-
opc유틸리티를 설치하고 Tekton 결과를 쿼리할 수 있는 환경을 준비합니다.
프로세스
다음 명령을 입력하여 CEL 쿼리를 사용하여 결과를 검색합니다.
opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>$ opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
& lt;namespace_name >을 파이프라인 실행 또는 작업 실행이 생성된 네임스페이스로 바꿉니다.
| 목적 | CEL 쿼리 |
|---|---|
| 실패한 모든 실행의 결과 |
|
|
모든 파이프라인이 주석 |
|
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/-$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;namespace_name>을 파이프라인 실행 또는 작업 실행이 생성된 네임스페이스로 바꿉니다. 또는 다음 명령을 입력하여 단일 결과 내에서 레코드를 검색합니다.opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;result_name>을 결과의 전체 이름으로 바꿉니다.
| 목적 | CEL 쿼리 |
|---|---|
| 실패한 모든 작업 실행 또는 파이프라인 실행 기록 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 완료하는 데 5분 이상 걸리는 모든 파이프라인 실행 레코드 |
|
| 2023년 10월 7일에 완료된 모든 파이프라인 실행 및 작업 실행 기록 |
|
| 세 개 이상의 작업을 포함하는 모든 파이프라인 실행 레코드 |
|
|
|
|
|
|
|
1.5.5. 결과 검색에 대한 참조 정보 링크 복사링크가 클립보드에 복사되었습니다!
결과를 위해 CEL(Common Expression Language) 쿼리에서 다음 필드를 사용할 수 있습니다.
| EL 필드 | 설명 |
|---|---|
|
|
|
|
| 결과에 대한 고유 식별자입니다. |
|
|
|
|
| 결과에 대한 요약입니다. |
|
| 결과 생성 시간입니다. |
|
| 결과 마지막 업데이트 시간입니다. |
summary.status 필드를 사용하여 파이프라인 실행이 성공했는지 확인할 수 있습니다. 이 필드에는 다음과 같은 값이 있을 수 있습니다.
-
알 수 없음 -
SUCCESS -
실패 -
TIMEOUT -
CANCELLED
이 필드의 값을 제공하기 위해 " 또는 ' 와 같은 인용 문자를 사용하지 마십시오.
1.5.6. 레코드 검색에 대한 참조 정보 링크 복사링크가 클립보드에 복사되었습니다!
CEL(Common Expression Language) 쿼리에서 다음 필드를 사용할 수 있습니다.
| EL 필드 | 설명 | 값 |
|---|---|---|
|
| 레코드 이름 | |
|
| 레코드 유형 식별자 |
Tekton |
|
| 작업 실행 또는 파이프라인 실행에 대한 YAML 데이터입니다. 로그 레코드에서 이 필드에는 로깅 출력이 포함됩니다. |
data 필드에 작업 실행 또는 파이프라인 실행에 대한 전체 YAML 데이터가 포함되어 있으므로 CEL 쿼리에서 이 데이터의 모든 요소를 사용할 수 있습니다. 예를 들어 data.status.completionTime 에는 작업 실행 또는 파이프라인 실행의 완료 시간이 포함됩니다.